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 の要素は空であるか、存在しません。
InputClaimsTransformations および OutputClaimsTransformations 要素も存在しません。
属性 |
必須 |
説明 |
issuer_refresh_token_user_identity_claim_type |
はい |
OAuth2 認証コードと更新トークン内で、ユーザー ID の要求として使用されることになる要求。 既定では、別の SubjectNamingInfo 要求タイプを指定しない限り、objectId に設定するようにしてください。 |
SendTokenResponseBodyWithJsonNumbers (英語) |
いいえ |
常に true に設定します。 数値が JSON 番号の代わりに文字列として指定されているレガシー形式の場合は、false に設定します。 この属性は、文字列などのプロパティを返す以前の実装に依存しているクライアントに必要です。 |
token_lifetime_secs |
いいえ |
アクセス トークンの有効期間。 保護されているリソースへのアクセスを取得するために使用される OAuth 2.0 ベアラー トークンの有効期間です。 既定は 3,600 秒 (1 時間) です。 最短 (包括) は 300 秒 (5 分) です。 最長 (包括) は 86,400 秒 (24 時間) です。 |
id_token_lifetime_secs |
いいえ |
ID トークンの有効期間。 既定は 3,600 秒 (1 時間) です。 最短 (包括) は 300 秒 (5 分) です。 最長 (包括) は 86,400 秒 (24 時間) です。 |
refresh_token_lifetime_secs |
いいえ |
更新トークンの有効期間。 アプリケーションが offline_access スコープを許可されていた場合に、新しいアクセス トークンを取得するために更新トークンを使用できる最長期間です。 既定は 120,9600 秒 (14 日) です。 最短 (包括) は 86,400 秒 (24 時間) です。 最長 (包括) は 7,776,000 秒 (90 日) です。 |
rolling_refresh_token_lifetime_secs |
いいえ |
更新トークンのスライディング ウィンドウの有効期間。 この期間が経過すると、アプリケーションによって取得された最新の更新トークンの有効期間にかかわらず、ユーザーは強制的に再認証されます。 スライディング ウィンドウの有効期間を強制しないようにする場合は、allow_infinite_rolling_refresh_token の値を true に設定してください。 既定は 7,776,000 秒 (90 日) です。 最短 (包括) は 86,400 秒 (24 時間) です。 最長 (包括) は 31,536,000 秒 (365 日) です。 |
allow_infinite_rolling_refresh_token |
いいえ |
true に設定される場合、更新トークンのスライディング ウィンドウの有効期間はありません。 |
発行請求パターン |
いいえ |
発行者 (iss) 要求を制御します。 次のいずれかの値です。- AuthorityAndTenantGuid - iss 要求には、
login.microsoftonline や tenant-name.b2clogin.com のようなドメイン名、テナント識別子 https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/ などがあります。 - AuthorityWithTfp - iss 要求には、
login.microsoftonline や tenant-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 |
いいえ |
acr の要求値 を制御します。- None - Azure AD B2C は acr 要求を発行しない
- PolicyId -
acr 要求にポリシー名を含める この値を設定する場合のオプションは、TFP (trust framework policy) および ACR (authentication context reference) です。 この値を 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> が存在することも確認してください。 |
リフレッシュトークンユーザージャーニーID |
いいえ |
エンドポイントに対する/token の POST 要求時に実行される必要がある、ユーザー体験の識別子。 |
暗号化キー
CryptographicKeys 要素には次の属性が存在します。
属性 |
必須 |
説明 |
issuer_secret |
はい |
JWT の署名に使用する X509 証明書 (RSA キー セット)。 これは、「B2C_1A_TokenSigningKeyContainer 」で構成した キーです。 |
issuer_refresh_token_key |
はい |
更新トークンを暗号化するために使用する X509 証明書 (RSA キー セット)。 「B2C_1A_TokenEncryptionKeyContainer 」で キーを構成しました。 |
セッションの管理
Azure AD B2C と証明書利用者アプリケーションの間の Azure AD B2C セッションを構成するには、UseTechnicalProfileForSessionManagement
要素の属性で、OAuthSSOSessionProvider SSO セッションへの参照を追加します。