Menentukan profil teknis untuk pengeluar sertifikat token JWT dalam kebijakan kustom Azure Active Directory B2C

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.

Azure Active Directory B2C (Azure AD B2C) memancarkan beberapa jenis token keamanan saat memproses setiap aliran autentikasi. Profil teknis untuk pengeluar sertifikat token JWT mengeluarkan token JWT yang dikembalikan ke aplikasi pihak yang mengandalkan. Biasanya profil teknis ini adalah langkah orkestrasi terakhir dalam perjalanan.

Protokol

Atribut Nama dari elemen Protokol perlu diatur ke OpenIdConnect. Atur elemen OutputTokenFormat ke JWT.

Contoh berikut menunjukkan profil teknis untuk JwtIssuer:

<TechnicalProfile Id="JwtIssuer">
  <DisplayName>JWT Issuer</DisplayName>
  <Protocol Name="OpenIdConnect" />
  <OutputTokenFormat>JWT</OutputTokenFormat>
  <Metadata>
    <Item Key="client_id">{service:te}</Item>
    <Item Key="issuer_refresh_token_user_identity_claim_type">objectId</Item>
    <Item Key="SendTokenResponseBodyWithJsonNumbers">true</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
    <Key Id="issuer_refresh_token_key" StorageReferenceId="B2C_1A_TokenEncryptionKeyContainer" />
  </CryptographicKeys>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>

Klaim masukan, keluaran, dan pertahankan

Elemen InputClaims, OutputClaims, dan PersistClaims kosong atau tidak ada. Elemen InutputClaimsTransformations dan OutputClaimsTransformations juga tidak ada.

Metadata

Atribut Wajib Deskripsi
issuer_refresh_token_user_identity_claim_type Ya Klaim yang harus digunakan sebagai klaim identitas pengguna di dalam kode otorisasi OAuth2 dan token refresh. Secara default, Anda harus mengaturnya ke objectId, kecuali jika Anda menentukan jenis klaim SubjectNamingInfo yang berbeda.
SendTokenResponseBodyWithJsonNumbers Tidak Selalu atur ke true. Untuk format warisan di mana nilai numerik diberikan sebagai untai (karakter) alih-alih jumlah JSON, atur ke false. Atribut ini diperlukan untuk klien yang telah mengambil dependensi pada implementasi sebelumnya yang mengembalikan properti tersebut sebagai untai (karakter).
token_lifetime_secs Tidak Masa pakai token akses. Masa pakai token pembawa OAuth 2.0 yang digunakan untuk mendapatkan akses ke sumber daya yang dilindungi. Defaultnya adalah 3.600 detik (1 jam). Minimumnya (inklusif) adalah 300 detik (5 menit). Maksimumnya (inklusif) adalah 86.400 detik (24 jam).
id_token_lifetime_secs Tidak Masa pakai token ID. Defaultnya adalah 3.600 detik (1 jam). Minimumnya (inklusif) adalah 300 detik (5 menit). Maksimumnya (inklusif) adalah 86.400 detik (24 jam).
refresh_token_lifetime_secs Tidak Masa pakai token refresh. Periode waktu maksimum sebelum token refresh dapat digunakan untuk memperoleh token akses baru, jika aplikasi Anda telah diberi cakupan offline_access. Defaultnya adalah 120.9600 detik (14 hari). Minimumnya (inklusif) adalah 86,400 detik (24 jam). Maksimumnya (inklusif) adalah 7.776.000 detik (90 hari).
rolling_refresh_token_lifetime_secs Tidak Masa pakai jendela geser token refresh. Setelah periode waktu ini berlalu, pengguna dipaksa untuk mengautentikasi ulang, terlepas dari masa berlaku token refresh terbaru yang diperoleh oleh aplikasi. Jika Anda tidak ingin menerapkan masa pakai jendela geser, atur nilai allow_infinite_rolling_refresh_token ke true. Defaultnya adalah 7.776.000 detik (90 hari). Minimumnya (inklusif) adalah 86,400 detik (24 jam). Maksimumnya (inklusif) adalah 31.536.000 detik (365 hari).
allow_infinite_rolling_refresh_token Tidak Jika diatur ke true, masa pakai jendela geser token refresh tidak pernah kedaluwarsa.
IssuanceClaimPattern Tidak Mengontrol klaim Pengeluar Sertifikat (iss). Salah satu dari nilai:
  • AuthorityAndTenantGuid - Klaim iss mencakup nama domain Anda, seperti login.microsoftonline atau tenant-name.b2clogin.com, dan pengidentifikasi penyewa Anda https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0/
  • AuthorityWithTfp - Klaim iss mencakup nama domain Anda, seperti login.microsoftonline atau tenant-name.b2clogin.com, pengidentifikasi penyewa dan nama kebijakan pihak yang mengandalkan. https://login.microsoftonline.com/tfp/00000000-0000-0000-0000-000000000000/b2c_1a_tp_sign-up-or-sign-in/v2.0/
Default value: AuthorityAndTenantGuid
AuthenticationContextReferenceClaimPattern Tidak Mengontrol nilai klaim acr.
  • Tidak ada - Azure AD B2C tidak mengeluarkan klaim acr
  • PolicyId - klaim acr berisi nama kebijakan
Opsi untuk pengaturan nilai ini adalah TFP (kebijakan kerangka kerja kepercayaan) dan ACR (referensi konteks autentikasi). Disarankan untuk mengatur nilai ini ke TFP, untuk mengatur nilai, pastikan <Item> dengan Key="AuthenticationContextReferenceClaimPattern" ada dan nilainya adalah None. Dalam kebijakan pihak yang mengandalkan, tambahkan item <OutputClaims>, tambahkan elemen <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp"/> ini. Pastikan juga kebijakan Anda berisi jenis klaim <ClaimType Id="trustFrameworkPolicy"> <DisplayName>trustFrameworkPolicy</DisplayName> <DataType>string</DataType> </ClaimType>
RefreshTokenUserJourneyId Tidak Pengidentifikasi perjalanan pengguna yang harus dijalankan selama melakukan refresh pada token akses MENGIRIM permintaan ke titik akhir /token.

Kunci kriptografi

Elemen CryptographicKeys berisi atribut berikut:

Atribut Wajib Deskripsi
issuer_secret Ya Sertifikat X509 (rangkaian kunci RSA) untuk digunakan untuk menandatangani token JWT. Ini adalah kunci B2C_1A_TokenSigningKeyContainer yang Anda konfigurasikan di Memulai dengan kebijakan kustom.
issuer_refresh_token_key Ya Sertifikat X509 (rangkaian kunci RSA) untuk digunakan untuk mengenkripsi token refresh. Anda mengonfigurasi kunci B2C_1A_TokenEncryptionKeyContainer di Memulai dengan kebijakan kustom

Manajemen sesi

Untuk mengonfigurasi sesi Azure AD B2C antara Azure AD B2C dan aplikasi pihak yang mengandalkan, di atribut elemen UseTechnicalProfileForSessionManagement, tambahkan referensi ke sesi OAuthSSOSessionProvider SSO.