在 Azure Active Directory B2C 自定義原則中定義 JWT 令牌簽發者的技術配置檔
注意
在 Azure Active Directory B2C 中, 自定義原則 的設計主要是為了解決複雜的案例。 在大部分情況下,我們建議您使用內 建的使用者流程。 如果您尚未這麼做,請了解開始使用 Active Directory B2C 中的自定義原則入門套件。
Azure Active Directory B2C (Azure AD B2C) 會在處理每個驗證流程時發出數種類型的安全性令牌。 JWT 令牌簽發者的技術配置檔會發出傳回給信賴憑證者應用程式的 JWT 令牌。 此技術配置檔通常是使用者旅程圖的最後一個協調流程步驟。
通訊協定
Protocol 元素的 Name 屬性必須設定為 OpenIdConnect
。 將 OutputTokenFormat 元素設定為 JWT
。
下列範例顯示 的技術設定檔 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>
輸入、輸出和保存宣告
InputClaims、OutputClaims 和 PersistClaims 元素是空的或不存在的。 InutputClaimsTransformations 和 OutputClaimsTransformations 元素也不存在。
中繼資料
屬性 | 必要 | 描述 |
---|---|---|
issuer_refresh_token_user_identity_claim_type | Yes | 應該在 OAuth2 授權碼和重新整理令牌內作為使用者身分識別宣告的宣告。 根據預設,您應該將它設定為 objectId ,除非您指定不同的 SubjectNamingInfo 宣告類型。 |
SendTokenResponseBodyWithJsonNumbers | No | 一律設定為 true 。 針對將數值指定為字串而非 JSON 數位的舊版格式,請將 設定為 false 。 用戶端需要這個屬性,這些用戶端會相依於先前傳回字串等屬性的實作。 |
token_lifetime_secs | No | 存取令牌存留期。 OAuth 2.0 持有人令牌的存留期,用來取得受保護資源的存取權。 默認值為 3,600 秒(1 小時)。 最低(含)為300秒(5分鐘)。 最大值(含)為86,400秒(24小時)。 |
id_token_lifetime_secs | No | 標識元令牌存留期。 默認值為 3,600 秒(1 小時)。 最低(含)為300秒(5分鐘)。 最大值(含)為秒86,400(24小時)。 |
refresh_token_lifetime_secs | No | 重新整理令牌存留期。 如果您的應用程式已獲授與offline_access範圍,重新整理令牌才能用來取得新的存取令牌的最長時間週期。 默認值為 120,9600 秒(14 天)。 最低(含)為86,400秒(24小時)。 最大值(含)為7,776,000秒(90天)。 |
rolling_refresh_token_lifetime_secs | No | 重新整理令牌滑動視窗存留期。 在這段時間過後,用戶會強制重新驗證,而不論應用程式取得的最新重新整理令牌的有效期間為何。 如果您不想強制執行滑動視窗存留期,請將 allow_infinite_rolling_refresh_token 的值設定為 true 。 默認值為 7,776,000 秒(90 天)。 最低(含)為86,400秒(24小時)。 最大值(含)為31,536,000秒(365天)。 |
allow_infinite_rolling_refresh_token | No | 如果設定為 true ,重新整理令牌滑動視窗存留期永遠不會過期。 |
IssuanceClaimPattern | No | 控制簽發者 (iss) 宣告。 其中一個值:
|
AuthenticationContextReferenceClaimPattern | No | acr 控制宣告值。
<Item> 存在 Key="AuthenticationContextReferenceClaimPattern" 且值為 None 。 在信賴憑證者原則中,新增 <OutputClaims> 專案,新增此元素 <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp"/> 。 也請確定您的原則包含宣告類型 <ClaimType Id="trustFrameworkPolicy"> <DisplayName>trustFrameworkPolicy</DisplayName> <DataType>string</DataType> </ClaimType> |
RefreshTokenUserJourneyId | No | 使用者旅程圖的標識碼,應該在重新整理端點的 存取令牌 POST 要求 /token 期間執行。 |
密碼編譯金鑰
CryptographicKeys 元素包含下列屬性:
屬性 | 必要 | 描述 |
---|---|---|
issuer_secret | Yes | 用來簽署 JWT 令牌的 X509 憑證 (RSA 金鑰集)。 這是B2C_1A_TokenSigningKeyContainer 您在開始使用自訂原則中設定的金鑰。 |
issuer_refresh_token_key | Yes | 用來加密重新整理令牌的 X509 憑證 (RSA 金鑰集)。 您在開始使用自訂原則中設定B2C_1A_TokenEncryptionKeyContainer 金鑰 |
工作階段管理
若要設定 Azure AD B2C 與信賴憑證者應用程式之間的 Azure AD B2C 會話,請在 元素的 屬性中新增 OAuthSSOSessionProvider SSO 會話的UseTechnicalProfileForSessionManagement
參考。