Erstellen eines Skripts für die unbeaufsichtigte Installation des privaten Microsoft Entra-Netzwerkconnectors
Dieser Artikel hilft Ihnen beim Erstellen eines Windows PowerShell-Skripts, das die unbeaufsichtigte Installation und Registrierung für Ihren privaten Microsoft Entra-Netzwerkconnector ermöglicht.
Die unbeaufsichtigte Installation ist nützlich, wenn Sie:
- Installieren des Connectors auf Windows-Servern, auf denen keine Benutzeroberfläche aktiviert ist oder auf die nicht per Remotedesktop zugegriffen werden kann.
- Gleichzeitiges Installieren und Registrieren vieler Connectors.
- Integrieren der Connectorinstallation und Registrierung als Teil einer anderen Prozedur.
- Erstellen eines standardmäßigen Serverimages, das die Connectorbits enthält, aber nicht registriert ist.
Damit der private Netzwerkconnector funktioniert, müssen Sie ihn bei Microsoft Entra ID registrieren. Die Registrierung erfolgt auf der Benutzeroberfläche, wenn Sie den Connector installieren, aber Sie können PowerShell verwenden, um den Prozess zu automatisieren.
Eine unbeaufsichtigte Installation umfasst zwei Schritte. Erstens: Die Installation des Connectors. Registrieren Sie den Connector anschließend mit Microsoft Entra ID.
Wichtig
Wenn Sie den Connector für die Microsoft Azure Government-Cloud installieren, überprüfen Sie die Voraussetzungen und Installationsschritte. Die Microsoft Azure Government-Cloud erfordert zum Ausführen der Installation den Zugriff auf einen anderen Satz von URLs und einen zusätzlichen Parameter.
Installieren des Connectors
Gehen Sie wie folgt vor, um den Connector zu installieren, ohne ihn zu registrieren:
Öffnen Sie eine Eingabeaufforderung.
Führen Sie den folgenden Befehl aus.
/q
-Flag steht hierbei für die automatische Installation. Bei einer automatischen Installation werden Sie nicht zum Akzeptieren der Lizenzbedingungen aufgefordert.MicrosoftEntraPrivateNetworkConnectorInstaller.exe REGISTERCONNECTOR="false" /q
Registrieren Sie den Connector mit Microsoft Entra ID
Registrieren Sie den Connector mithilfe eines offline erstellten Tokens.
Registrieren des Connectors mithilfe eines offline erstellten Tokens
Erstellen Sie mithilfe der
AuthenticationContext
-Klasse ein Offlinetoken unter Verwendung der Werte in diesem Codeausschnitt bzw. in den PowerShell-Cmdlets:Mithilfe von 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 = "55747057-9b5d-4bd4-b387-abf52a8bd489"; /// <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; } }
Mithilfe von PowerShell:
# Loading DLLs Find-PackageProvider -Name NuGet| Install-PackageProvider -Force Register-PackageSource -Name nuget.org -Location https://www.nuget.org/api/v2 -ProviderName NuGet Install-Package Microsoft.IdentityModel.Abstractions -ProviderName Nuget -RequiredVersion 6.22.0.0 Install-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 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." }
Sobald das Token vorliegt, erstellen Sie
SecureString
mit diesem Token:$SecureToken = $Token | ConvertTo-SecureString -AsPlainText -Force
Führen Sie folgenden Windows PowerShell-Befehl aus, und ersetzen Sie
<tenant GUID>
dabei durch die ID Ihres Verzeichnisses:.\RegisterConnector.ps1 -modulePath "C:\Program Files\Microsoft Entra private network connector\Modules\" -moduleName "MicrosoftEntraPrivateNetworkConnectorPSModule" -Authenticationmode Token -Token $SecureToken -TenantId <tenant GUID> -Feature ApplicationProxy
Speichern Sie das Skript oder den Code an einem sicheren Speicherort, da es vertrauliche Anmeldeinformationen enthält.