Mengintegrasikan identitas Active Directory Federation Services dengan pusat data Azure Stack Hub Anda

Anda dapat menyebarkan Azure Stack Hub menggunakan ID Microsoft Entra atau Active Directory Federation Services (AD FS) sebagai Penyedia Identitas. Anda harus membuat pilihan sebelum menyebarkan Azure Stack Hub. Dalam skenario tersambung, Anda dapat memilih ID Microsoft Entra atau LAYANAN Federasi Direktori Aktif. Untuk skenario yang terputus, hanya FS AD yang didukung. Artikel ini memperlihatkan cara mengintegrasikan Active Directory Federation Services Azure Stack Hub dengan Active Directory Federation Services pusat data Anda.

Penting

Anda tidak dapat mengganti IdP tanpa menyebar ulang seluruh solusi Azure Stack Hub.

Active Directory Federation Services dan Graph

Menyebarkan dengan Active Directory Federation Services memungkinkan identitas di forest Active Directory yang ada untuk mengautentikasi dengan sumber daya di Azure Stack Hub. Forest Active Directory yang ada ini memerlukan penyebaran AD FS untuk memungkinkan pembuatan kepercayaan federasi AD FS.

Autentikasi adalah salah satu bagian dari identitas. Untuk mengelola kontrol akses berbasis peran (RBAC) di Azure Stack Hub, komponen Graph harus dikonfigurasi. Saat akses ke sumber daya didelegasikan, komponen Graph mencari akun pengguna di forest Active Directory yang ada menggunakan protokol LDAP.

Azure Stack Hub arsitektur Active Directory Federation Services

AD FS yang ada adalah layanan token keamanan akun (STS) yang mengirimkan klaim ke Azure Stack Hub AD FS (STS sumber daya). Di Azure Stack Hub, otomatisasi membuat kepercayaan penyedia klaim dengan titik akhir metadata untuk AD FS yang ada.

Di AD FS yang ada, kepercayaan pihak yang mengandalkan harus dikonfigurasi. Langkah ini tidak dilakukan oleh otomatisasi, dan harus dikonfigurasi oleh operator. Titik akhir VIP Azure Stack Hub untuk AD FS dapat dibuat dengan menggunakan pola https://adfs.<Region>.<ExternalFQDN>/.

Konfigurasi kepercayaan pihak yang mengandalkan juga mengharuskan Anda untuk mengonfigurasi aturan transformasi klaim yang disediakan oleh Microsoft.

Untuk konfigurasi Graph, akun layanan harus memiliki izin "baca" di Active Directory yang ada. Akun ini diperlukan sebagai input untuk otomatisasi untuk mengaktifkan skenario RBAC.

Untuk langkah terakhir, pemilik baru dikonfigurasi untuk langganan penyedia default. Akun ini memiliki akses penuh ke semua sumber daya saat masuk ke portal administrator Azure Stack Hub.

Persyaratan:

Komponen Persyaratan
Graph Microsoft Active Directory 2012/2012 R2/2016 2019
Layanan Federasi Direktori Aktif Windows Server 2012/2012 R2/2016 2019

Menyiapkan integrasi Graph

Graph hanya mendukung integrasi dengan satu forest Active Directory. Jika ada beberapa forest, hanya forest yang ditentukan dalam konfigurasi yang akan digunakan untuk mengambil pengguna dan grup.

Informasi berikut diperlukan sebagai input untuk parameter otomatisasi:

Parameter Parameter Lembar Kerja Penyebaran Deskripsi Contoh
CustomADGlobalCatalog AD FS Forest FQDN FQDN dari forest Active Directory target yang ingin Anda integrasikan Contoso.com
CustomADAdminCredentials Pengguna dengan izin Baca LDAP graphservice

Mengonfigurasi Situs Active Directory

Untuk penyebaran Active Directory yang memiliki beberapa situs, konfigurasikan Situs Active Directory terdekat dengan penyebaran Azure Stack Hub Anda. Konfigurasi menghindari layanan Azure Stack Hub Graph menyelesaikan kueri menggunakan Server Katalog Global dari situs jarak jauh.

Tambahkan subnet Jaringan VIP publik Azure Stack Hub ke Situs Active Directory yang paling dekat ke Azure Stack Hub. Misalnya, katakanlah Active Directory Anda memiliki dua situs: Seattle dan Redmond. Jika Azure Stack Hub disebarkan di situs Seattle, Anda akan menambahkan subnet jaringan VIP publik Azure Stack Hub ke situs Active Directory untuk Seattle.

Untuk informasi selengkapnya tentang Situs Active Directory, lihat Mendesain topologi situs.

Catatan

Jika Active Directory Anda terdiri dari satu situs, Anda dapat lompati langkah ini. Jika Anda memiliki subnet tangkap semua yang dikonfigurasi, validasi bahwa subnet jaringan VIP Publik Azure Stack Hub bukan bagian dari subnet tersebut.

Membuat akun pengguna di Active Directory yang ada (opsional)

Secara opsional, Anda dapat membuat akun untuk layanan Graph di Active Directory yang ada. Lakukan langkah ini jika Anda belum memiliki akun yang ingin Anda gunakan.

  1. Di Active Directory yang ada, buat akun pengguna berikut (rekomendasi):

    • Nama pengguna: graphservice
    • Kata sandi: Gunakan kata sandi yang kuat dan konfigurasikan sandi agar tidak pernah kedaluwarsa.

    Tidak ada izin atau keanggotaan khusus yang diperlukan.

Memicu otomatisasi untuk mengonfigurasi grafik

Untuk prosedur ini, gunakan komputer di jaringan pusat data Anda yang dapat berkomunikasi dengan titik akhir istimewa di Azure Stack Hub.

  1. Buka sesi Windows PowerShell yang ditingkatkan (jalankan sebagai administrator), dan sambungkan ke alamat IP titik akhir istimewa. Gunakan info masuk untuk CloudAdmin untuk mengautentikasi.

    $creds = Get-Credential
    $pep = New-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
  2. Sekarang setelah Anda memiliki sesi dengan titik akhir istimewa, jalankan perintah berikut:

    Jalankan skrip di bawah ini untuk build Azure Stack Hub 2008 dan yang lebih baru

     $i = @(
            [pscustomobject]@{ 
                      CustomADGlobalCatalog="fabrikam.com"
                      CustomADAdminCredential= Get-Credential -Message "Do not include the domain name of the graphservice account in the username."
                      SkipRootDomainValidation = $false 
                      ValidateParameters = $true
                    }) 
    
     Invoke-Command -Session $pep -ScriptBlock {Register-DirectoryService -customCatalog $using:i} 
    
    
    

    Jalankan skrip di bawah ini untuk build Azure Stack Hub sebelum 2008

    Invoke-Command -Session $pep -ScriptBlock {Register-DirectoryService -CustomADGlobalCatalog contoso.com} 
    
    
    

    Saat diminta, tentukan info masuk untuk akun pengguna yang ingin Anda gunakan untuk layanan Graph (seperti graphservice). Input untuk cmdlet Register-DirectoryService harus berupa nama forest/domain akar di forest daripada domain lain di forest.

    Penting

    Tunggu pop-up info masuk (Dapatkan-Info-Masuk tidak didukung di titik akhir istimewa) dan masukkan info masuk Akun Layanan Graph.

  3. Cmdlet Register-DirectoryService memiliki parameter opsional yang dapat Anda gunakan dalam skenario tertentu di mana validasi Active Directory yang ada gagal. Ketika cmdlet ini dijalankan, itu memvalidasi bahwa domain yang disediakan adalah domain akar, server katalog global dapat dijangkau, dan bahwa akun yang disediakan diberikan akses baca.

    Parameter Deskripsi
    SkipRootDomainValidation Menentukan bahwa subdomain harus digunakan sebagai ganti domain akar yang direkomendasikan.
    ValidateParameters Melewati semua pemeriksaan validasi.

Protokol dan port Graph

Layanan Graph di Azure Stack Hub menggunakan protokol dan port berikut untuk berkomunikasi dengan Server Katalog Global (GC) dan Pusat Distribusi Kunci (KDC) yang dapat ditulisi yang dapat memproses permintaan masuk di forest Active Directory target.

Layanan Graph di Azure Stack Hub menggunakan protokol dan port berikut untuk berkomunikasi dengan Active Directory target:

Jenis Port Protokol
LDAP 389 TCP & UDP
LDAP SSL 636 TCP
LDAP GC 3268 TCP
LDAP GC SSL 3269 TCP

Menyiapkan integrasi Active Directory Federation Services dengan mengunduh metadata federasi

Informasi berikut diperlukan sebagai input untuk parameter otomatisasi:

Parameter Parameter Lembar Kerja Penyebaran Deskripsi Contoh
CustomAdfsName Nama Penyedia Active Directory Federation Services Nama penyedia klaim.
Tampaknya seperti itu di halaman arahan Active Directory Federation Services.
Contoso
CustomAD
FSFederationMetadataEndpointUri
URI Metadata Active Directory Federation Services Link metadata federasi. https://ad01.contoso.com/federationmetadata/2007-06/federationmetadata.xml
SigningCertificateRevocationCheck NA Parameter Opsional untuk melompati pemeriksaan CRL. Tidak ada

Memicu otomatisasi untuk mengonfigurasi kepercayaan penyedia klaim di Azure Stack Hub (dengan mengunduh metadata federasi)

Untuk prosedur ini, gunakan komputer yang dapat berkomunikasi dengan titik akhir istimewa di Azure Stack Hub. Diharapkan sertifikat yang digunakan oleh akun STS Active Directory Federation Services dipercaya oleh Azure Stack Hub.

  1. Buka sesi Windows PowerShell yang lebih tinggi dan sambungkan ke titik akhir istimewa.

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Sekarang Anda telah tersambung ke titik akhir istimewa, maka jalankan perintah berikut menggunakan parameter yang sesuai dengan lingkungan Anda:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataEndpointUri "https://ad01.contoso.com/federationmetadata/2007-06/federationmetadata.xml"
    
  3. Jalankan perintah berikut untuk memperbarui pemilik langganan penyedia default menggunakan parameter yang sesuai dengan lingkungan Anda:

    Set-ServiceAdminOwner -ServiceAdminOwnerUpn "administrator@contoso.com"
    

Menyiapkan integrasi Active Directory Federation Services dengan menyediakan file metadata federasi

Dimulai dengan versi 1807, gunakan metode ini jika salah satu dari kondisi berikut benar:

  • Rantai sertifikat berbeda untuk Active Directory Federation Services dibandingkan dengan semua titik akhir lainnya di Azure Stack Hub.
  • Tidak ada konektivitas jaringan ke server Active Directory Federation Services yang ada dari instans Active Directory Federation Services Azure Stack Hub.

Informasi berikut diperlukan sebagai input untuk parameter otomatisasi:

Parameter Deskripsi Contoh
CustomAdfsName Nama penyedia klaim. Tampaknya seperti itu di halaman arahan Active Directory Federation Services. Contoso
CustomADFSFederationMetadataFileContent Konten metadata. $using:federationMetadataFileContent

Membuat file metadata federasi

Untuk prosedur berikut, Anda harus menggunakan komputer yang memiliki konektivitas jaringan ke penyebaran Active Directory Federation Services yang ada, yang menjadi STS akun. Sertifikat yang diperlukan juga harus dipasang.

  1. Buka sesi Windows PowerShell yang lebih tinggi, dan jalankan perintah berikut menggunakan parameter yang sesuai untuk lingkungan Anda:

     $url = "https://win-SQOOJN70SGL.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml"
     $webclient = New-Object System.Net.WebClient
     $webclient.Encoding = [System.Text.Encoding]::UTF8
     $metadataAsString = $webclient.DownloadString($url)
     Set-Content -Path c:\metadata.xml -Encoding UTF8 -Value $metadataAsString
    
  2. Salin file metadata ke komputer yang dapat berkomunikasi dengan titik akhir istimewa.

Memicu otomatisasi untuk mengonfigurasi kepercayaan penyedia klaim di Azure Stack Hub (menggunakan file metadata federasi)

Untuk prosedur ini, gunakan komputer yang dapat berkomunikasi dengan titik akhir istimewa di Azure Stack Hub dan memiliki akses ke file metadata yang Anda buat pada langkah sebelumnya.

  1. Buka sesi Windows PowerShell yang lebih tinggi dan sambungkan ke titik akhir istimewa.

    $federationMetadataFileContent = get-content c:\metadata.xml
    $creds=Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Sekarang Anda telah tersambung ke titik akhir istimewa, maka jalankan perintah berikut menggunakan parameter yang sesuai dengan lingkungan Anda:

    Register-CustomAdfs -CustomAdfsName Contoso -CustomADFSFederationMetadataFileContent $using:federationMetadataFileContent
    
  3. Jalankan perintah berikut untuk memperbarui pemilik langganan penyedia default. Gunakan parameter yang sesuai untuk lingkungan Anda.

    Set-ServiceAdminOwner -ServiceAdminOwnerUpn "administrator@contoso.com"
    

    Catatan

    Saat Anda memutar sertifikat pada Active Directory Federation Services (akun STS) yang ada, Anda harus mengatur integrasi Active Directory Federation Services lagi. Anda harus mengatur integrasi bahkan jika titik akhir metadata dapat dijangkau atau dikonfigurasi dengan menyediakan file metadata.

Mengonfigurasi pihak yang mengandalkan penyebaran Active Directory Federation Services yang ada (akun STS)

Microsoft menyediakan skrip yang mengonfigurasi kepercayaan pihak yang mengandalkan, termasuk aturan transformasi klaim. Menggunakan skrip bersifat opsional karena Anda dapat menjalankan perintah secara manual.

Anda dapat mengunduh skrip pembantu dari Alat Azure Stack Hub di GitHub.

Jika Anda memutuskan untuk menjalankan perintah secara manual, ikuti langkah-langkah berikut:

  1. Salin konten berikut ke dalam file .txt (misalnya, disimpan sebagai c:\ClaimIssuanceRules.txt) pada instans Active Directory Federation Services pusat data Anda atau anggota farm:

    @RuleTemplate = "LdapClaims"
    @RuleName = "Name claim"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
    => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"), query = ";userPrincipalName;{0}", param = c.Value);
    
    @RuleTemplate = "LdapClaims"
    @RuleName = "UPN claim"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
    => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);
    
    @RuleTemplate = "LdapClaims"
    @RuleName = "ObjectID claim"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid"]
    => issue(Type = "http://schemas.microsoft.com/identity/claims/objectidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType);
    
    @RuleName = "Family Name and Given claim"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
    => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"), query = ";sn,givenName;{0}", param = c.Value);
    
    @RuleTemplate = "PassThroughClaims"
    @RuleName = "Pass through all Group SID claims"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"]
    => issue(claim = c);
    
    @RuleTemplate = "PassThroughClaims"
    @RuleName = "Pass through all windows account name claims"
    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
    => issue(claim = c);
    
  2. Validasi bahwa autentikasi berbasis Formulir Windows untuk ekstranet dan intranet diaktifkan. Anda dapat memeriksa apakah sudah diaktifkan dengan menjalankan cmdlet berikut:

    Get-AdfsAuthenticationProvider | where-object { $_.name -eq "FormsAuthentication" } | select Name, AllowedForPrimaryExtranet, AllowedForPrimaryIntranet
    

    Catatan

    Untai (karakter) agen pengguna yang didukung Windows Integrated Authentication (WIA) mungkin sudah terlalu usang untuk penyebaran Active Directory Federation Services Anda dan mungkin memerlukan pembaruan untuk mendukung klien terbaru. Anda dapat membaca selengkapnya tentang memperbarui untai (karakter) agen pengguna yang didukung WIA di artikel Mengonfigurasi autentikasi berbasis formulir intranet untuk perangkat yang tidak mendukung WIA.

    Untuk langkah-langkah mengaktifkan kebijakan autentikasi berbasis Formulir, lihat Mengonfigurasi Kebijakan Autentikasi.

  3. Untuk menambahkan kepercayaan pihak yang mengandalkan, jalankan perintah Windows PowerShell berikut pada instans Active Directory Federation Services Anda atau anggota farm. Pastikan untuk memperbarui titik akhir Active Directory Federation Services dan arahkan ke file yang dibuat pada Langkah 1.

    Penting

    Untuk pelanggan yang menjalankan Azure Stack Hub versi 2002 dan yang lebih baru, TLS 1.2 diberlakukan pada titik akhir ADFS Azure Stack Hub. Dengan demikian, TLS 1.2 juga harus diaktifkan pada server ADFS pelanggan. Jika tidak, kesalahan berikut akan terjadi saat berjalan Add-ADFSRelyingPartyTrust di host /farm ADFS milik pelanggan:

    Add-ADFSRelyingPartyTrust : The underlying connection was closed: An unexpected error occurred on a send.

    Untuk Active Directory Federation Services 2016/2019

    Add-ADFSRelyingPartyTrust -Name AzureStack -MetadataUrl "https://YourAzureStackADFSEndpoint/FederationMetadata/2007-06/FederationMetadata.xml" -IssuanceTransformRulesFile "C:\ClaimIssuanceRules.txt" -AutoUpdateEnabled:$true -MonitoringEnabled:$true -enabled:$true -AccessControlPolicyName "Permit everyone" -TokenLifeTime 1440
    

    Untuk Active Directory Federation Services 2012/2012 R2

    Add-ADFSRelyingPartyTrust -Name AzureStack -MetadataUrl "https://YourAzureStackADFSEndpoint/FederationMetadata/2007-06/FederationMetadata.xml" -IssuanceTransformRulesFile "C:\ClaimIssuanceRules.txt" -AutoUpdateEnabled:$true -MonitoringEnabled:$true -enabled:$true -TokenLifeTime 1440
    

    Penting

    Anda harus menggunakan MMC snap-in Active Directory Federation Services untuk mengonfigurasi Aturan Otorisasi Penerbitan saat menggunakan Windows Server 2012 atau Active Directory Federation Services 2012 R2.

  4. Ketika Anda menggunakan Internet Explorer atau browser Microsoft Edge untuk mengakses Azure Stack Hub, Anda harus mengabaikan pengikatan token. Jika tidak, kredensial masuk gagal. Pada instans Active Directory Federation Services Anda atau anggota farm, jalankan perintah berikut:

    Catatan

    Langkah ini tidak berlaku ketika menggunakan Windows Server 2012 atau Active Directory Federation Services 2012 R2. Dalam hal ini, aman untuk melewatkan perintah ini dan melanjutkan integrasi.

    Set-AdfsProperties -IgnoreTokenBinding $true
    

Pembuatan SPN

Ada banyak skenario yang mengharuskan penggunaan nama perwakilan layanan (SPN) untuk autentikasi. Berikut ini adalah beberapa contoh:

  • Penggunaan Azure CLI dengan penyebaran Active Directory Federation Services dari Azure Stack Hub.
  • Paket Manajemen Pusat Sistem untuk Azure Stack Hub saat disebarkan dengan Active Directory Federation Services.
  • Penyedia sumber di Azure Stack Hub saat disebarkan dengan Active Directory Federation Services.
  • Berbagai aplikasi.
  • Anda memerlukan kredensial masuk non-interaktif.

Penting

Active Directory Federation Services hanya mendukung sesi kredensial masuk interaktif. Jika Anda memerlukan kredensial masuk non-interaktif untuk skenario otomatis, Anda harus menggunakan SPN.

Untuk informasi selengkapnya tentang pembuatan SPN, lihat Membuat perwakilan layanan untuk Active Directory Federation Services.

Pemecahan Masalah

Memutar kembali Konfigurasi

Jika terjadi kesalahan yang meninggalkan lingkungan dalam kondisi di mana Anda tidak dapat lagi mengautentikasi, opsi putar kembali tersedia.

  1. Buka sesi Windows PowerShell yang lebih tinggi dan jalankan perintah berikut:

    $creds = Get-Credential
    Enter-PSSession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Kemudian jalankan cmdlet berikut:

    Reset-DatacenterIntegrationConfiguration
    

    Setelah menjalankan tindakan putar kembali, semua perubahan konfigurasi diputar kembali. Hanya autentikasi dengan pengguna CloudAdmin bawaan yang dimungkinkan.

    Penting

    Anda harus mengonfigurasi pemilik asli langganan penyedia default.

    Set-ServiceAdminOwner -ServiceAdminOwnerUpn "azurestackadmin@[Internal Domain]"
    

Mengumpulkan log tambahan

Jika salah satu cmdlet gagal, Anda dapat mengumpulkan log tambahan dengan menggunakan cmdlet Get-Azurestacklogs.

  1. Buka sesi Windows PowerShell yang lebih tinggi dan jalankan perintah berikut:

    $creds = Get-Credential
    Enter-pssession -ComputerName <IP Address of ERCS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
  2. Kemudian jalankan cmdlet berikut:

    Get-AzureStackLog -OutputPath \\myworkstation\AzureStackLogs -FilterByRole ECE
    

Langkah berikutnya

Mengintegrasikan solusi pemantauan eksternal