Konfigurasi token 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.

Dalam artikel ini, Anda mempelajari cara mengonfigurasi masa pakai dan kompatibilitas token di Azure Active Directory B2C (Azure AD B2C).

Prasyarat

Perilaku masa pakai token

Anda dapat mengonfigurasi masa pakai token, yang mencakup:

  • Akses dan masa pakai (menit) token ID - Masa pakai token pembawa OAuth 2.0 dan token ID. Defaultnya 60 menit (1 jam). Minimum (inklusif) 5 menit. Maksimum (inklusif) 1.440 menit (24 jam).
  • Refresh masa pakai token (hari) - Periode waktu maksimum sebelum token refresh dapat digunakan untuk memperoleh token akses baru, jika aplikasi Anda telah diberikan offline_access cakupan. Defaultnya 14 hari. Minimum (inklusif) satu hari. Maksimum (inklusif) 90 hari.
  • Masa pakai jendela geser token refresh - Jenis jendela geser token refresh. Bounded menunjukkan bahwa token refresh dapat diperpanjang sebagaimana tentukan dalam Panjang masa pakai (hari). No expiry menunjukkan bahwa masa pakai jendela geser token refresh tidak pernah kedaluwarsa.
  • Panjang masa pakai (hari) - Setelah periode waktu ini berlalu, pengguna dipaksa untuk mengautentikasi ulang, terlepas dari masa berlaku token refresh terbaru yang diperoleh oleh aplikasi. Nilai harus lebih besar dari atau sama dengan nilai masa pakai token Refresh.

Diagram berikut menunjukkan perilaku masa pakai jendela geser token refresh.

Refresh token lifetime

Catatan

Aplikasi satu-halaman menggunakan aliran kode otorisasi dengan PKCE selalu memiliki masa pakai token refresh 24 jam sementara aplikasi seluler, aplikasi desktop, dan aplikasi web tidak mengalami batasan ini. Pelajari lebih lanjut tentang implikasi keamanan token refresh di browser.

Konfigurasi masa pakai token

Untuk mengonfigurasi masa pakai token alur pengguna 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. Pilih Alur pengguna (kebijakan).
  5. Buka alur pengguna yang Anda buat sebelumnya.
  6. Pilih Properti.
  7. Di bawah masa pakai Token, sesuaikan properti agar sesuai dengan kebutuhan aplikasi Anda.
  8. Pilih Simpan.

configure user flows tokens in Azure portal.

Untuk mengubah pengaturan pada kompatibilitas token Anda, Anda mengatur metadata profil teknis Penerbit Token di ekstensi, atau file pihak yang mengandalkan kebijakan yang ingin Anda berikan dampak. Profil teknis penerbit token terlihat seperti contoh berikut:

<ClaimsProviders>
  <ClaimsProvider>
    <DisplayName>Token Issuer</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="JwtIssuer">
        <Metadata>
          <Item Key="token_lifetime_secs">3600</Item>
          <Item Key="id_token_lifetime_secs">3600</Item>
          <Item Key="refresh_token_lifetime_secs">1209600</Item>
          <Item Key="rolling_refresh_token_lifetime_secs">7776000</Item>
          <!--<Item Key="allow_infinite_rolling_refresh_token">true</Item>-->
          <Item Key="IssuanceClaimPattern">AuthorityAndTenantGuid</Item>
          <Item Key="AuthenticationContextReferenceClaimPattern">None</Item>
        </Metadata>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
</ClaimsProviders>

Nilai berikut ini diatur dalam contoh sebelumnya:

  • token_lifetime_secs - Akses masa pakai token (detik). Defaultnya 3.600 (1 jam). Minimal 300 menit (5 menit). Maksimum 86.400 (24 jam).
  • id_token_lifetime_secs - masa pakai token ID (detik). Defaultnya 3.600 (1 jam). Minimal 300 menit (5 menit). Maksimum 86.400 (24 jam).
  • id_token_lifetime_secs Masa pakai (detik) token refresh. Defaultnya adalah 1.209.600 (14 hari). Minimum 86.400 (24 jam). Maksimum 7.776.000 (90 hari).
  • rolling_refresh_token_lifetime_secs - Masa pakai jendela geser token refresh (detik). Defaultnya 7.776.000 (90 hari). Minimum 86.400 (24 jam). Maksimum 31.536.000 (365 hari). Jika Anda tidak ingin menerapkan masa pakai jendela geser, atur nilai allow_infinite_rolling_refresh_token ke true.
  • allow_infinite_rolling_refresh_token - Masa pakai jendela geser token refresh tidak pernah kedaluwarsa.

Pengaturan kompatibilitas token

Anda dapat mengonfigurasi kompatibilitas token, yang mencakup:

  • Klaim penerbit (iss) - Format akses dan penerbit token ID.
  • Klaim subjek (sub) - Prinsipal yang dengannya token memvalidasi informasi, seperti pengguna aplikasi. Nilai ini tidak berubah dan tidak dapat ditetapkan atau digunakan kembali. Ini dapat digunakan untuk melakukan pemeriksaan otorisasi dengan aman, seperti saat token digunakan untuk mengakses sumber daya. Secara default, klaim subjek diisi dengan ID objek pengguna di direktori.
  • Klaim yang mewakili aliran pengguna - Klaim ini mengidentifikasi aliran pengguna yang dijalankan. Nilai yang mungkin: tfp (default), atau acr.

Untuk mengonfigurasi pengaturan kompatibilitas aliran pengguna Anda:

  1. Pilih Alur pengguna (kebijakan).
  2. Buka alur pengguna yang Anda buat sebelumnya.
  3. Pilih Properti.
  4. Di bawah Pengaturan kompatibilitas token, sesuaikan properti agar sesuai dengan kebutuhan aplikasi Anda.
  5. Pilih Simpan.

Untuk mengubah pengaturan pada kompatibilitas token, Anda mengatur metadata profil teknis Penerbit Token dalam ekstensi, atau file pihak yang mengandalkan kebijakan yang ingin Anda perbarui. Profil teknis penerbit token terlihat seperti contoh berikut:

<ClaimsProviders>
  <ClaimsProvider>
    <DisplayName>Token Issuer</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="JwtIssuer">
        <Metadata>
          ...
          <Item Key="IssuanceClaimPattern">AuthorityAndTenantGuid</Item>
          <Item Key="AuthenticationContextReferenceClaimPattern">None</Item>
        </Metadata>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
</ClaimsProviders>
  • Klaim penerbit (iss) - Klaim penerbit (iss) ditetapkan dengan item metadata IssuanceClaimPattern. Nilai yang berlaku adalah AuthorityAndTenantGuid dan AuthorityWithTfp.

  • Menetapkan klaim yang mewakili ID kebijakan - Opsi untuk menetapkan nilai ini adalah TFP (kebijakan kerangka kerja kepercayaan) dan ACR (referensi konteks autentikasi). TFP adalah nilai yang disarankan. Atur AuthenticationContextReferenceClaimPattern dengan nilai None.

    Di elemen ClaimsSchema, tambahkan elemen ini:

    <ClaimType Id="trustFrameworkPolicy">
      <DisplayName>Trust framework policy name</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    

    Dalam kebijakan pihak pengandal Anda, di bawah elemen OutputClaims, tambahkan klaim output berikut:

    <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp" />
    

    Untuk ACR, hapus item AuthenticationContextReferenceClaimPattern.

  • Klaim Subjek (sub) - Opsi ini default ke ObjectID, jika Anda ingin mengalihkan pengaturan ini ke Not Supported, ganti baris ini:

    <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
    

    dengan baris ini:

    <OutputClaim ClaimTypeReferenceId="sub" />
    

Menyediakan klaim opsional ke aplikasi

Klaim aplikasi adalah nilai yang dikembalikan ke aplikasi. Perbarui alur pengguna Anda untuk memuat klaim yang diinginkan.

  1. Pilih Alur pengguna (kebijakan).
  2. Buka alur pengguna yang Anda buat sebelumnya.
  3. Pilih Klaim aplikasi.
  4. Pilih klaim dan atribut yang ingin Anda kirim kembali ke aplikasi Anda.
  5. Pilih Simpan.

Klaim output profil teknis kebijakan pihak pengandal adalah nilai yang dikembalikan ke aplikasi. Menambahkan klaim output akan mengeluarkan klaim ke dalam token setelah perjalanan pengguna yang berhasil, dan akan dikirim ke aplikasi. Ubah elemen profil teknis dalam bagian pihak pengandal untuk menambahkan klaim yang diinginkan sebagai klaim output.

  1. Buka file kebijakan kustom Anda. Misalnya, SignUpOrSignin.xml.
  2. Temukan elemen OutputClaims. Tambahkan OutputClaim yang ingin Anda sertakan dalam token.
  3. Atur output atribut klaim.

Contoh berikut menambahkan accountBalance klaim. Klaim accountBalance dikirim ke aplikasi sebagai saldo.

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
    <Protocol Name="OpenIdConnect" />
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="displayName" />
      <OutputClaim ClaimTypeReferenceId="givenName" />
      <OutputClaim ClaimTypeReferenceId="surname" />
      <OutputClaim ClaimTypeReferenceId="email" />
      <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
      <OutputClaim ClaimTypeReferenceId="identityProvider" />
      <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      <!--Add the optional claims here-->
      <OutputClaim ClaimTypeReferenceId="accountBalance" DefaultValue="" PartnerClaimType="balance" />
    </OutputClaims>
    <SubjectNamingInfo ClaimType="sub" />
  </TechnicalProfile>
</RelyingParty>

Elemen OutputClaim berisi atribut berikut:

  • ClaimTypeReferenceId - Pengidentifikasi jenis klaim yang telah ditentukan di bagian ClaimsSchema dalam file kebijakan atau file kebijakan induk.
  • PartnerClaimType - Memungkinkan Anda untuk mengubah nama klaim dalam token.
  • DefaultValue - Nilai default. Anda juga dapat mengatur nilai default ke penyelesai klaim, seperti ID penyewa.
  • AlwaysUseDefaultValue - Paksa penggunaan nilai default.

Masa pakai kode otorisasi

Saat menggunakan alur kode otorisasi OAuth 2.0, aplikasi dapat menggunakan kode otorisasi untuk meminta token akses untuk sumber daya target. Kode otorisasi memiliki masa berlaku pendek yang kedaluwarsa setelah sekitar 10 menit. Masa pakai kode otorisasi tidak dapat dikonfigurasi. Pastikan aplikasi Anda menukarkan kode otorisasi dalam waktu 10 menit.

Langkah berikutnya