Bagikan melalui


Menambahkan Layanan Federasi Direktori Aktif sebagai IdP SAML menggunakan kebijakan kustom di Azure Active Directory B2C

Sebelum memulai, gunakan pemilih Pilih jenis kebijakan untuk memilih jenis kebijakan yang Anda siapkan. Azure Active Directory B2C menawarkan dua metode untuk menentukan cara pengguna berinteraksi dengan aplikasi Anda: melalui alur pengguna yang telah ditentukan sebelumnya atau melalui kebijakan kustom yang sepenuhnya dapat dikonfigurasi. Langkah yang diperlukan dalam artikel ini berbeda untuk setiap metode.

Fitur ini tersedia hanya untuk kebijakan kustom. Untuk langkah-langkah penyiapan, pilih Kebijakan kustom dalam pemilih sebelumnya.

Catatan

Di Azure Active Directory B2C, kebijakan kustom didesain khusus untuk menangani skenario kompleks. Untuk skenario umum, sebaiknya gunakan alur pengguna bawaan. Jika Anda belum melakukannya, pelajari tentang paket starter kebijakan kustom di Mulai dengan kebijakan kustom di Azure Active Directory B2C.

Artikel ini menunjukkan kepada Anda cara mengaktifkan rincian masuk untuk akun pengguna Layanan Federasi Direktori Aktif dengan menggunakan kebijakan kustom di Azure Active Directory B2C (AAD B2C). Aktifkan rincian masuk dengan menambahkan IdP SAML ke kebijakan kustom.

Prasyarat

Membuat sertifikat yang ditandatangani sendiri

Jika Anda belum memiliki sertifikat, Anda dapat menggunakan sertifikat yang ditandatangani sendiri. Sertifikat yang ditandatangani sendiri adalah sertifikat keamanan yang tidak ditandatangani oleh otoritas sertifikat (CA) dan tidak memberikan jaminan keamanan atas sertifikat yang ditandatangani oleh CA.

Di Windows, gunakan cmdlet New-SelfSignedCertificate di PowerShell untuk membuat sertifikat digital.

  1. Jalankan perintah PowerShell berikut ini untuk membuat sertifikat digital yang ditandatangani sendiri. Ubah argumen -Subject yang sesuai untuk aplikasi Anda dan nama penyewa Azure Active Directory B2C seperti contosowebapp.contoso.onmicrosoft.com. Anda juga dapat mengatur -NotAftertanggal untuk menetapkan waktu kedaluwarsa yang berbeda untuk sertifikat.

    New-SelfSignedCertificate `
        -KeyExportPolicy Exportable `
        -Subject "CN=yourappname.yourtenant.onmicrosoft.com" `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -KeyUsage DigitalSignature `
        -NotAfter (Get-Date).AddMonths(12) `
        -CertStoreLocation "Cert:\CurrentUser\My"
    
  2. Di komputer Windows, cari dan pilih Kelola sertifikat pengguna

  3. Di bawah Sertifikat - Pengguna Saat Ini, pilih Sertifikat>Pribadi>yourappname.yourtenant.onmicrosoft.com.

  4. Pilih sertifikat, lalu pilihTindakan>Semua Tugas>Ekspor.

  5. Pilih Berikutnya>Ya, ekspor kunci privat>Berikutnya.

  6. Terima default untuk Format File Ekspor, lalu pilih Berikutnya.

  7. Aktifkan opsi Kata Sandi, masukkan sandi untuk sertifikat, lalu pilih Berikutnya.

  8. Untuk menentukan lokasi penyimpanan sertifikat, pilih Jelajahi dan navigasikan ke direktori pilihan Anda.

  9. Pada jendela Simpan Sebagai, masukkan Nama file, lalu pilih Simpan.

  10. Pilih Berikutnya > Selesai.

Agar Azure Active Directory B2C menerima kata sandi file .pfx, kata sandi harus dienkripsi dengan opsi TripleDES-SHA1 di utilitas Ekspor Simpan Sertifikat Windows, bukan di AES256-SHA256.

Buat kunci kebijakan

Anda harus menyimpan sertifikat di penyewa Azure AD B2C Anda.

  1. Masuk ke portal Azure.
  2. Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa Azure AD B2C Anda dari menu Direktori + langganan.
  3. Pilih Semua layanan di pojok kiri atas portal Microsoft Azure, lalu cari dan pilih AAD B2C.
  4. Pada halaman Gambaran Umum, pilih Kerangka Kerja Pengalaman Identitas.
  5. Pilih Tombol Kebijakan, lalu pilih Tambahkan.
  6. Untuk Opsi, pilih Upload.
  7. Masukkan Nama untuk kunci kebijakan. Contohnya, SAMLSigningCert. Awalan B2C_1A_ ditambahkan secara otomatis ke nama kunci Anda.
  8. Telusuri dan pilih file .pfx sertifikat Anda dengan kunci privat.
  9. Klik Buat.

Menambahkan penyedia klaim

Jika Anda ingin pengguna masuk menggunakan akun Layanan Federasi Direktori Aktif, Anda perlu menentukan akun sebagai penyedia klaim yang dapat berkomunikasi dengan AAD B2C melalui titik akhir. Titik akhir menyediakan set klaim yang digunakan oleh Azure AD B2C untuk memverifikasi bahwa pengguna tertentu telah diautentikasi.

Anda dapat menentukan akun Layanan Federasi Direktori Aktif sebagai penyedia klaim dengan menambahkannya ke elemen ClaimsProviders dalam file ekstensi kebijakan Anda. Untuk informasi selengkapnya, lihat menentukan IdP SAML.

  1. Buka TrustFrameworkExtensions.xml.

  2. Temukan elemen ClaimsProviders. Jika tidak ada, tambahkan di bawah elemen akar.

  3. Tambahkan ClaimsProvider baru sebagai berikut:

    <ClaimsProvider>
      <Domain>contoso.com</Domain>
      <DisplayName>Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Contoso-SAML2">
          <DisplayName>Contoso</DisplayName>
          <Description>Login with your AD FS account</Description>
          <Protocol Name="SAML2"/>
          <Metadata>
            <Item Key="WantsEncryptedAssertions">false</Item>
            <Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userPrincipalName" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/>
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/>
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email"/>
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name"/>
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication"/>
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Ganti your-AD-FS-domain dengan nama domain Layanan Federasi Direktori Aktif Anda dan ganti nilai klaim output IdentityProvider dengan DNS Anda (Nilai arbitrer yang menunjukkan domain Anda).

  5. Cari bagian <ClaimsProviders> dan tambahkan cuplikan XML berikut. Jika kebijakan Anda sudah berisi profil teknis SM-Saml-idp, lompat ke langkah berikutnya. Untuk informasi selengkapnya, lihat manajemen akses menyeluruh.

    <ClaimsProvider>
      <DisplayName>Session Management</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="SM-Saml-idp">
          <DisplayName>Session Management Provider</DisplayName>
          <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
          <Metadata>
            <Item Key="IncludeSessionIndex">false</Item>
            <Item Key="RegisterServiceProviders">false</Item>
          </Metadata>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  6. Simpan file.

Menambahkan perjalanan pengguna

Pada tahap ini, penyedia identitas telah disiapkan, tetapi belum tersedia di halaman masuk mana pun. Jika Anda tidak memiliki perjalanan pengguna kustom Anda sendiri, buat duplikat perjalanan pengguna template yang sudah ada, jika tidak lanjutkan ke langkah berikutnya.

  1. Buka file TrustFrameworkBase.xml dari paket pemula.
  2. Temukan dan salin seluruh konten elemen UserJourney yang menyertakan Id="SignUpOrSignIn".
  3. Buka TrustFrameworkExtensions.xml dan temukan elemen UserJourneys. Jika elemen tersebut tidak ada, tambahkan.
  4. Tempelkan seluruh konten elemen UserJourney yang Anda salin sebagai anak dari elemen UserJourneys.
  5. Ganti nama Id perjalanan pengguna. Contohnya, Id="CustomSignUpSignIn".

Tambahkan penyedia identitas ke perjalanan pengguna

Sekarang setelah Anda memiliki perjalanan pengguna, tambahkan penyedia identitas baru ke perjalanan pengguna. Anda terlebih dahulu menambahkan tombol masuk, lalu tautkan tombol tersebut ke tindakan. Tindakan ini adalah profil teknis yang Anda buat sebelumnya.

  1. Dalam perjalanan pengguna, temukan elemen langkah orkestrasi yang mencakup Type="CombinedSignInAndSignUp" atau Type="ClaimsProviderSelection". Ini biasanya langkah orkestrasi pertama. Elemen ClaimsProviderSelections berisi daftar penyedia identitas yang dapat digunakan pengguna untuk masuk. Urutan elemen mengontrol urutan tombol masuk yang disajikan kepada pengguna. Tambahkan elemen XML ClaimsProviderSelection. Tetapkan nilai TargetClaimsExchangeId ke nama yang bersahabat.

  2. Pada langkah orkestrasi berikutnya, tambahkan elemen ClaimsExchange. Set Id ke nilai pertukaran klaim target Id. Perbarui nilai TechnicalProfileReferenceId ke Id profil teknis yang Anda buat sebelumnya.

XML berikut menunjukkan dua langkah orkestrasi pertama dari perjalanan pengguna dengan penyedia identitas:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-SAML2" />
  </ClaimsExchanges>
</OrchestrationStep>

Mengonfigurasi kebijakan pihak yang diandalkan

Kebijakan pihak yang diandalkan, misalnya SignUpSignIn.xml, menentukan perjalanan yang akan dijalankan Azure AD B2C. Temukan elemen DefaultUserJourney dalam pihak yang diandalkan. Perbarui ReferenceId agar sesuai dengan ID perjalanan, tempat Anda menambahkan IdP.

Dalam contoh berikut, untuk perjalanan CustomSignUpSignIn, ReferenceId diatur ke CustomSignUpSignIn:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Mengunggah kebijakan kustom

  1. Masuk ke portal Azure.
  2. Pilih ikon Direktori + Langganan di toolbar portal, lalu pilih direktori yang berisi penyewa Azure AD B2C Anda.
  3. Di portal Microsoft Azure, cari dan pilih AAD B2C.
  4. Di bagian Kebijakan, pilih IEF.
  5. Pilih Unggah Kebijakan Kustom, lalu unggah dua file kebijakan yang Anda ubah, dalam urutan berikut: kebijakan ekstensi, misalnya TrustFrameworkExtensions.xml, lalu kebijakan pihak yang diandalkan, seperti SignUpSignIn.xml.

Mengonfigurasi kepercayaan pihak yang mengandalkan Layanan Federasi Direktori Aktif

Untuk menggunakan Layanan Federasi Direktori Aktif sebagai IdP di AAD B2C, Anda perlu membuat Kepercayaan Pihak yang Mengandalkan Layanan Federasi Direktori Aktif dengan metadata AAD B2C SAML. Contoh berikut ini memperlihatkan alamat URL ke metadata SAML dari profil teknis Azure AD B2C:

https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/your-policy/samlp/metadata?idptp=your-technical-profile

Saat menggunakan domain kustom, gunakan format berikut:

https://your-domain-name/your-tenant-name.onmicrosoft.com/your-policy/samlp/metadata?idptp=your-technical-profile

Ganti nilai berikut:

  • your-tenant-name dengan nama penyewa Anda, seperti your-tenant.onmicrosoft.com.
  • your-domain-name dengan nama domain kustom Anda, seperti login.contoso.com.
  • your-policy dengan nama kebijakan Anda. Misalnya, B2C_1A_signup_signin_adfs.
  • your-technical-profile dengan nama profil teknis IdP SAML Anda. Misalnya, Contoso-SAML2.

Buka browser dan navigasikan ke URL. Pastikan Anda mengetikkan URL yang benar dan Anda memiliki akses ke file metadata XML. Untuk menambahkan kepercayaan pihak yang mengandalkan baru dengan menggunakan snap-in Manajemen Layanan Federasi Direktori Aktif dan mengonfigurasi pengaturan secara manual, lakukan prosedur berikut ini di server federasi. Keanggotaan di admin atau setara pada komputer lokal adalah minimum yang diperlukan untuk menyelesaikan prosedur ini.

  1. Di Manajer Server, pilih Alat, lalu pilih Manajemen Layanan Federasi Direktori Aktif.

  2. Pilih Tambahkan Kepercayaan Pihak yang Mengandalkan.

  3. Pada halaman Selamat datang, pilih Klaim aware, lalu pilih Mulai.

  4. Pada halaman Pilih Sumber Data, pilih Impor data tentang pihak yang mengandalkan penerbitan secara online atau di jaringan lokal, berikan URL metadata Azure AD B2C Anda, lalu pilih Berikutnya.

  5. Pada halaman Tentukan Nama Tampilan, masukkan Nama tampilan, di bawah Catatan, masukkan deskripsi untuk kepercayaan pihak yang mengandalkan ini, lalu pilih Berikutnya.

  6. Pada halaman Pilih Kebijakan Access Control, pilih kebijakan, lalu pilih Berikutnya.

  7. Pada halaman Siap Menambahkan Kepercayaan, ulas pengaturan, lalu pilih Berikutnya untuk menyimpan informasi kepercayaan pihak yang Anda andalkan.

  8. Pada halaman Selesai, pilih Tutup, tindakan ini secara otomatis menampilkan kotak dialog Edit Aturan Klaim.

  9. Pilih Tambahkan Aturan.

  10. Di Templat aturan klaim, pilih Kirim atribut LDAP sebagai klaim.

  11. Berikan Nama aturan klaim. Untuk Toko atribut, pilih Pilih Direktori Aktif, tambahkan klaim berikut, lalu pilih Selesai dan OK.

    Atribut LDAP Jenis klaim keluar
    Nama Principal Pengguna userPrincipalName
    Nama Belakang family_name
    Nama Depan given_name
    Alamat Surel email
    Nama Tampilan nama

    Perhatikan bahwa nama-nama ini tidak akan ditampilkan dalam menu menurun jenis klaim keluar. Anda perlu mengetiknya secara manual. (Menu menurun dapat diedit).

  12. Berdasarkan jenis sertifikat Anda, Anda mungkin perlu mengatur algoritme HASH. Pada jendela properti kepercayaan pihak (B2C Demo), pilih tab Tingkat Lanjut dan ubah Amankan Algoritme hash menjadi SHA-256, lalu pilih Oke.

  13. Di Manajer Server, pilih Alat, lalu pilih Manajemen Layanan Federasi Direktori Aktif.

  14. Pilih kepercayaan pihak yang mengandalkan yang Anda buat, pilih Perbarui dari Metadata Federasi, lalu pilih Perbarui.

Menguji kebijakan kustom Anda

  1. Masuk ke portal Azure.
  2. Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa Azure AD B2C Anda dari menu Direktori + langganan.
  3. Di portal Microsoft Azure, cari dan pilih AAD B2C.
  4. Di bawah Kebijakan, pilih IEF
  5. Pilih kebijakan pihak yang mengandalkan Anda, misalnya B2C_1A_signup_signin.
  6. Untuk Aplikasi, pilih aplikasi web yang Anda daftarkan sebelumnya. URL Balasan harus menunjukkan https://jwt.ms.
  7. Pilih tombol Jalankan sekarang.
  8. Dari halaman masuk atau pendaftaran, pilih Layanan Federasi Direktori Aktif Contoso untuk masuk dengan IdP Layanan Federasi Direktori Aktif Contoso.

Jika proses masuk berhasil, browser Anda dialihkan ke https://jwt.ms, yang menampilkan konten token yang dikembalikan oleh Azure AD B2C.

Pemecahan masalah layanan dari Layanan Federasi Direktori Aktif

Layanan Federasi Direktori Aktif dikonfigurasi untuk menggunakan log aplikasi Windows. Jika Anda mengalami tantangan dalam menyiapkan Layanan Federasi Direktori Aktif sebagai IdP SAML menggunakan kebijakan kustom di AAD B2C, Anda mungkin ingin memeriksa log kejadian Layanan Federasi Direktori Aktif:

  1. Pada bilah Windows Search, ketik Pemantau Peristiwa, lalu pilih aplikasi desktop Pemantau Peristiwa.
  2. Untuk menampilkan log komputer lain, klik kanan Pemantau Peristiwa (lokal). Pilih Sambungkan ke komputer lain, dan isi bidang untuk menyelesaikan kotak dialog Pilih Komputer.
  3. Di Pemantau Peristiwa, buka Log Aplikasi dan layanan.
  4. Pilih Layanan Federasi Direktori Aktif, lalu pilih Admin.
  5. Untuk menampilkan informasi selengkapnya tentang suatu peristiwa, klik dua kali peristiwa tersebut.

Permintaan SAML tidak ditandatangani dengan peristiwa algoritma tanda tangan yang diharapkan

Kesalahan ini menunjukkan bahwa permintaan SAML yang dikirim oleh AAD B2C tidak ditandatangani dengan algoritma tanda tangan yang diharapkan yang dikonfigurasi dalam Layanan Federasi Direktori Aktif. Misalnya, permintaan SAML ditandatangani dengan algoritma tanda tangan rsa-sha256, tetapi algoritma tanda tangan yang diharapkan adalah rsa-sha1. Untuk memperbaiki masalah ini, pastikan AAD B2C dan Layanan Federasi Direktori Aktif dikonfigurasi dengan algoritma tanda tangan yang sama.

Opsi 1: Mengatur algoritma tanda tangan di AAD B2C

Anda dapat mengonfigurasi cara menandatangani permintaan SAML di AAD B2C. Metadata XmlSignatureAlgorithm mengontrol nilai parameter SigAlg (string kueri atau parameter kiriman) dalam permintaan SAML. Contoh berikut mengonfigurasi AAD B2C untuk menggunakan algoritma tanda tangan rsa-sha256.

<Metadata>
  <Item Key="WantsEncryptedAssertions">false</Item>
  <Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item>
  <Item Key="XmlSignatureAlgorithm">Sha256</Item>
</Metadata>

Opsi 2: Mengatur algoritma tanda tangan di Layanan Federasi Direktori Aktif

Atau, Anda dapat mengonfigurasi algoritma tanda tangan permintaan SAML yang diharapkan di Active Directory Federation Services.

  1. Di Manajer Server, pilih Alat, lalu pilih Manajemen Layanan Federasi Direktori Aktif.
  2. Pilih Kepercayaan Pihak yang Mengandalkan yang Anda buat sebelumnya.
  3. Pilih Properti, lalu pilih Lanjutan
  4. Konfigurasikan Algoritme hash aman, dan pilih OK untuk menyimpan perubahan.

Permintaan HTTP-Redirect tidak berisi parameter 'Tanda Tangan' yang diperlukan untuk permintaan yang ditandatangani (AADB2C90168)

Opsi 1: Atur ResponsesSigned ke salah di Azure AD B2C

Anda dapat menonaktifkan persyaratan pesan yang ditandatangani di Azure AD B2C. Contoh berikut mengonfigurasi Azure AD B2C agar tidak memerlukan parameter 'Tanda Tangan' untuk permintaan yang ditandatangani.

<Metadata>
  <Item Key="WantsEncryptedAssertions">false</Item>
  <Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item>
  <Item Key="ResponsesSigned">false</Item>
</Metadata>

Opsi 2: Atur pihak yang mengandalkan di Azure Directory Federation Services untuk menandatangani Pesan dan Pernyataan

Atau, Anda dapat mengonfigurasi pihak yang mengandalkan di Azure Directory Federation Services seperti yang disebutkan di bawah ini:

  1. Buka PowerShell sebagai Administrator dan jalankan Set-AdfsRelyingPartyTrust -TargetName <RP Name> -SamlResponseSignature MessageAndAssertion cmdlet untuk menandatangani Pesan dan Pernyataan.
  2. Jalankan Set-AdfsRelyingPartyTrust -TargetName <RP Name> dan konfirmasi properti SamlResponseSignature ditetapkan sebagai MessageAndAssertion.