Partager via


Transformations de revendications de chaînes

Cet article fournit des exemples pour utiliser des transformations de revendications de chaîne du schéma Identity Experience Framework dans Azure Active Directory B2C (Azure AD B2C). Pour plus d’informations, consultez Transformations de revendications.

AssertStringClaimsAreEqual

Compare deux revendications et lève une exception si elles ne sont pas égales en fonction des éléments de comparaison inputClaim1, inputClaim2 et stringComparison spécifiés.

Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim1 string Type de la première revendication qui doit être comparée.
InputClaim inputClaim2 string Type de la deuxième revendication qui doit être comparée.
InputParameter stringComparison string comparaison de chaînes, une des valeurs suivantes : Ordinal, OrdinalIgnoreCase.

La transformation de revendication AssertStringClaimsAreEqual est toujours exécutée à partir d’un profil technique de validation appelé par un profil technique autodéclaré ou un DisplayControl. Les métadonnées UserMessageIfClaimsTransformationStringsAreNotEqual d’un profil technique autodéclaré contrôlent le message d’erreur présenté à l’utilisateur. Les messages d’erreur peuvent être localisés.

Diagramme montrant comment utiliser la transformation de revendications Les revendications de chaîne d’assertions sont égales.

Exemple de AssertStringClaimsAreEqual

Vous pouvez utiliser cette transformation de revendications pour vérifier que deux revendications ont la même valeur. Si ce n’est pas le cas, un message d’erreur est levé. L’exemple suivant vérifie que la revendication strongAuthenticationEmailAddress est égale à la revendication email. Si ce n’est pas le cas, un message d’erreur est levé.

<ClaimsTransformation Id="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
  </InputParameters>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim1 : someone@contoso.com
    • inputClaim2 : someone@outlook.com
  • Paramètres d’entrée :
    • stringComparison : ordinalIgnoreCase
  • Résultat : Erreur levée

Appel de la transformation de revendications AssertStringClaimsAreEqual

Le profil technique de validation login-NonInteractive appelle la transformation de revendication AssertEmailAndStrongAuthenticationEmailAddressAreEqual.

<TechnicalProfile Id="login-NonInteractive">
  ...
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
  </OutputClaimsTransformations>
</TechnicalProfile>

Le profil technique autodéclaré appelle le profil technique de validation login-NonInteractive.

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <Metadata>
    <Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">Custom error message the email addresses you provided are not the same.</Item>
  </Metadata>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

BuildUri

Crée un URI de mot de passe à usage unique et durée définie (TOTP). L’URI est une combinaison de l’identificateur unique de l’utilisateur, par exemple l’adresse e-mail et une clé secrète. L’URI est ensuite convertie en code QR présenté à l’utilisateur. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim path string L’identificateur unique de l’utilisateur, par exemple l’adresse e-mail, le nom d’utilisateur ou le numéro de téléphone.
InputClaim query.secret string La clé secrète TOTP.
InputParameter scheme string Partie de schéma de l’URI. Par exemple : otpauth.
InputParameter host string Partie de schéma de l’URI. Par exemple : totp.
InputParameter query.issuer string Partie de l’émetteur de l’URI. Par exemple : {AuthenticatorIssuer}.
OutputClaim outputClaim string Revendication générée une fois que cette transformation de revendications a été appelée.

Exemple de BuildUri

La transformation de revendications suivante génère un URI TOTP qui sera affiché dans le code QR, ou un lien ciblé.

<ClaimsTransformation Id="CreateUriString" TransformationMethod="BuildUri">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="uriLabel" TransformationClaimType="path" />
    <InputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="query.secret" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="scheme" DataType="string" Value="otpauth" />
    <InputParameter Id="host" DataType="string" Value="totp" />
    <InputParameter Id="query.issuer" DataType="string" Value="{AuthenticatorIssuer}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="qrCodeContent" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • path : emily@fabrikam.com
    • query.secret : fay2lj7ynpntjgqa
  • Paramètres d’entrée :
    • scheme : otpauth
    • host : totp
    • query.issuer : {AuthenticatorIssuer}
  • Revendications de sortie :
    • outputClaim : otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo

ChangeCase

Modifie la casse de la revendication fournie (minuscules ou majuscules) en fonction de l’opérateur. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim1 string Revendication à modifier.
InputParameter toCase string L’une des valeurs suivantes : LOWER ou UPPER.
OutputClaim outputClaim string Revendication générée une fois que cette transformation de revendications a été appelée.

Exemple de ChangeCase

La transformation de revendication suivante met en minuscules la revendication d’adresse de messagerie.

<ClaimsTransformation Id="ChangeToLower" TransformationMethod="ChangeCase">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="toCase" DataType="string" Value="LOWER" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • email : SomeOne@contoso.com
  • Paramètres d’entrée :
    • toCase : LOWER
  • Revendications de sortie :
    • email : someone@contoso.com

CompareClaims

Détermine si une revendication de chaîne est égale à une autre. Le résultat est une nouvelle revendication booléenne avec la valeur true ou false. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim1 string Premier type de revendication à comparer.
InputClaim inputClaim2 string Deuxième type de revendication à comparer.
InputParameter operator string Valeurs possibles : EQUAL ou NOT EQUAL.
InputParameter ignoreCase string Spécifie si cette comparaison doit ignorer la casse des chaînes comparées.
OutputClaim outputClaim boolean Revendication générée une fois que cette transformation de revendications a été appelée.

Exemple de CompareClaims

Utilisez cette transformation de revendication pour vérifier si une revendication est égale à une autre. La transformation de revendications suivante vérifie si la valeur de la revendication email est identique à la revendication Verified.Email.

<ClaimsTransformation Id="CheckEmail" TransformationMethod="CompareClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="Email" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="Verified.Email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="SameEmailAddress" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim1 : someone@contoso.com
    • inputClaim2 : someone@outlook.com
  • Paramètres d’entrée :
    • operator: NOT EQUAL
    • ignoreCase : true
  • Revendications de sortie :
    • outputClaim : true

CompareClaimToValue

Détermine si une valeur de revendication est égale à la valeur du paramètre d’entrée. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim1 string Type de la revendication à comparer.
InputParameter operator string Valeurs possibles : EQUAL ou NOT EQUAL.
InputParameter compareTo string Comparaison de chaînes, l’une des valeurs, c’est-à-dire la chaîne à laquelle les valeurs de revendication d’entrée doivent être comparées à : Ordinal, OrdinalIgnoreCase.
InputParameter ignoreCase string Spécifie si cette comparaison doit ignorer la casse des chaînes comparées.
OutputClaim outputClaim boolean Revendication générée une fois que cette transformation de revendications a été appelée.

Exemple de CompareClaimToValue

Utilisez cette transformation de revendications pour vérifier si une revendication est égale à une valeur que vous spécifiez. Par exemple, la transformation de revendication suivante vérifie si la valeur de la revendication termsOfUseConsentVersion est égale à V2.

<ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="compareTo" DataType="string" Value="V2" />
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim1 : v1
  • Paramètres d’entrée :
    • compareTo : V2
    • operator: NOT EQUAL
    • ignoreCase : true
  • Revendications de sortie :
    • outputClaim : true

CopyClaimIfPredicateMatch

Copie la valeur d’une revendication vers une autre si la valeur de la revendication d’entrée correspond au prédicat de la revendication de sortie. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim string Type de revendication à copier.
OutputClaim outputClaim string Type de revendication généré une fois que cette transformation de revendications a été appelée. La valeur de la revendication d’entrée est vérifiée par rapport à ce prédicat de revendication.

Exemple de CopyClaimIfPredicateMatch

L’exemple suivant tente de copier la valeur de la revendication signInName vers la revendication phoneNumber. Dans cet exemple, la valeur n’est pas copiée. La revendication signInName n’est pas au format attendu de numéro de téléphone. Pour obtenir l’exemple complet, consultez la stratégie de pack de démarrage Connexion par numéro de téléphone ou e-mail.

<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim : bob@contoso.com
  • Revendications de sortie :
    • outputClaim: la revendication de sortie ne sera pas modifiée par rapport à sa valeur d’origine.

Exemple de CopyClaimIfPredicateMatch correspondant au prédicat

Dans cet exemple, la transformation de revendications copie la valeur. La revendication signInName est au format correct de numéro de téléphone.

  • Revendications d’entrée :
    • inputClaim : +11234567890
  • Revendications de sortie :
    • outputClaim : +11234567890

CreateOtpSecret

Crée une revendication de chaîne TOTP. La sortie de cette transformation de revendication est une clé secrète TOTP qui est ensuite stockée dans le compte de l’utilisateur Azure AD B2C et partagée avec l’application Microsoft Authenticator. L’application Authenticator utilise cette clé pour générer des codes TOTP lorsque l’utilisateur doit passer par l’authentification multifacteur. Votre stratégie utilise cette clé pour valider le code TOTP fourni par l’utilisateur.

Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
OutputClaim outputClaim string Revendication générée après l’appel à cette transformation de revendications, avec le code TOTP généré.

Exemple de CreateOtpSecret

La transformation de revendications suivante crée un secret pour l’authentificateur à plusieurs facteurs TOTP.

<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications de sortie :
    • outputClaim : hmlcmd4ph6fph64c

CreateRandomString

Crée une chaîne aléatoire à l’aide du générateur de nombres aléatoires. Si le générateur de nombres aléatoires est de type integer, vous pouvez éventuellement spécifier un paramètre de départ et un nombre maximal. Un paramètre de format de chaîne facultatif permet de mettre en forme la sortie, et un paramètre base64 facultatif spécifie si la sortie est outputClaim (string) randomGeneratorType [guid, entier] encodée en base64.

Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputParameter randomGeneratorType string Spécifie la valeur aléatoire à générer, GUID (ID global unique) ou INTEGER (nombre).
InputParameter stringFormat string [Facultatif] Mettre en forme la valeur aléatoire.
InputParameter base64 boolean [Facultatif] Convertir la valeur aléatoire en base64. Si la mise en forme de la chaîne est appliquée, la valeur après la mise en forme de la chaîne est encodée en base64.
InputParameter maximumNumber int [Facultatif] Pour randomGeneratorType INTEGER uniquement. Spécifiez le nombre maximal.
InputParameter seed int [Facultatif] Pour randomGeneratorType INTEGER uniquement. Spécifiez la valeur de départ pour la valeur aléatoire. Remarque : la même valeur de départ génère la même séquence de nombres aléatoires.
OutputClaim outputClaim string Revendications générées après l’appel à cette transformation de revendications. Valeur aléatoire.

Exemple de CreateRandomString

L’exemple suivant génère un ID unique global. Cette transformation de revendication permet de créer l’UPN (nom d’utilisateur principal) aléatoire.

<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Paramètres d’entrée :
    • randomGeneratorType : GUID
  • Revendications de sortie :
    • outputClaim : bc8bedd2-aaa3-411e-bdee-2f1810b73dfc

Exemple de CreateRandomString pour créer une valeur numérique

L’exemple suivant génère une valeur entière aléatoire comprise entre 0 et 1000. La valeur est mise en forme au format OTP_ {valeur aléatoire}.

<ClaimsTransformation Id="SetRandomNumber" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="INTEGER" />
    <InputParameter Id="maximumNumber" DataType="int" Value="1000" />
    <InputParameter Id="stringFormat" DataType="string" Value="OTP_{0}" />
    <InputParameter Id="base64" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="randomNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Paramètres d’entrée :
    • randomGeneratorType : INTEGER
    • maximumNumber : 1 000
    • stringFormat : OTP_{0}
    • base64 : false
  • Revendications de sortie :
    • outputClaim : OTP_853

CreateStringClaim

Crée une revendication de chaîne à partir du paramètre d’entrée fourni dans la transformation. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputParameter value string Chaîne à définir. Ce paramètre d’entrée prend en charge les expressions de transformation de revendications de chaînes.
OutputClaim createdClaim string La revendication générée après l’appel à cette transformation de revendications, avec la valeur spécifiée dans le paramètre d’entrée.

Exemple de CreateStringClaim

La transformation de revendications suivante crée une valeur de chaîne avec les conditions d’utilisation du service.

<ClaimsTransformation Id="CreateTermsOfService" TransformationMethod="CreateStringClaim">
  <InputParameters>
    <InputParameter Id="value" DataType="string" Value="Contoso terms of service..." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="TOS" TransformationClaimType="createdClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Paramètre d’entrée :
    • value : Contoso terms of service...
  • Revendications de sortie :
    • createdClaim : la revendication TOS contient la valeur « Contoso terms of service... ».

FormatLocalizedString

Met en forme plusieurs revendications en fonction d’une chaîne de format localisée fournie. Cette transformation utilise la méthode C# String.Format. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaims string Collection de revendications d’entrée qui fonctionne comme des paramètres {0}, {1} et {2} au format de chaîne.
InputParameter stringFormatId string StringId d’une chaîne localisée.
OutputClaim outputClaim string Revendication générée une fois que cette transformation de revendications a été appelée.

Notes

Il n'y a pas de limite au nombre de revendications que vous pouvez spécifier, mais la longueur maximale de la chaîne formatée est de 4000.

Pour utiliser la transformation de revendications FormatLocalizedString, procédez comme suit :

  1. Définissez une chaîne de localisation et associez-la à un profil technique autodéclaré.
  2. La valeur ElementType de l’élément LocalizedString doit être définie sur FormatLocalizedStringTransformationClaimType.
  3. StringId est un identificateur unique que vous définissez en vue de l’utiliser plus tard dans votre transformation de revendications stringFormatId.
  4. Dans la transformation de revendications, spécifiez la liste des revendications à définir avec la chaîne localisée. Ensuite, définissez stringFormatId sur la valeur StringId de l’élément de la chaîne localisée.
  5. Dans un profil technique autodéclaré, ou une transformation de revendications d’entrée ou de sortie d’un contrôle d’affichage, faites référence à votre transformation de revendications.

Exemple de FormatLocalizedString

L’exemple suivant génère un message d’erreur lorsqu’un compte se trouve déjà dans le répertoire. Dans l’exemple sont définies des chaînes localisées pour l’anglais (par défaut) et l’espagnol.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
      </LocalizedStrings>
    </LocalizedResources>
  <LocalizedResources Id="api.localaccountsignup.es">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">Este correo electrónico "{0}" ya es una cuenta de esta organización. Haga clic en Siguiente para iniciar sesión con esa cuenta.</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

La transformation de revendications crée un message de réponse basé sur la chaîne localisée. Ce message contient l’adresse e-mail de l’utilisateur intégrée dans la chaîne localisée ResponseMessge_EmailExists.

<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim : sarah@contoso.com
  • Paramètres d’entrée :
    • stringFormat: ResponseMessge_EmailExists
  • Revendications de sortie :
    • outputClaim : L’e-mail « sarah@contoso.com » est déjà un compte dans cette organisation. Sélectionnez Suivant pour vous connecter avec ce compte.

FormatStringClaim

Met en forme une revendication en fonction de la chaîne de format fournie. Cette transformation utilise la méthode C# String.Format. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim string Revendication qui agit en tant que paramètre {0} de format de chaîne.
InputParameter stringFormat string Format de chaîne, paramètre {0} compris. Ce paramètre d’entrée prend en charge les expressions de transformation de revendications de chaînes.
OutputClaim outputClaim string Revendication générée une fois que cette transformation de revendications a été appelée.

Notes

La taille maximale autorisée pour le format de chaîne est de 4 000.

Exemple de FormatStringClaim

Utilisez cette transformation de revendication pour mettre en forme une chaîne avec un paramètre {0}. L’exemple suivant crée un userPrincipalName. Tous les profils techniques de fournisseurs d’identité sociale, tels que Facebook-OAUTH appellent CreateUserPrincipalName pour générer un userPrincipalName.

<ClaimsTransformation Id="CreateUserPrincipalName" TransformationMethod="FormatStringClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="cpim_{0}@{RelyingPartyTenantId}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim : 5164db16-3eee-4629-bfda-dcc3326790e9
  • Paramètres d’entrée :
    • stringFormat: cpim_{0}@{RelyingPartyTenantId}
  • Revendications de sortie :
    • outputClaim : cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com

FormatStringMultipleClaims

Met en forme deux revendications en fonction de la chaîne de format fournie. Cette transformation utilise la méthode C# String.Format. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim1 string Revendication qui agit en tant que paramètre {0} de format de chaîne.
InputClaim inputClaim2 string Revendication qui agit en tant que paramètre {1} de format de chaîne.
InputParameter stringFormat string Format de chaîne, y compris les paramètres {0} et {1}. Ce paramètre d’entrée prend en charge les expressions de transformation de revendications de chaînes.
OutputClaim outputClaim string Revendication générée une fois que cette transformation de revendications a été appelée.

Notes

La taille maximale autorisée pour le format de chaîne est de 4 000.

Exemple de FormatStringMultipleClaims

Utilisez cette transformation de revendication pour mettre en forme une chaîne avec deux paramètres, {0} et {1}. L’exemple suivant crée un displayName au format spécifié :

<ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="surName" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="{0} {1}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim1 : Joe
    • inputClaim2 : Fernando
  • Paramètres d’entrée :
    • stringFormat : {0}{1}
  • Revendications de sortie :
    • outputClaim : Joe Fernando

GetLocalizedStringsTransformation

Copie les chaînes localisées dans des revendications. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
OutputClaim Nom de la chaîne localisée string Liste des types de revendications qui sont générées après l’appel de cette transformation de revendications.

Pour utiliser la transformation de revendications GetLocalizedStringsTransformation :

  1. Définissez une chaîne de localisation pour votre définition de contenu, par exemple api.selfasserted.

  2. La valeur ElementType de l’élément LocalizedString doit être définie sur GetLocalizedStringsTransformationClaimType.

  3. StringId est un identificateur unique que vous définissez en vue de l’utiliser plus tard dans votre transformation de revendications.

  4. Dans la transformation de revendications, spécifiez la liste des revendications à définir avec la chaîne localisée. ClaimTypeReferenceId est une référence à une revendication déjà définie dans la section ClaimsSchema, dans la stratégie. TransformationClaimType est le nom de la chaîne localisée, tel qu’il est défini dans la valeur StringId de l’élément LocalizedString.

  5. Dans une transformation de revendications de profil technique autodéclarée ou de transformation de revendications, faites une référence à votre transformation de revendications.

  6. Associez le profil technique à la définition de contenu, par exemple api.selfasserted. L’exemple suivant montre comment associer un profil technique à la définition de contenu api.selfasserted.

    <Metadata>
      <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    </Metadata>
    

Le diagramme suivant montre comment configurer la transformation de revendications avec les éléments de localisation :

Diagramme montrant comment utiliser la transformation de revendications Obtenir les chaînes localisées.

Exemple de GetLocalizedStringsTransformation

L’exemple suivant recherche l’objet, le corps, le message, le code et la signature de votre e-mail à partir des chaînes localisées. Ces revendications seront ensuite utilisées par un modèle personnalisé de vérification d’e-mail.

Définissez les chaînes localisées pour l’anglais (par défaut) et l’espagnol.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for verifying your account!</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>
     </LocalizedStrings>
   </LocalizedResources>
   <LocalizedResources Id="api.localaccountsignup.es">
     <LocalizedStrings>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Código de verificación del correo electrónico de la cuenta de Contoso</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Gracias por comprobar la cuenta de </LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Su código es</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Atentamente</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

La transformation de revendications définit la valeur du type de revendication subject à la valeur StringId pour email_subject.

<ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
    <OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
    <OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
    <OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
   </OutputClaims>
</ClaimsTransformation>
  • Revendications de sortie :
    • subject : Code de vérification de l’e-mail du compte Contoso
    • message : Merci, votre compte a été vérifié.
    • codeIntro : Votre code est
    • signature : Cordialement,

GetMappedValueFromLocalizedCollection

Mappe un élément de la collection Restriction de la revendication d’entrée. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim mapFromClaim string Revendication qui contient le texte à rechercher dans les revendications restrictionValueClaim avec la collection Restriction.
OutputClaim restrictionValueClaim string Revendication qui contient la collection Restriction. Une fois la transformation de revendications appelée, la valeur de cette revendication contient la valeur de l’élément sélectionné.

Exemple de GetMappedValueFromLocalizedCollection

L’exemple suivant recherche la description de message d’erreur en fonction de la clé de l’erreur. La revendication responseMsg contient une collection de messages d’erreur à présenter à l’utilisateur final ou à envoyer à la partie de confiance.

<ClaimType Id="responseMsg">
  <DisplayName>Error message: </DisplayName>
  <DataType>string</DataType>
  <UserInputType>Paragraph</UserInputType>
  <Restriction>
    <Enumeration Text="B2C_V1_90001" Value="You cannot sign in because you are a minor" />
    <Enumeration Text="B2C_V1_90002" Value="This action can only be performed by gold members" />
    <Enumeration Text="B2C_V1_90003" Value="You have not been enabled for this operation" />
  </Restriction>
</ClaimType>

La transformation de revendication recherche le texte de l’élément et retourne sa valeur. Si la restriction est localisée à l’aide de <LocalizedCollection>, la transformation de revendication retourne la valeur localisée.

<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />        
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • mapFromClaim : B2C_V1_90001
  • Revendications de sortie :
    • restrictionValueClaim : Vous ne pouvez pas vous connecter car vous êtes mineur.

LookupValue

Recherche une valeur de revendication dans une liste de valeurs en fonction de la valeur d’une autre revendication. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputParameterId string Revendication qui contient la valeur de recherche
InputParameter string Collection d’inputParameters.
InputParameter errorOnFailedLookup boolean Contrôle si une erreur est retournée en l’absence de correspondance.
OutputClaim outputClaim string Revendication qui sera générée après l’appel à cette transformation de revendications. Valeur de l’Id correspondant.

Exemple de LookupValue

L’exemple suivant recherche le nom de domaine dans l’une des collections inputParameters. La transformation de revendication recherche le nom de domaine dans l’identificateur et retourne sa valeur (un ID d’application).

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputParameterId : test.com
  • Paramètres d’entrée :
    • contoso.com : 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com : 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com : c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup : false
  • Revendications de sortie :
    • outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9

Exemple de LookupValue avec une erreur

Lorsque le paramètre d’entrée errorOnFailedLookup est défini sur true, la transformation de revendications LookupValue est toujours exécutée à partir d’un profil technique de validation appelé par un profil technique autodéclaré ou un DisplayConrtol. Les métadonnées LookupNotFound d’un profil technique autodéclaré contrôlent le message d’erreur présenté à l’utilisateur.

Diagramme montrant comment utiliser la transformation de revendications LookupValue.

L’exemple suivant recherche le nom de domaine dans l’une des collections inputParameters. La transformation de revendication recherche le nom de domaine dans l’identificateur et retourne sa valeur (un ID d’application) ou génère un message d’erreur.

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputParameterId : live.com
  • Paramètres d’entrée :
    • contoso.com : 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com : 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com : c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup : true
  • Erreur :
    • Aucune correspondance trouvée pour la valeur de revendication d’entrée dans la liste d’ID de paramètre d’entrée et errorOnFailedLookup a la valeur true.

NullClaim

Nettoie la valeur d’une revendication donnée. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
OutputClaim claim_to_null string La valeur de la revendication est définie sur NULL.

Exemple de NullClaim

Utilisez cette transformation de revendication pour supprimer les données inutiles du jeu de propriétés de revendications afin que le cookie de session soit plus petit. L’exemple suivant supprime la valeur du type de revendication TermsOfService.

<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
  <OutputClaims>
  <OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • outputClaim : Welcome to Contoso App. Si vous continuez à parcourir et à utiliser ce site web, vous acceptez de vous conformer aux conditions générales suivantes...
  • Revendications de sortie :
    • outputClaim : NULL

ParseDomain

Obtient la partie domaine d’une adresse e-mail. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim emailAddress string Revendication qui contient l’adresse e-mail.
OutputClaim domaine string Revendication générée après que cette transformation de revendications a été appelée (le domaine).

Exemple de ParseDomain

Utilisez cette transformation de revendication pour analyser le nom de domaine de l’utilisateur après le symbole @. La transformation de revendication suivante montre comment analyser le nom de domaine d’une revendication e-mail.

<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • emailAddress : joe@outlook.com
  • Revendications de sortie :
    • domain : outlook.com

SetClaimIfBooleansMatch

Vérifie qu’une revendication booléenne est true ou false. Si c’est le cas, définit les revendications de sortie sur la valeur présente dans le paramètre d’entrée outputClaimIfMatched. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim claimToMatch string Type de la revendication, qui doit être vérifié. Une valeur null lève une exception.
InputParameter matchTo string Valeur à comparer à la revendication d’entrée claimToMatch. Valeurs possibles : true ou false.
InputParameter outputClaimIfMatched string Valeur à définir si la revendication d’entrée est égale au paramètre d’entrée matchTo.
OutputClaim outputClaim string Si la revendication d’entrée claimToMatch est égale au paramètre d’entrée matchTo, cette revendication de sortie contient la valeur du paramètre d’entrée outputClaimIfMatched.

Exemple de SetClaimIfBooleansMatch

Par exemple, la transformation de revendication suivante vérifie si la valeur de la revendication hasPromotionCode est égale à true. Si c’est le cas, retournez la valeur Promotion code not found.

<ClaimsTransformation Id="GeneratePromotionCodeError" TransformationMethod="SetClaimIfBooleansMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="hasPromotionCode" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="true" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="Promotion code not found." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="promotionCode" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • claimToMatch : true
  • Paramètres d’entrée :
    • matchTo : true
    • outputClaimIfMatched : "Promotion code not found."
  • Revendications de sortie :
    • outputClaim : "Promotion code not found."

SetClaimsIfRegexMatch

Vérifie qu’une revendication de chaîne claimToMatch et un paramètre d’entrée matchTo sont égaux, et définit les revendications de sortie avec la valeur présente dans le paramètre d’entrée outputClaimIfMatched, ainsi que la revendication de sortie de résultat de comparaison, qui est définie sur true ou false en fonction du résultat de la comparaison.

Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
inputClaim claimToMatch string Type de revendication à comparer.
InputParameter matchTo string Expression régulière à mettre en correspondance.
InputParameter outputClaimIfMatched string Valeur à définir si les chaînes sont égales.
InputParameter extractGroups boolean [Facultatif] Spécifie si la correspondance d’expression régulière doit extraire les valeurs des groupes. Valeurs possibles : true ou false (par défaut).
OutputClaim outputClaim string Si l’expression régulière correspond, cette revendication de sortie contient la valeur du paramètre d’entrée outputClaimIfMatched. Si aucune correspondance n’est trouvée, la valeur sera Null.
OutputClaim regexCompareResultClaim boolean Type de revendication de la sortie de résultat de correspondance d’expression régulière, qui doit être défini sur true ou false en fonction du résultat de la correspondance.
OutputClaim Nom de la revendication string Si le paramètre d’entrée extractGroups a la valeur true, liste des types de revendications qui sont générées après l’appel de cette transformation de revendications. Le nom de la revendication doit correspondre au nom du groupe d’expressions régulières.

Exemple de SetClaimsIfRegexMatch

Vérifie si le numéro de téléphone fourni est valide, selon le modèle d’expression régulière de numéro de téléphone.

<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phone" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="^[0-9]{4,16}$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="iPhone" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isPhoneBoolean" TransformationClaimType="regexCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • claimToMatch : "64854114520"
  • Paramètres d’entrée :
    • matchTo : "^[0-9]{4,16}$"
    • outputClaimIfMatched: "Phone"
  • Revendications de sortie :
    • outputClaim: "iPhone"
    • regexCompareResultClaim : true

Exemple de SetClaimsIfRegexMatch avec des groupes d’extraction

Vérifie si l’adresse e-mail fournie est valide, puis retourne l’alias de messagerie. Découvrez la démonstration en direct de cette transformation de revendications avec des groupes d’extraction.

<ClaimsTransformation Id="GetAliasFromEmail" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="(?&lt;mailAlias&gt;.*)@(.*)$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
    <InputParameter Id="extractGroups" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
    <OutputClaim ClaimTypeReferenceId="mailAlias" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • claimToMatch : « emily@contoso.com »
  • Paramètres d’entrée :
    • matchTo : (?&lt;mailAlias&gt;.*)@(.*)$
    • outputClaimIfMatched: "isEmail"
    • extractGroups : true
  • Revendications de sortie :
    • outputClaim : « isEmail »
    • regexCompareResultClaim : true
    • mailAlias : emily

SetClaimsIfStringsAreEqual

Vérifie qu’une revendication de chaîne et un paramètre d’entrée matchTo sont égaux, et définit les revendications de sortie avec la valeur présente dans les paramètres d’entrée stringMatchMsg et stringMatchMsgCode, ainsi que la revendication de sortie de résultat de comparaison, qui est définie sur true ou false en fonction du résultat de la comparaison.

Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim string Type de revendication à comparer.
InputParameter matchTo string Chaîne à comparer à inputClaim.
InputParameter stringComparison string Valeurs possibles : Ordinal ou OrdinalIgnoreCase.
InputParameter stringMatchMsg string Première valeur à définir si les chaînes sont égales.
InputParameter stringMatchMsgCode string Deuxième valeur à définir si les chaînes sont égales.
OutputClaim outputClaim1 string Si les chaînes sont égales, cette revendication de sortie contient la valeur du paramètre d’entrée stringMatchMsg.
OutputClaim outputClaim2 string Si les chaînes sont égales, cette revendication de sortie contient la valeur du paramètre d’entrée stringMatchMsgCode.
OutputClaim stringCompareResultClaim boolean Type de revendication de la sortie de résultat de comparaison, qui doit être défini sur true ou false en fonction du résultat de la comparaison.

Exemple de SetClaimsIfStringsAreEqual

Vous pouvez utiliser cette transformation de revendication pour vérifier si une revendication est égale à la valeur que vous avez spécifiée. Par exemple, la transformation de revendication suivante vérifie si la valeur de la revendication termsOfUseConsentVersion est égale à v1. Si c’est le cas, elle remplace la valeur par v2.

<ClaimsTransformation Id="CheckTheTOS" TransformationMethod="SetClaimsIfStringsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="v1" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="stringMatchMsgCode" DataType="string" Value="B2C_V1_90005" />
    <InputParameter Id="stringMatchMsg" DataType="string" Value="The TOS is upgraded to v2" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="outputClaim1" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeCode" TransformationClaimType="outputClaim2" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeResult" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim : v1
  • Paramètres d’entrée :
    • matchTo : V1
    • stringComparison : ordinalIgnoreCase
    • stringMatchMsgCode : B2C_V1_90005
    • stringMatchMsg : The TOS is upgraded to v2
  • Revendications de sortie :
    • outputClaim1 : B2C_V1_90005
    • outputClaim2 : The TOS is upgraded to v2
    • stringCompareResultClaim : true

SetClaimsIfStringsMatch

Vérifie qu’une revendication de chaîne et le paramètre d’entrée matchTo sont égaux, et définit les revendications de sortie avec la valeur présente dans le paramètre d’entrée outputClaimIfMatched, ainsi que la revendication de sortie de résultat de comparaison, qui est définie sur true ou false en fonction du résultat de la comparaison.

Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim claimToMatch string Type de revendication à comparer.
InputParameter matchTo string Chaîne à comparer à inputClaim.
InputParameter stringComparison string Valeurs possibles : Ordinal ou OrdinalIgnoreCase.
InputParameter outputClaimIfMatched string Valeur à définir si les chaînes sont égales.
OutputClaim outputClaim string Si les chaînes sont égales, cette revendication de sortie contient la valeur du paramètre d’entrée outputClaimIfMatched. Ou null, si les chaînes ne sont pas mises en correspondance.
OutputClaim stringCompareResultClaim boolean Type de revendication de la sortie de résultat de comparaison, qui doit être défini sur true ou false en fonction du résultat de la comparaison.

Exemple de SetClaimsIfStringsMatch

Par exemple, la transformation de revendication suivante vérifie si la valeur de la revendication ageGroup est égale à Minor. Si c’est le cas, elle retourne la valeur B2C_V1_90001.

<ClaimsTransformation Id="SetIsMinor" TransformationMethod="SetClaimsIfStringsMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="ageGroup" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="Minor" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="B2C_V1_90001" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isMinor" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isMinorResponseCode" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • claimToMatch : Secondaire
  • Paramètres d’entrée :
    • matchTo : Secondaire
    • stringComparison : ordinalIgnoreCase
    • outputClaimIfMatched: B2C_V1_90001
  • Revendications de sortie :
    • isMinorResponseCode : true
    • isMinor : B2C_V1_90001

StringContains

Détermine si une sous-chaîne spécifiée apparaît dans la revendication d’entrée. Le résultat est une nouvelle revendication booléenne avec la valeur true ou false. true si le paramètre de valeur se produit dans cette chaîne ; sinon, false.

Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim string Type de revendication dans lequel effectuer la recherche.
InputParameter contains string Valeur à rechercher.
InputParameter ignoreCase string Spécifie si cette comparaison doit ignorer la casse de la chaîne comparée.
OutputClaim outputClaim string Revendication générée une fois que cette transformation de revendications a été appelée. Indicateur booléen si la sous-chaîne apparaît dans la revendication d’entrée.

Exemple de StringContains

Utilisez cette transformation de revendication pour vérifier si un type de revendication de chaîne contient une sous-chaîne. L’exemple suivant vérifie si le type de revendication de chaîne roles contient la valeur admin.

<ClaimsTransformation Id="CheckIsAdmin" TransformationMethod="StringContains">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
  </InputClaims>
  <InputParameters>
    <InputParameter  Id="contains" DataType="string" Value="admin"/>
    <InputParameter  Id="ignoreCase" DataType="string" Value="true"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim : "Admin, Approver, Editor"
  • Paramètres d’entrée :
    • contains : "admin,"
    • ignoreCase : true
  • Revendications de sortie :
    • outputClaim : true

StringSubstring

Extrait des parties d’un type de revendication de chaîne, en commençant au caractère à la position spécifiée et retourne le nombre spécifié de caractères. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim string Type de revendication qui contient la chaîne.
InputParameter index_début int Position du caractère de départ de base zéro d’une sous-chaîne de cette instance.
InputParameter length int Nombre de caractères dans la sous-chaîne.
OutputClaim outputClaim string Chaîne équivalente à la sous-chaîne length qui commence au niveau de startIndex dans cette instance, ou Empty si startIndex est égal à la longueur de cette instance et que la longueur est égale à zéro.

Exemple de StringSubstring

Par exemple, obtenir le préfixe international du numéro de téléphone.

<ClaimsTransformation Id="GetPhonePrefix" TransformationMethod="StringSubstring">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="startIndex" DataType="int" Value="0" />
  <InputParameter Id="length" DataType="int" Value="2" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phonePrefix" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim : "+1644114520"
  • Paramètres d’entrée :
    • startIndex : 0
    • length: 2
  • Revendications de sortie :
    • outputClaim : "+1"

StringReplace

Recherche une valeur spécifiée dans une chaîne de type de revendication et retourne une nouvelle chaîne de type de revendication dans laquelle toutes les occurrences d’une chaîne spécifiée dans la chaîne actuelle sont remplacées par une autre chaîne spécifiée.

Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim string Type de revendication qui contient la chaîne.
InputParameter oldValue string Chaîne dans laquelle effectuer la recherche.
InputParameter newValue string Chaîne permettant de remplacer toutes les occurrences de oldValue.
OutputClaim outputClaim boolean Chaîne équivalente à la chaîne actuelle, sauf que toutes les instances de oldValue sont remplacées par newValue. Si oldValue est introuvable dans l’instance actuelle, la méthode retourne l’instance actuelle sans modification.

Exemple de StringReplace

Par exemple, normalisez un numéro de téléphone en supprimant les caractères -

<ClaimsTransformation Id="NormalizePhoneNumber" TransformationMethod="StringReplace">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="oldValue" DataType="string" Value="-" />
  <InputParameter Id="newValue" DataType="string" Value="" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim : "+164-411-452-054"
  • Paramètres d’entrée :
    • oldValue : "-"
    • newValue: ""
  • Revendications de sortie :
    • outputClaim : "+164411452054"

StringJoin

Concatène les éléments d’un type de revendication de collection de chaînes spécifié, en utilisant le séparateur spécifié entre chaque élément ou membre.

Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim stringCollection Collection qui contient les chaînes à concaténer.
InputParameter delimiter string Chaîne à utiliser comme séparateur, telle que la virgule ,.
OutputClaim outputClaim string Chaîne composée des membres de la collection de chaînes inputClaim, délimitée par le paramètre d’entrée delimiter.

Exemple de StringJoin

L’exemple suivant prend une collection de chaînes de rôles d’utilisateur et la convertit en chaîne délimitée par des virgules. Vous pouvez utiliser cette méthode pour stocker une collection de chaînes dans un compte utilisateur Azure AD B2C. Plus tard, lorsque vous lirez le compte à partir du répertoire, utilisez le paramètre StringSplit pour reconvertir la chaîne délimitée par des virgules en collection de chaînes.

<ClaimsTransformation Id="ConvertRolesStringCollectionToCommaDelimiterString" TransformationMethod="StringJoin">
  <InputClaims>
   <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter DataType="string" Id="delimiter" Value="," />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="rolesCommaDelimiterConverted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim : [ "Admin", "Author", "Reader" ]
  • Paramètres d’entrée :
    • delimiter : ","
  • Revendications de sortie :
    • outputClaim : "Admin,Author,Reader"

StringSplit

Retourne un tableau de chaînes qui contient les sous-chaînes de cette instance, séparées par les éléments d’une chaîne spécifiée. Découvrez la démonstration en direct de cette transformation de revendication.

Élément TransformationClaimType Type de données Notes
InputClaim inputClaim string Type de revendication de chaîne qui contient les sous-chaînes à fractionner.
InputParameter delimiter string Chaîne à utiliser comme séparateur, telle que la virgule ,.
OutputClaim outputClaim stringCollection Collection de chaînes dont les éléments contiennent les sous-chaînes de cette chaîne, qui sont délimitées par le paramètre d’entrée delimiter.

Remarque

Tous les éléments existants dans la stringCollection OutputClaim vont être supprimés.

Exemple de StringSplit

L’exemple suivant prend une chaîne de rôles d’utilisateur délimitée par des virgules et la convertit en collection de chaînes.

<ClaimsTransformation Id="ConvertRolesToStringCollection" TransformationMethod="StringSplit">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="rolesCommaDelimiter" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
  <InputParameter DataType="string" Id="delimiter" Value="," />
    </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="roles" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Revendications d’entrée :
    • inputClaim : Admin,Author,Reader
  • Paramètres d’entrée :
    • delimiter : ","
  • Revendications de sortie :
    • outputClaim : [ "Admin", "Author", "Reader" ]

Expressions de transformations de revendications de chaînes

Les expressions de transformations de revendications dans les stratégies personnalisées Azure AD B2C fournissent des informations contextuelles sur l’ID du locataire et l’ID du profil technique.

Expression Description Exemple
{TechnicalProfileId} Nom de l’ID du profil technique. Facebook-OAUTH
{RelyingPartyTenantId} ID de locataire de la stratégie de partie de confiance. votre-locataire.onmicrosoft.com
{TrustFrameworkTenantId} ID de locataire de l’infrastructure de confiance. votre-locataire.onmicrosoft.com

Étapes suivantes