分享方式:


在 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、OutputClaimsPersistClaims 元素是空的或不存在的。 InutputClaimsTransformationsOutputClaimsTransformations 元素也不存在。

中繼資料

屬性 必要 描述
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/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/
  • AuthorityWithTfp - iss 宣告包含您的功能變數名稱,例如 login.microsoftonlinetenant-name.b2clogin.com、您的租使用者標識碼和信賴憑證者原則名稱。 https://login.microsoftonline.com/tfp/aaaabbbb-0000-cccc-1111-dddd2222eeee/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參考