Menyiapkan rincian masuk untuk ID Microsoft Entra multi-penyewa 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.

Artikel ini memperlihatkan kepada Anda cara mengaktifkan masuk untuk pengguna menggunakan titik akhir multi-penyewa untuk ID Microsoft Entra. Mengizinkan pengguna dari beberapa penyewa Microsoft Entra masuk menggunakan Azure AD B2C, tanpa harus mengonfigurasi penyedia identitas untuk setiap penyewa. Namun, anggota tamu di salah satu penyewa ini tidak akan dapat masuk. Untuk itu, Anda perlu mengonfigurasi setiap penyewa secara individual.

Prasyarat

Catatan

Pada artikel ini, diasumsikan bahwa paket permulaan SocialAndLocalAccounts digunakan dalam langkah-langkah sebelumnya yang disebutkan dalam prasyarat.

Mendaftarkan aplikasi Microsoft Entra

Untuk mengaktifkan masuk bagi pengguna dengan akun Microsoft Entra di Azure Active Directory B2C (Azure AD B2C), Anda perlu membuat aplikasi di portal Azure. Untuk informasi selengkapnya, lihat Daftarkan aplikasi dengan platform identitas Microsoft.

  1. Masuk ke portal Azure.

  2. Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa ID Microsoft Entra Anda dari menu Direktori + langganan.

  3. Pilih Semua layanan di sudut kiri atas portal Microsoft Azure, lalu cari dan pilih Pendaftaran aplikasi.

  4. Pilih Pendaftaran baru.

  5. Masukkan Nama untuk aplikasi Anda. Contohnya, Azure AD B2C App.

  6. Pilih Akun di direktori organisasi apa pun (Direktori Microsoft Entra apa pun – Multipenyewa) untuk aplikasi ini.

  7. Untuk URI Pengalihan, terima nilai Web, dan masukkan URL berikut dengan huruf kecil, di mana your-B2C-tenant-name diganti dengan nama penyewa Azure Active Directory B2C Anda.

    https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
    

    Contohnya, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp.

    Jika Anda menggunakan domain kustom, masukkan https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Ganti your-domain-name dengan domain kustom Anda, dan your-tenant-name dengan nama penyewa Anda.

  8. Pilih Daftarkan. Rekam ID Aplikasi (klien) untuk digunakan di langkah selanjutnya.

  9. Pilih Sertifikat & rahasia, lalu pilih Rahasia klien baru.

  10. Masukkan Deskripsi untuk rahasia tersebut, pilih kedaluwarsa, lalu pilih Tambahkan. Rekam Nilai rahasia untuk digunakan di langkah selanjutnya.

Mengonfigurasi klaim opsional

Jika Anda ingin mendapatkan family_nameklaim , dan given_name dari ID Microsoft Entra, Anda dapat mengonfigurasi klaim opsional untuk aplikasi Anda di UI portal Azure atau manifes aplikasi. Untuk informasi selengkapnya, lihat Cara memberikan klaim opsional ke aplikasi Microsoft Entra Anda.

  1. Masuk ke portal Azure. Mencari dan memilih Microsoft Entra ID.
  2. Dari bagian Kelola, pilih Pendaftaran aplikasi.
  3. Pilih aplikasi yang Anda ingin untuk konfigurasi klaim opsional dalam daftar.
  4. Dari bagian Kelola, pilih Konfigurasi token.
  5. Pilih Tambahkan klaim opsional.
  6. Untuk Jenis token, pilih ID.
  7. Pilih klaim opsional untuk ditambahkan, family_name dan given_name.
  8. Pilih Tambahkan. Jika Aktifkan izin email Microsoft Graph (diperlukan agar klaim muncul di token) muncul, pilih aktifkan, lalu pilih Tambahkan lagi.

[Opsional] Memverifikasi keaslian aplikasi Anda

Verifikasi penerbit membantu pengguna memahami keaslian aplikasi yang Anda daftarkan. Aplikasi terverifikasi berarti bahwa penerbit aplikasi telah memverifikasi identitas mereka menggunakan Microsoft Partner Network (MPN) mereka. Pelajari cara menandai aplikasi sebagai terverifikasi penerbit.

Buat kunci kebijakan

Anda perlu menyimpan kunci aplikasi yang Anda buat di penyewa Azure Active Directory B2C Anda.

  1. 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.
  2. Pilih Semua layanan di pojok kiri atas portal Microsoft Azure, lalu cari dan pilih AAD B2C.
  3. Di bagian Kebijakan, pilih IEF.
  4. Pilih Kunci kebijakan lalu pilih Tambahkan.
  5. Untuk Opsi, pilih Manual.
  6. Masukkan Nama untuk kunci kebijakan. Contohnya, AADAppSecret. Prefiks B2C_1A_ ditambahkan secara otomatis ke nama kunci Anda saat dibuat, sehingga referensinya di XML di bagian berikut adalah untuk B2C_1A_AADAppSecret.
  7. Di Rahasia, masukkan rahasia klien Anda yang sebelumnya Anda rekam.
  8. Untuk Penggunaan kunci, pilih Signature.
  9. Pilih Buat.

Mengonfigurasi ID Microsoft Entra sebagai penyedia identitas

Untuk memungkinkan pengguna masuk menggunakan akun Microsoft Entra, Anda perlu menentukan ID Microsoft Entra sebagai penyedia klaim yang dapat berkomunikasi dengan Azure AD 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 ID Microsoft Entra sebagai penyedia klaim dengan menambahkan ID Microsoft Entra ke elemen ClaimsProvider dalam file ekstensi kebijakan Anda.

  1. Buka file SocialAndLocalAccounts/TrustFrameworkExtensions.xml (lihat file yang telah Anda gunakan di prasyarat).

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

  3. Tambahkan ClaimsProvider baru sebagai berikut:

    <ClaimsProvider>
      <Domain>commonaad</Domain>
      <DisplayName>Common AAD</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AADCommon-OpenIdConnect">
          <DisplayName>Multi-Tenant AAD</DisplayName>
          <Description>Login with your Contoso account</Description>
          <Protocol Name="OpenIdConnect"/>
          <Metadata>
            <Item Key="METADATA">https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <!-- The key below allows you to specify each of the Azure AD tenants that can be used to sign in. Update the GUIDs below for each tenant. -->
            <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000,https://login.microsoftonline.com/11111111-1111-1111-1111-111111111111</Item>
            <!-- The commented key below specifies that users from any tenant can sign-in. Uncomment if you would like anyone with an Azure AD account to be able to sign in. -->
            <!-- <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/</Item> -->
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AADAppSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/>
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Di bawah elemen PenyediaKlaim, perbarui nilai untuk Domain ke nilai unik yang dapat digunakan untuk membedakannya dari IdP lain.

  5. Di bawah elemen ProfilTeknis, perbarui nilai untuk DisplayName, misalnya, Multi-Tenant AAD. Nilai ini ditampilkan pada tombol rincian masuk di halaman masuk Anda.

  6. Atur client_id ke ID aplikasi aplikasi multi-penyewa Microsoft Entra yang Anda daftarkan sebelumnya.

  7. Di bawah CryptographicKeys, perbarui nilai StorageReferenceId ke nama kunci kebijakan yang dibuat sebelumnya. Contohnya, B2C_1A_AADAppSecret.

Membatasi akses

Menggunakan https://login.microsoftonline.com/ sebagai nilai untuk ValidTokenIssuerPrefixes memungkinkan semua pengguna Microsoft Entra untuk masuk ke aplikasi Anda. Perbarui daftar penerbit token yang valid dan batasi akses ke daftar pengguna penyewa Microsoft Entra tertentu yang dapat masuk.

Untuk mendapatkan nilai, lihat metadata penemuan OpenID Koneksi untuk setiap penyewa Microsoft Entra tempat Anda ingin meminta pengguna masuk. Format URL metadata mirip https://login.microsoftonline.com/your-tenant/v2.0/.well-known/openid-configurationdengan , di mana your-tenant adalah nama penyewa Microsoft Entra Anda. Contohnya:

https://login.microsoftonline.com/fabrikam.onmicrosoft.com/v2.0/.well-known/openid-configuration

Lakukan langkah-langkah ini untuk setiap penyewa Microsoft Entra yang harus digunakan untuk masuk:

  1. Buka browser Anda dan buka URL metadata OpenID Connect untuk penyewa. Temukan issuer objek dan rekam nilainya. Nilainya akan terlihat mirip dengan https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0.
  2. Salin dan tempel nilai ke dalam kunci ValidTokenIssuerPrefixes. Pisahkan beberapa pengeluar sertifikat dengan koma. Contoh dengan dua pengeluar sertifikat muncul di sampel XML ClaimsProvider sebelumnya.

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="AzureADCommonExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADCommonExchange" TechnicalProfileReferenceId="AADCommon-OpenIdConnect" />
  </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.

Menguji kebijakan kustom Anda

  1. Pilih kebijakan pihak yang mengandalkan Anda, misalnya B2C_1A_signup_signin.
  2. Untuk Aplikasi, pilih aplikasi web yang Anda daftarkan sebelumnya. URL Balasan harus menunjukkan https://jwt.ms.
  3. Pilih tombol Jalankan sekarang.
  4. Dari halaman pendaftaran atau masuk, pilih COMMON Microsoft Entra ID untuk masuk dengan akun Microsoft Entra.

Untuk menguji kemampuan masuk multi-penyewa, lakukan dua langkah terakhir menggunakan kredensial untuk pengguna yang ada penyewa Microsoft Entra lainnya. Salin Jalankan titik akhir sekarang dan buka di jendela browser privat, misalnya, Mode Incognito di Google Chrome atau jendela InPrivate di Microsoft Edge. Membuka di jendela browser privat memungkinkan Anda menguji perjalanan pengguna penuh dengan tidak menggunakan kredensial Microsoft Entra yang saat ini di-cache.

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

Langkah berikutnya