Microsoft Entra özel ağ bağlayıcısı için katılımsız yükleme betiği oluşturma
Bu makale, Microsoft Entra özel ağ bağlayıcınız için katılımsız yükleme ve kayıt sağlayan bir Windows PowerShell betiği oluşturmanıza yardımcı olur.
Katılımsız yükleme, aşağıdaki durumlarda kullanışlıdır:
- Bağlayıcıyı, kullanıcı arabirimi etkinleştirilmemiş veya Uzak Masaüstü ile erişemezseniz Windows sunucularına yükleyin.
- Aynı anda birçok bağlayıcı yükleyin ve kaydedin.
- Bağlayıcı yüklemesini ve kaydını başka bir yordamın parçası olarak tümleştirin.
- Bağlayıcı bitlerini içeren ancak kaydedilmemiş standart bir sunucu görüntüsü oluşturun.
Özel ağ bağlayıcısının çalışması için Bunu Microsoft Entra Id ile kaydetmeniz gerekir. Bağlayıcıyı yüklediğinizde kayıt kullanıcı arabiriminde yapılır, ancak işlemi otomatikleştirmek için PowerShell'i kullanabilirsiniz.
Katılımsız yükleme için iki adım vardır. İlk olarak bağlayıcıyı yükleyin. İkincisi, bağlayıcıyı Microsoft Entra ID ile kaydedin.
Önemli
Microsoft Azure Kamu bulutu için bağlayıcıyı yüklüyorsanız önkoşulları ve yükleme adımlarını gözden geçirin. Microsoft Azure Kamu bulutu, yüklemeyi çalıştırmak için farklı bir URL kümesine ve ek bir parametreye erişimi etkinleştirmeyi gerektirir.
Bağlayıcıyı yükleme
Bağlayıcıyı kaydetmeden yüklemek için aşağıdaki adımları kullanın:
Komut istemi açın.
Aşağıdaki komutu çalıştırın,
/q
bayrağı sessiz yükleme anlamına gelir. Sessiz bir yükleme, Son Kullanıcı Lisans Sözleşmesi'ni kabul etmek isteyip istemediğinizi sormaz.MicrosoftEntraPrivateNetworkConnectorInstaller.exe REGISTERCONNECTOR="false" /q
Bağlayıcıyı Microsoft Entra Id ile kaydetme
Çevrimdışı oluşturulan bir belirteci kullanarak bağlayıcıyı kaydedin.
Çevrimdışı oluşturulan bir belirteci kullanarak bağlayıcıyı kaydetme
Bu kod parçacığındaki veya PowerShell cmdlet'lerindeki değerleri kullanarak sınıfını kullanarak
AuthenticationContext
çevrimdışı belirteç oluşturun:C# kullanarak:
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; } }
PowerShell’i kullanarak:
# 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." }
Belirteci aldıktan sonra belirteci kullanarak bir
SecureString
oluşturun:$SecureToken = $Token | ConvertTo-SecureString -AsPlainText -Force
öğesini dizin kimliğiniz ile değiştirerek
<tenant GUID>
aşağıdaki Windows PowerShell komutunu çalıştırın:.\RegisterConnector.ps1 -modulePath "C:\Program Files\Microsoft Entra private network connector\Modules\" -moduleName "MicrosoftEntraPrivateNetworkConnectorPSModule" -Authenticationmode Token -Token $SecureToken -TenantId <tenant GUID> -Feature ApplicationProxy
Betiği veya kodu hassas kimlik bilgileri içerdiğinden güvenli bir konumda depolayın.