Meneruskan token akses IdP ke aplikasi Anda 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.

Alur pengguna di Azure Active Directory B2C (Azure AD B2C) memberi pengguna aplikasi Anda kesempatan untuk mendaftar atau masuk dengan IdP. Saat perjalanan dimulai, Azure AD B2C menerima token akses dari IdP. Azure AD B2C menggunakan token itu untuk mengambil informasi tentang pengguna. Anda mengaktifkan klaim dalam alur pengguna Anda untuk meneruskan token ke aplikasi yang Anda daftarkan di Azure AD B2C.

Azure AD B2C mendukung penerusan token akses IdP OAuth 2.0, yang mencakup Facebook dan Google. Untuk semua IdP lainnya, klaim dikembalikan kosong.

Azure AD B2C mendukung penerusan token akses IdP OAuth 2.0 dan OpenID Connect. Untuk semua IdP lainnya, klaim dikembalikan kosong. Untuk detail selengkapnya, lihat federasi penyedia identitas Demo langsung.

Diagram berikut menunjukkan bagaimana token IdP kembali ke aplikasi Anda:

Identity provider pass through flow

Prasyarat

Mengaktifkan klaim

  1. Masuk ke portal Microsoft Azure sebagai administrator global penyewa Azure AD B2C Anda.

  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. Pilih Alur pengguna (kebijakan), lalu pilih alur pengguna Anda. Misalnya, B2C_1_signupsignin1.

  5. Pilih Klaim aplikasi.

  6. Aktifkan klaim Token Akses IdP.

    Enable the Identity Provider Access Token claim

  7. Klik Simpan untuk menyimpan alur pengguna.

Menguji alur pengguna

Saat menguji aplikasi Anda di Azure AD B2C, sebaiknya minta token Azure AD B2C dikembalikan ke https://jwt.ms untuk meninjau klaim di dalamnya.

  1. Di halaman Gambaran Umum alur pengguna, pilih Jalankan alur pengguna.

  2. Untuk Aplikasi, pilih aplikasi Anda yang sebelumnya Anda daftarkan. Untuk melihat token pada contoh di bawah ini, URL Balasan akan menampilkan https://jwt.ms.

  3. Klik Jalankan alur pengguna, lalu masuk dengan informasi masuk akun Anda. Anda akan melihat token akses IdP di klaim idp_access_token.

    Anda akan melihat sesuatu yang mirip dengan contoh berikut:

    Decoded token in jwt.ms with idp_access_token block highlighted

Menambahkan elemen klaim

  1. Buka file TrustframeworkExtensions.xml Anda dan tambahkan elemen ClaimType berikut dengan pengidentifikasi identityProviderAccessToken ke elemen ClaimsSchema:

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="identityProviderAccessToken">
          <DisplayName>Identity Provider Access Token</DisplayName>
          <DataType>string</DataType>
          <AdminHelpText>Stores the access token of the identity provider.</AdminHelpText>
        </ClaimType>
        ...
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. Tambahkan elemen OutputClaim ke elemen TechnicalProfile untuk setiap IdP OAuth 2.0 yang Anda inginkan token aksesnya. Contoh berikut menunjukkan elemen yang ditambahkan ke profil teknis Facebook:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Simpan file TrustframeworkExtensions.xml.

  4. Buka file kebijakan pihak yang mengandalkan, seperti SignUpOrSignIn.xml, dan tambahkan elemen OutputClaim ke TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  5. Simpan file kebijakan.

Menguji kebijakan Anda

Saat menguji aplikasi Anda di Azure AD B2C, akan berguna jika token Azure AD B2C ditampilkan ke https://jwt.ms untuk dapat meninjau klaim di dalamnya.

Unggah file

  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. Pilih IEF.
  5. Pada halaman Kebijakan Kustom, klik Kebijakan Unggah.
  6. Pilih Timpa kebijakan jika ada, lalu telusuri dan pilih file TrustframeworkExtensions.xml.
  7. Pilih Unggah.
  8. Ulangi langkah 5 sampai 7 untuk file pihak yang mengandalkan, seperti SignUpOrSignIn.xml.

Menjalankan kebijakan

  1. Buka kebijakan yang Anda ubah. Misalnya, B2C_1A_signup_signin.

  2. Untuk Aplikasi, pilih aplikasi Anda yang sebelumnya Anda daftarkan. Untuk melihat token pada contoh di bawah ini, URL Balasan akan menampilkan https://jwt.ms.

  3. Pilih Jalankan sekarang.

    Anda akan melihat sesuatu yang mirip dengan contoh berikut:

    Decoded token in jwt.ms with idp_access_token block highlighted

Meneruskan token refresh IDP (opsional)

Token akses yang dikembalikan idP berlaku untuk waktu yang singkat. Beberapa penyedia identitas juga mengeluarkan token refresh bersama dengan token akses. Aplikasi klien Anda kemudian dapat menukar token refresh penyedia identitas dengan token akses baru saat diperlukan.

Kebijakan kustom Azure AD B2C mendukung melewati token refresh penyedia identitas OAuth 2.0, yang mencakup Facebook, Google, dan GitHub.

Untuk meneruskan token refresh idP, ikuti langkah-langkah berikut:

  1. Buka file TrustframeworkExtensions.xml Anda dan tambahkan elemen ClaimType berikut dengan pengidentifikasi identityProviderRefreshToken ke elemen ClaimsSchema.

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. Tambahkan elemen OutputClaim ke elemen TechnicalProfile untuk setiap idP OAuth 2.0 yang Anda inginkan untuk token refresh. Contoh berikut menunjukkan elemen yang ditambahkan ke profil teknis Facebook:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Beberapa penyedia identitas mengharuskan Anda untuk menyertakan metadata atau cakupan ke profil teknis Penyedia Identitas.

    • Untuk IdP Google, tambahkan dua jenis access_type klaim dan prompt. Kemudian tambahkan klaim input berikut ke profil teknis Penyedia Identitas:

      <InputClaims>
          <InputClaim ClaimTypeReferenceId="access_type" PartnerClaimType="access_type" DefaultValue="offline" AlwaysUseDefaultValue="true" />
      
          <!-- The refresh_token is return only on the first authorization for a given user. Subsequent authorization request doesn't return the refresh_token.
              To fix this issue we add the prompt=consent query string parameter to the authorization request-->
          <InputClaim ClaimTypeReferenceId="prompt" PartnerClaimType="prompt" DefaultValue="consent" AlwaysUseDefaultValue="true" />
      </InputClaims>
      
    • Penyedia identitas lain mungkin memiliki metode yang berbeda untuk mengeluarkan token refresh. Ikuti audiens Penyedia Identitas dan tambahkan elemen yang diperlukan ke profil teknis IdP Anda.

  4. Simpan perubahan yang Anda buat di file TrustframeworkExtensions.xml Anda.

  5. Buka file kebijakan pihak yang mengandalkan, seperti SignUpOrSignIn.xml, dan tambahkan elemen OutputClaim ke TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. Simpan perubahan yang Anda buat dalam file kebijakan pihak yang mengandalkan kebijakan Anda.

  7. Unggah file TrustframeworkExtensions.xml, lalu file kebijakan pihak yang mengandalkan.

  8. Menguji kebijakan Anda

Langkah berikutnya

Pelajari lebih lanjut di gambaran umum token Azure AD B2C.