Membuat skrip penginstalan tanpa pengawas untuk konektor jaringan privat Microsoft Entra
Artikel ini membantu Anda membuat skrip Windows PowerShell yang memungkinkan penginstalan dan pendaftaran tanpa pengawas untuk konektor jaringan privat Microsoft Entra Anda.
Penginstalan tanpa pengawas berguna saat Anda ingin:
- Menginstal konektor pada server Windows yang tidak mengaktifkan antarmuka pengguna, atau yang tidak dapat Anda akses dengan Desktop Jarak Jauh.
- Menginstal dan mendaftarkan banyak konektor sekaligus.
- Mengintegrasikan penginstalan konektor dan pendaftaran sebagai bagian dari prosedur lain.
- Buat gambar server standar yang berisi bit konektor tetapi tidak terdaftar.
Agar konektor jaringan privat berfungsi, Anda harus mendaftarkannya dengan ID Microsoft Entra. Pendaftaran dilakukan di antarmuka pengguna saat Anda menginstal konektor, tetapi Anda dapat menggunakan PowerShell untuk mengotomatiskan proses.
Ada dua langkah untuk penginstalan tanpa pengawasan. Pertama, instal konektor. Kedua, daftarkan konektor dengan ID Microsoft Entra.
Penting
Jika Anda menginstal konektor untuk cloud Microsoft Azure Government, tinjau prasyarat dan langkah-langkah penginstalan. Cloud Microsoft Azure Government memerlukan pengaktifan akses ke serangkaian URL yang berbeda dan parameter tambahan untuk menjalankan penginstalan.
Menginstal konektor
Gunakan langkah-langkah berikut untuk menginstal konektor tanpa mendaftarkannya:
Buka prompt perintah.
Jalankan perintah berikut,
/q
bendera berarti penginstalan diam. Instalasi yang tenang tidak meminta Anda untuk menerima Perjanjian Lisensi Pengguna Akhir.MicrosoftEntraPrivateNetworkConnectorInstaller.exe REGISTERCONNECTOR="false" /q
Mendaftarkan konektor dengan ID Microsoft Entra
Ada dua metode yang dapat Anda gunakan untuk mendaftarkan konektor:
- Daftarkan konektor menggunakan objek kredensial Windows PowerShell.
- Daftarkan konektor menggunakan token yang dibuat secara offline.
Mendaftarkan konektor menggunakan objek kredensial Windows PowerShell
Buat objek Kredensial Windows PowerShell
$cred
yang berisi nama pengguna dan kata sandi administratif untuk direktori Anda. Jalankan perintah berikut, ganti<username>
, ,<password>
dan<tenantid>
:$User = "<username>" $PlainPassword = '<password>' $TenantId = '<tenantid>' $SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force $cred = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $User, $SecurePassword
C:\Program Files\Microsoft Entra private network connector
Buka dan jalankan skrip berikut menggunakan$cred
objek yang Anda buat:.\RegisterConnector.ps1 -modulePath "C:\Program Files\Microsoft Entra private network connector\Modules\" -moduleName "MicrosoftEntraPrivateNetworkConnectorPSModule" -Authenticationmode Credentials -Usercredentials $cred -Feature ApplicationProxy -TenantId $TenantId
Skrip berisi informasi kredensial sensitif. Simpan skrip di lokasi yang aman.
Mendaftarkan konektor menggunakan token yang dibuat secara offline
Buat token offline menggunakan
AuthenticationContext
kelas menggunakan nilai dalam cuplikan kode atau cmdlet PowerShell ini:Menggunakan 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; } }
Menggunakan 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 = "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." }
Setelah Anda memiliki token, buat
SecureString
menggunakan token:$SecureToken = $Token | ConvertTo-SecureString -AsPlainText -Force
Jalankan perintah Windows PowerShell berikut ini, mengganti
<tenant GUID>
dengan ID direktori Anda:.\RegisterConnector.ps1 -modulePath "C:\Program Files\Microsoft Entra private network connector\Modules\" -moduleName "MicrosoftEntraPrivateNetworkConnectorPSModule" -Authenticationmode Token -Token $SecureToken -TenantId <tenant GUID> -Feature ApplicationProxy
Simpan skrip atau kode di lokasi aman karena berisi informasi kredensial sensitif.