Creación de un script de instalación desatendido para el conector de red privada de Microsoft Entra
Artículo
Este artículo le ayuda a crear un script de Windows PowerShell que habilita la instalación desatendida y el registro del conector de red privada de Microsoft Entra.
La instalación desatendida es útil cuando se desea:
Instale el conector en los servidores de Windows que no tienen interfaz de usuario habilitada o a los que no puede acceder con Escritorio remoto.
Instalar y registrar muchos conectores a la vez.
Integrar la instalación del conector y el registro como parte de otro procedimiento.
Crear una imagen de servidor estándar que contenga los bits de conector, pero que no esté registrada.
Para que el conector de red privada funcione, debe registrarlo con Microsoft Entra ID. El registro se realiza en la interfaz de usuario al instalar el conector, pero se puede usar PowerShell para automatizar el proceso.
Hay dos pasos para una instalación desatendida. Primero, instale el conector. En segundo lugar, registre el conector con Microsoft Entra ID.
Importante
Si va a instalar el conector para la nube de Azure Government, consulte los requisitos previos y los pasos de la instalación. Para que se ejecute la instalación, la nube de Azure Government requiere que se habilite el acceso a un conjunto diferente de direcciones URL y un parámetro adicional.
Instalación del conector
Siga estos pasos para instalar el conector sin registrarlo:
Abra un símbolo del sistema.
Ejecute el siguiente comando, en el que la marca /q significa que la instalación es desatendida. Una instalación desatendida no le pide que acepte el contrato de licencia para el usuario final.
Registrar el conector mediante un token creado sin conexión.
Registro del conector mediante un token creado sin conexión
Cree un token sin conexión mediante la clase AuthenticationContext con los valores de este fragmento de código o los cmdlets de PowerShell:
Con C#:
C#
using System;
using System.Linq;
using System.Collections.Generic;
using Microsoft.Identity.Client;
classProgram
{
#region constants///<summary>/// The AAD authentication endpoint uri///</summary>staticreadonlystring AadAuthenticationEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
///<summary>/// The application ID of the connector in AAD///</summary>staticreadonlystring ConnectorAppId = "55747057-9b5d-4bd4-b387-abf52a8bd489";
///<summary>/// The AppIdUri of the registration service in AAD///</summary>staticreadonlystring RegistrationServiceAppIdUri = "https://proxy.cloudwebappproxy.net/registerapp/user_impersonation";
#endregion#region private membersprivatestring token;
privatestring tenantID;
#endregionpublicvoidGetAuthenticationToken()
{
IPublicClientApplication clientApp = PublicClientApplicationBuilder
.Create(ConnectorAppId)
.WithDefaultRedirectUri() // will automatically use the default Uri for native app
.WithAuthority(AadAuthenticationEndpoint)
.Build();
AuthenticationResult authResult = null;
IAccount account = null;
IEnumerable<string> scopes = newstring[] { RegistrationServiceAppIdUri };
try
{
authResult = await clientApp.AcquireTokenSilent(scopes, account).ExecuteAsync();
}
catch (MsalUiRequiredException ex)
{
authResult = await clientApp.AcquireTokenInteractive(scopes).ExecuteAsync();
}
if (authResult == null || string.IsNullOrEmpty(authResult.AccessToken) || string.IsNullOrEmpty(authResult.TenantId))
{
Trace.TraceError("Authentication result, token or tenant id returned are null");
thrownew InvalidOperationException("Authentication result, token or tenant id returned are null");
}
token = authResult.AccessToken;
tenantID = authResult.TenantId;
}
}
Con PowerShell:
PowerShell
# Loading DLLsFind-PackageProvider -Name NuGet| Install-PackageProvider -ForceRegister-PackageSource -Name nuget.org -Location https://www.nuget.org/api/v2 -ProviderName NuGet
Install-Package Microsoft.IdentityModel.Abstractions -ProviderName Nuget -RequiredVersion6.22.0.0Install-Module Microsoft.Identity.Client
add-type -path"C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.IdentityModel.Abstractions.6.22.0\lib\net461\Microsoft.IdentityModel.Abstractions.dll"add-type -path"C:\Program Files\WindowsPowerShell\Modules\Microsoft.Identity.Client\4.53.0\Microsoft.Identity.Client.dll"# The AAD authentication endpoint uri$authority = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"#The application ID of the connector in AAD$connectorAppId = "55747057-9b5d-4bd4-b387-abf52a8bd489";
#The AppIdUri of the registration service in AAD$registrationServiceAppIdUri = "https://proxy.cloudwebappproxy.net/registerapp/user_impersonation"# Define the resources and scopes you want to call$scopes = New-Object System.Collections.ObjectModel.Collection["string"]
$scopes.Add($registrationServiceAppIdUri)
$app = [Microsoft.Identity.Client.PublicClientApplicationBuilder]::Create($connectorAppId).WithAuthority($authority).WithDefaultRedirectUri().Build()
[Microsoft.Identity.Client.IAccount] $account = $null# Acquiring the token$authResult = $null$authResult = $app.AcquireTokenInteractive($scopes).WithAccount($account).ExecuteAsync().ConfigureAwait($false).GetAwaiter().GetResult()
# Check AuthN resultIf (($authResult) -and ($authResult.AccessToken) -and ($authResult.TenantId)) {
$token = $authResult.AccessToken
$tenantId = $authResult.TenantId
Write-Output"Success: Authentication result returned."
}
Else {
Write-Output"Error: Authentication result, token or tenant id returned with null."
}
Una vez que tenga el token, utilice el token para crear una clase SecureString:
En este módulo, exploraremos el proceso de creación de un registro de aplicaciones en Microsoft Entra ID. A continuación, explore los valores y las opciones de configuración. Cree una aplicación de página única, registre una aplicación multiinquilino y otras opciones. Como parte de este proceso, profundizamos en conceder acceso de usuario a las aplicaciones y configurar cómo y cuándo pueden usar la aplicación y sus datos.
Muestre las características de Microsoft Entra ID para modernizar las soluciones de identidad, implementar soluciones híbridas e implementar la gobernanza de identidades.