Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
À compter du 1er mai 2025, Azure AD B2C ne sera plus disponible pour les nouveaux clients. Pour plus d’informations, consultez notre FAQ.
Remarque
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) prend en charge la gestion des utilisateurs Microsoft Entra. Cet article décrit les spécificités d’un profil technique pour interagir avec un fournisseur de revendications qui prend en charge ce protocole standardisé.
Protocole
L’attribut Name de l’élément Protocol doit être défini sur Proprietary. L’attribut du gestionnaire doit contenir le nom complet de l’assembly Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nulldu gestionnaire de protocole.
Les profils techniques Microsoft Entra pour les stratégies personnalisées suivants incluent le profil technique AAD-Common . Les profils techniques Microsoft Entra ne spécifient pas le protocole, car le protocole est configuré dans le profil technique AAD-Common :
- AAD-UserReadUsingAlternativeSecurityId et AAD-UserReadUsingAlternativeSecurityId-NoError - Recherchez un compte social dans l’annuaire.
- AAD-UserWriteUsingAlternativeSecurityId : créez un compte social.
- AAD-UserReadUsingEmailAddress : recherchez un compte local dans l’annuaire.
- AAD-UserWriteUsingLogonEmail : créez un compte local.
- AAD-UserWritePasswordUsingObjectId : Mettez à jour un mot de passe d’un compte local.
- AAD-UserWriteProfileUsingObjectId : mettez à jour un profil utilisateur d’un compte local ou social.
- AAD-UserReadUsingObjectId : lit un profil utilisateur d’un compte local ou social.
- AAD-UserWritePhoneNumberUsingObjectId : écrivez le numéro de téléphone MFA d’un compte local ou social
L’exemple suivant montre le profil technique AAD-Common :
<TechnicalProfile Id="AAD-Common">
<DisplayName>Azure Active Directory</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
</CryptographicKeys>
<!-- We need this here to suppress the SelfAsserted provider from invoking SSO on validation profiles. -->
<IncludeInSso>false</IncludeInSso>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
InputClaims
L’élément InputClaims contient une revendication, utilisée pour rechercher un compte dans le répertoire ou en créer une nouvelle. Il doit y avoir exactement un élément InputClaim dans la collection de revendications d’entrée pour tous les profils techniques Microsoft Entra. Vous devrez peut-être mapper le nom de la revendication définie dans votre stratégie au nom défini dans l’ID Microsoft Entra.
Pour lire, mettre à jour ou supprimer un compte d’utilisateur existant, la revendication d’entrée est une clé qui identifie de manière unique le compte dans le répertoire Microsoft Entra. Par exemple, objectId, userPrincipalName, signInNames.emailAddress, signInNames.userName ou alternativeSecurityId.
Pour créer un compte d’utilisateur, la revendication d’entrée est une clé qui identifie de manière unique un compte local ou fédéré. Par exemple, le compte local : signInNames.emailAddress ou signInNames.userName. Pour un compte fédéré : alternativeSecurityId.
L’élément InputClaimsTransformations peut contenir une collection d’éléments de transformation de revendications d’entrée utilisés pour modifier la revendication d’entrée ou en générer un nouveau.
OutputClaims
L’élément OutputClaims contient une liste de revendications retournées par le profil technique Microsoft Entra. Vous devrez peut-être mapper le nom de la revendication définie dans votre stratégie au nom défini dans l’ID Microsoft Entra. Vous pouvez également inclure des revendications qui ne sont pas retournées par l’ID Microsoft Entra, tant que vous définissez l’attribut DefaultValue .
L’élément OutputClaimsTransformations peut contenir une collection d’éléments OutputClaimsTransformation utilisés pour modifier les revendications de sortie ou en générer de nouvelles.
Par exemple, le profil technique AAD-UserWriteUsingLogonEmail crée un compte local et retourne les revendications suivantes :
- objectId, qui est l’identificateur du nouveau compte
- newUser, qui indique si l’utilisateur est nouveau
-
authenticationSource, qui définit l’authentification sur
localAccountAuthentication - userPrincipalName, qui est le nom d’utilisateur principal du nouveau compte
- signInNames.emailAddress, qui est le nom de connexion du compte, similaire à la revendication d’entrée de messagerie
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
<OutputClaim ClaimTypeReferenceId="userPrincipalName" />
<OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
</OutputClaims>
Revendications persistantes
L’élément PersistedClaims contient toutes les valeurs qui doivent être conservées par l’ID Microsoft Entra avec des informations de mappage possibles entre un type de revendication déjà défini dans la section ClaimsSchema de la stratégie et le nom de l’attribut Microsoft Entra.
Le profil technique AAD-UserWriteUsingLogonEmail , qui crée un compte local, conserve les revendications suivantes :
<PersistedClaims>
<!-- Required claims -->
<PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
<PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
<PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
<PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />
<!-- Optional claims. -->
<PersistedClaim ClaimTypeReferenceId="givenName" />
<PersistedClaim ClaimTypeReferenceId="surname" />
</PersistedClaims>
Le nom de la revendication est le nom de l’attribut Microsoft Entra, sauf si l’attribut PartnerClaimType est spécifié, qui contient le nom de l’attribut Microsoft Entra.
Exigences d’une opération
- Il doit y avoir exactement un élément InputClaim dans le conteneur de revendications pour tous les profils techniques Microsoft Entra.
- L’article attributs de profil utilisateur décrit les attributs de profil utilisateur Azure AD B2C pris en charge que vous pouvez utiliser dans les revendications d’entrée, les revendications de sortie et les revendications persistantes.
- Si l’opération est
WriteouDeleteClaims, elle doit également apparaître dans un élément PersistedClaims . - La valeur de la revendication userPrincipalName doit être au format de
user@tenant.onmicrosoft.com. - La revendication displayName est requise et ne peut pas être une chaîne vide.
Opérations de profil technique Microsoft Entra
Lire
L’opération De lecture lit les données relatives à un seul compte d’utilisateur. Le profil technique suivant lit les données relatives à un compte d’utilisateur à l’aide de l’objectId de l’utilisateur :
<TechnicalProfile Id="AAD-UserReadUsingObjectId">
<Metadata>
<Item Key="Operation">Read</Item>
<Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
</Metadata>
<IncludeInSso>false</IncludeInSso>
<InputClaims>
<InputClaim ClaimTypeReferenceId="objectId" Required="true" />
</InputClaims>
<OutputClaims>
<!-- Required claims -->
<OutputClaim ClaimTypeReferenceId="strongAuthenticationPhoneNumber" />
<!-- Optional claims -->
<OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="otherMails" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
</OutputClaims>
<IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>
Écrire
L’opération d’écriture crée ou met à jour un compte d’utilisateur unique. Le profil technique suivant crée un compte social :
<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
<Metadata>
<Item Key="Operation">Write</Item>
<Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
<Item Key="UserMessageIfClaimsPrincipalAlreadyExists">You are already registered, please press the back button and sign in instead.</Item>
</Metadata>
<IncludeInSso>false</IncludeInSso>
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
</InputClaims>
<PersistedClaims>
<!-- Required claims -->
<PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
<PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
<PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
<PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
<!-- Optional claims -->
<PersistedClaim ClaimTypeReferenceId="otherMails" />
<PersistedClaim ClaimTypeReferenceId="givenName" />
<PersistedClaim ClaimTypeReferenceId="surname" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
<OutputClaim ClaimTypeReferenceId="otherMails" />
</OutputClaims>
<IncludeTechnicalProfile ReferenceId="AAD-Common" />
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>
SupprimerRevendications
L’opération DeleteClaims efface les informations d’une liste fournie de revendications. Le profil technique suivant supprime les revendications :
<TechnicalProfile Id="AAD-DeleteClaimsUsingObjectId">
<Metadata>
<Item Key="Operation">DeleteClaims</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="objectId" Required="true" />
</InputClaims>
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="objectId" />
<PersistedClaim ClaimTypeReferenceId="Verified.strongAuthenticationPhoneNumber" PartnerClaimType="strongAuthenticationPhoneNumber" />
</PersistedClaims>
<OutputClaims />
<IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>
DeleteClaimsPrincipal
L’opération DeleteClaimsPrincipal supprime un compte d’utilisateur unique du répertoire. Le profil technique suivant supprime un compte d’utilisateur du répertoire à l’aide du nom d’utilisateur principal :
<TechnicalProfile Id="AAD-DeleteUserUsingObjectId">
<Metadata>
<Item Key="Operation">DeleteClaimsPrincipal</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="objectId" Required="true" />
</InputClaims>
<OutputClaims/>
<IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>
Le profil technique suivant supprime un compte d’utilisateur social à l’aide d’alternativeSecurityId :
<TechnicalProfile Id="AAD-DeleteUserUsingAlternativeSecurityId">
<Metadata>
<Item Key="Operation">DeleteClaimsPrincipal</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="alternativeSecurityId" Required="true" />
</InputClaims>
<OutputClaims/>
<IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>
Métadonnées
| Caractéristique | Obligatoire | Descriptif |
|---|---|---|
| Opération | Oui | Opération à effectuer. Valeurs possibles : Read, Write, DeleteClaims ou DeleteClaimsPrincipal. |
| RaiseErrorIfClaimsPrincipalDoesNotExist | Non | Déclenchez une erreur si l’objet utilisateur n’existe pas dans le répertoire. Valeurs possibles : true ou false. |
| RaiseErrorIfClaimsPrincipalAlreadyExists | Non | Déclenchez une erreur si l’objet utilisateur existe déjà. Valeurs possibles : true ou false. Ces métadonnées s’appliquent uniquement à l’opération d’écriture. |
| ApplicationObjectId | Non | Identificateur d’objet d’application pour les attributs d’extension. Valeur : ObjectId d’une application. Pour plus d’informations, consultez Utiliser des attributs personnalisés. |
| ClientId | Non | Identificateur du client pour accéder au locataire en tant que tiers. Pour plus d’informations, consultez Utiliser des attributs personnalisés dans une stratégie de modification de profil personnalisé |
| InclureRéclamationRésoudreInClaimsHandling | Non | Pour les revendications d’entrée et de sortie, spécifie si la résolution des revendications est incluse dans le profil technique. Valeurs possibles : true ou false (par défaut). Si vous souhaitez utiliser un programme de résolution de revendications dans le profil technique, définissez-le truesur . |
Éléments d’IU
Les paramètres suivants peuvent être utilisés pour configurer le message d’erreur affiché en cas d’échec. Les métadonnées doivent être configurées dans le profil technique autodéclaré . Les messages d’erreur peuvent être localisés.
| Caractéristique | Obligatoire | Descriptif |
|---|---|---|
| UserMessageIfClaimsPrincipalAlreadyExists | Non | Si une erreur doit être déclenchée (voir la description de l’attribut RaiseErrorIfClaimsPrincipalAlreadyExists), spécifiez le message à afficher à l’utilisateur si l’objet utilisateur existe déjà. |
| UserMessageIfClaimsPrincipalDoesNotExist | Non | Si une erreur doit être générée (voir la description de l’attribut RaiseErrorIfClaimsPrincipalDoesNotExist), spécifiez le message à afficher à l’utilisateur si l’objet utilisateur n’existe pas. |
Étapes suivantes
Consultez l’article suivant, par exemple l’utilisation du profil technique Microsoft Entra :