在 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
參考 。