在 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) 宣告。 其中一個值:
  • AuthorityAndTenantGuid - iss 宣告包含您的功能變數名稱,例如 login.microsoftonlinetenant-name.b2clogin.com ,以及您的租使用者識別碼 https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0/
  • AuthorityWithTfp - iss 宣告包含您的功能變數名稱,例如 login.microsoftonlinetenant-name.b2clogin.com 、您的租使用者識別碼和信賴憑證者原則名稱。 https://login.microsoftonline.com/tfp/00000000-0000-0000-0000-000000000000/b2c_1a_tp_sign-up-or-sign-in/v2.0/
預設值:AuthorityAndTenantGuid
AuthenticationCoNtextReferenceClaimPattern No acr控制宣告值。
  • 無 - Azure AD B2C 不會發出 acr 宣告
  • PolicyId - acr 宣告包含原則名稱
設定此值的選項為 TFP(信任架構原則)和 ACR(驗證內容參考)。 建議將此值設定為 TFP、設定值、確定 <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 參考