Partage via


Définir un profil technique pour un émetteur de jeton JSON Web Token dans une stratégie personnalisée Azure Active Directory B2C

Notes

Dans Active Directory B2C, les stratégies personnalisées sont principalement conçues pour gérer des scénarios complexes. Pour la plupart des scénarios, nous vous recommandons de recourir à des flux d’utilisateurs intégrés. Si vous ne l’avez pas fait, découvrez le Pack de démarrage de stratégie personnalisée dans Prise en main des stratégies personnalisées dans Active Directory B2C.

Azure Active Directory B2C (Azure AD B2C) émet plusieurs types de jetons de sécurité lors du traitement de chaque flux d’authentification. Un profil technique pour un émetteur de jeton JSON Web Token émet un jeton JSON Web Token qui est retourné à l’application par partie de confiance. Ce profil technique est généralement la dernière étape d’orchestration dans le parcours utilisateur.

Protocol

L’attribut Name de l’élément Protocol doit être défini sur OpenIdConnect. Définissez l’élément OutputTokenFormat sur JWT.

L’exemple suivant montre un profil technique pour 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>

Revendications d’entrée, de sortie et de conservation

Les éléments InputClaims, OutputClaims et PersistClaims sont vides ou absents. Les éléments InutputClaimsTransformations et OutputClaimsTransformations sont également absents.

Métadonnées

Attribut Obligatoire Description
issuer_refresh_token_user_identity_claim_type Oui Revendication à utiliser comme revendication d’identité d’utilisateur dans les codes d’autorisation OAuth2 et jetons d’actualisation. Par défaut, vous devriez la définir sur objectId, sauf si vous spécifiez un autre type de revendication SubjectNamingInfo.
SendTokenResponseBodyWithJsonNumbers Non Toujours défini sur true. Pour un format hérité où des valeurs numériques sont fournies sous forme de chaînes au lieu de nombres JSON, défini sur false. Cet attribut est nécessaire pour les clients qui ont pris une dépendance sur une implémentation antérieure qui a retourné des propriétés telles que des chaînes.
token_lifetime_secs Non Durées de vie des jetons d’accès. Durée de vie du jeton du porteur OAuth 2.0 utilisé pour accéder à une ressource protégée. La valeur par défaut est 3 600 secondes (1 heure). La valeur minimale (inclusive) est 300 secondes (5 minutes). La valeur maximale (inclusive) est 86 400 secondes (24 heures).
id_token_lifetime_secs Non Durées de vie des jetons d’ID. La valeur par défaut est 3 600 secondes (1 heure). La valeur minimale (inclusive) est 300 secondes (5 minutes). La valeur maximale (inclusive) est 86 400 secondes (24 heures).
refresh_token_lifetime_secs Non Durées de vie des jetons d’actualisation. Période maximale avant laquelle un jeton d’actualisation peut être utilisé pour acquérir un nouveau jeton d’accès si l’étendue offline_access a été accordée à votre application. La valeur par défaut est 1 209 600 secondes (14 jours). La valeur minimale (inclusive) est 86 400 secondes (24 heures). La valeur maximale (inclusive) est 7 776 000 secondes (90 jours).
rolling_refresh_token_lifetime_secs Non Durée de vie de la fenêtre glissante du jeton d'actualisation. Une fois cette période écoulée, l’utilisateur est obligé de s’authentifier de nouveau, quelle que soit la période de validité du dernier jeton d’actualisation acquis par l’application. Si vous ne souhaitez pas appliquer une durée de vie de fenêtre glissante, définissez la valeur d’allow_infinite_rolling_refresh_token sur true. La valeur par défaut est 7 776 000 secondes (90 jours). La valeur minimale (inclusive) est 86 400 secondes (24 heures). La valeur maximale (inclusive) est 31 536 000 secondes (365 jours).
allow_infinite_rolling_refresh_token Non Si la valeur est true, la durée de vie de la fenêtre glissante jeton d’actualisation n’expire jamais.
IssuanceClaimPattern Non Contrôle la revendication d’émetteur (iss). Une des valeurs suivantes :
  • AuthorityAndTenantGuid : la revendication iss inclut votre nom de domaine, tel que login.microsoftonline ou tenant-name.b2clogin.com, et votre identificateur de locatairehttps://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/.
  • AuthorityWithTfp : la revendication iss inclut votre nom de domaine, tel que login.microsoftonline ou tenant-name.b2clogin.com, votre identificateur de locataire et votre nom de stratégie de partie de confiance. https://login.microsoftonline.com/tfp/aaaabbbb-0000-cccc-1111-dddd2222eeee/b2c_1a_tp_sign-up-or-sign-in/v2.0/
Valeur par défaut : AuthorityAndTenantGuid
AuthenticationContextReferenceClaimPattern Non Contrôle la valeur de revendication acr.
  • None : Azure AD B2C ne génère pas la revendication acr
  • PolicyId : la revendication acr contient le nom de la stratégie
Les options permettant de définir cette valeur sont TFP (Trust Framework Policy) et ACR (Authentication Context Reference). Il est recommandé de définir cette valeur sur TFP. Pour définir la valeur, assurez-vous que <Item> avec Key="AuthenticationContextReferenceClaimPattern" existe et que la valeur est None. Dans votre stratégie de partie de confiance, ajoutez <OutputClaims> item et ajoutez cet élément <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp"/>. Vérifiez également que votre stratégie contient le type de revendication <ClaimType Id="trustFrameworkPolicy"> <DisplayName>trustFrameworkPolicy</DisplayName> <DataType>string</DataType> </ClaimType>
RefreshTokenUserJourneyId Non Identificateur d’un parcours utilisateur qui doit être exécuté pendant la requête POST d’actualisation d’un jeton d’accès sur le point de terminaison /token.

Clés de chiffrement

L’élément CryptographicKeys contient les attributs suivants :

Attribut Obligatoire Description
issuer_secret Oui Certificat X509 (jeu de clés RSA) à utiliser pour signer le jeton JSON Web Token. Il s’agit de la clé B2C_1A_TokenSigningKeyContainer que vous avez configurée à l’étape Bien démarrer avec les stratégies personnalisées.
issuer_refresh_token_key Oui Certificat X509 (jeu de clés RSA) à utiliser pour déchiffrer le jeton d'actualisation. Vous avez configuré la clé B2C_1A_TokenEncryptionKeyContainer à l’étape Bien démarrer avec les stratégies personnalisées

Gestion des sessions

Pour configurer les sessions Azure AD B2C entre Azure AD B2C et une application par partie de confiance, dans l’attribut de l’élément UseTechnicalProfileForSessionManagement, ajoutez une référence à une session SSO OAuthSSOSessionProvider.