Criar um script de instalação autônoma para o conector de rede privada do Microsoft Entra
Este artigo ajuda você a criar um script do PowerShell do Windows que permite uma instalação e um registro autônomos para o seu conector de rede privada do Microsoft Entra.
A instalação autônoma é útil quando você deseja:
- Instale o conector em servidores Windows que não têm uma interface do usuário habilitada ou que você não pode acessar com a Área de Trabalho Remota.
- Instalar e registrar vários conectores ao mesmo tempo.
- Integrar a instalação e o registro do conector como parte de outro procedimento.
- Crie uma imagem de servidor padrão que contenha os bits do conector, mas não esteja registrada.
Para que o conector de rede privada funcione, você precisa registrá-lo no Microsoft Entra ID. O registro é feito na interface do usuário quando você instala o conector, mas você pode usar o PowerShell para automatizar o processo.
Há duas etapas para uma instalação autônoma. Primeiro, instale o conector. Em segundo lugar, registre o conector com o Microsoft Entra ID.
Importante
Se você estiver instalando o conector para a nuvem do Microsoft Azure Governamental, revise os pré-requisitos e etapas de instalação. A nuvem do Microsoft Azure Governamental exige a habilitação do acesso a um conjunto diferente de URLs e um parâmetro adicional para executar a instalação.
Instalar o conector
Use as seguintes etapas para instalar o conector sem registrá-lo:
Abra um prompt de comando.
Execute o seguinte comando, o sinalizador
/q
significa instalação silenciosa. Uma instalação silenciona não solicita que você aceite os termos de licença.MicrosoftEntraPrivateNetworkConnectorInstaller.exe REGISTERCONNECTOR="false" /q
Registrar o conector com o Microsoft Entra ID
Há dois métodos que você pode usar para registrar o conector:
- Registre o conector usando um objeto de credencial do Windows PowerShell.
- Registre o conector usando um token criado offline.
Registrar o conector usando um objeto de credencial do Windows PowerShell
Crie um objeto de credenciais do Windows PowerShell
$cred
que contém um nome de usuário administrativo e uma senha para seu diretório. Execute o seguinte comando, substituindo<username>
,<password>
, e<tenantid>
:$User = "<username>" $PlainPassword = '<password>' $TenantId = '<tenantid>' $SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force $cred = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $User, $SecurePassword
Vá para
C:\Program Files\Microsoft Entra private network connector
e execute o seguinte script usando o objeto$cred
que você criou:.\RegisterConnector.ps1 -modulePath "C:\Program Files\Microsoft Entra private network connector\Modules\" -moduleName "MicrosoftEntraPrivateNetworkConnectorPSModule" -Authenticationmode Credentials -Usercredentials $cred -Feature ApplicationProxy -TenantId $TenantId
O script contém informações confidenciais de credenciais. Armazene o script em um local seguro.
Registrar o conector usando um token criado offline
Crie um token offline usando a classe
AuthenticationContext
usando os valores neste trecho de código ou cmdlets do PowerShell:Usando C#:
using System; using System.Linq; using System.Collections.Generic; using Microsoft.Identity.Client; class Program { #region constants /// <summary> /// The AAD authentication endpoint uri /// </summary> static readonly string AadAuthenticationEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; /// <summary> /// The application ID of the connector in AAD /// </summary> static readonly string ConnectorAppId = "00001111-aaaa-2222-bbbb-3333cccc4444"; /// <summary> /// The AppIdUri of the registration service in AAD /// </summary> static readonly string RegistrationServiceAppIdUri = "https://proxy.cloudwebappproxy.net/registerapp/user_impersonation"; #endregion #region private members private string token; private string tenantID; #endregion public void GetAuthenticationToken() { 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 = new string[] { 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"); throw new InvalidOperationException("Authentication result, token or tenant id returned are null"); } token = authResult.AccessToken; tenantID = authResult.TenantId; } }
Usar o PowerShell:
# Load MSAL (Tested with version 4.7.1) Add-Type -Path "..\MSAL\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 = "00001111-aaaa-2222-bbbb-3333cccc4444"; #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 result If (($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." }
Depois de ter o token, crie um
SecureString
usando o token:$SecureToken = $Token | ConvertTo-SecureString -AsPlainText -Force
Execute o seguinte comando do Windows PowerShell, substituindo
<tenant GUID>
por sua ID de diretório:.\RegisterConnector.ps1 -modulePath "C:\Program Files\Microsoft Entra private network connector\Modules\" -moduleName "MicrosoftEntraPrivateNetworkConnectorPSModule" -Authenticationmode Token -Token $SecureToken -TenantId <tenant GUID> -Feature ApplicationProxy
Armazene o script ou código em um local seguro, pois ele contém informações confidenciais de credenciais.
Próximas etapas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de