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.
Cet article fournit des exemples d’utilisation des transformations de revendications de date du schéma Identity Experience Framework dans Azure Active Directory B2C (Azure AD B2C). Pour plus d’informations, consultez Transformations de revendications.
AssertDateTimeIsGreaterThan
Affirme qu’une date est postérieure à une seconde date. Détermine si la valeur rightOperand est supérieure à la leftOperandvaleur . Si c’est le cas, lève une exception. Découvrez la démonstration en direct de cette transformation de revendication.
| Élément | TransformationClaimType | Type de données | Remarques |
|---|---|---|---|
| InputClaim | leftOperand | ficelle | Type de première revendication, qui doit être supérieur à la deuxième revendication. |
| InputClaim | droitOpérande | ficelle | Deuxième type de revendication, qui doit être antérieur à la première revendication. |
| InputParameter | AssertIfEqualTo | booléen | Spécifie si cette assertion doit lever une erreur si l’opérande gauche est égal à l’opérande droit. Valeurs possibles : true (par défaut) ou false. |
| InputParameter | AssertIfRightOperandIsNotPresent | booléen | Spécifie si cette assertion doit passer si l’opérande approprié est manquant. |
| InputParameter | TreatAsEqualIfWithinMillseconds | Int | Spécifie le nombre de millisecondes à autoriser entre les deux heures de date à prendre en compte les heures égales (par exemple, pour tenir compte de l’asymétrie de l’horloge). |
La transformation de revendications AssertDateTimeIsGreaterThan est toujours exécutée à partir d’un profil technique de validation appelé par un profil technique autodéclaré. Les métadonnées de profil technique autodéclarées DateTimeGreaterThan contrôlent le message d’erreur que le profil technique présente à l’utilisateur. Les messages d’erreur peuvent être localisés.
Exemple de AssertDateTimeIsGreaterThan
L’exemple suivant compare la currentDateTime revendication à la approvedDateTime revendication. Une erreur est levée si currentDateTime elle est ultérieure à approvedDateTime. La transformation traite les valeurs comme égales si elles sont comprises dans les 5 minutes (3 0000 millisecondes). Elle ne génère pas d’erreur si les valeurs sont égales, car AssertIfEqualTo elles sont définies falsesur .
<ClaimsTransformation Id="AssertApprovedDateTimeLaterThanCurrentDateTime" TransformationMethod="AssertDateTimeIsGreaterThan">
<InputClaims>
<InputClaim ClaimTypeReferenceId="approvedDateTime" TransformationClaimType="leftOperand" />
<InputClaim ClaimTypeReferenceId="currentDateTime" TransformationClaimType="rightOperand" />
</InputClaims>
<InputParameters>
<InputParameter Id="AssertIfEqualTo" DataType="boolean" Value="false" />
<InputParameter Id="AssertIfRightOperandIsNotPresent" DataType="boolean" Value="true" />
<InputParameter Id="TreatAsEqualIfWithinMillseconds" DataType="int" Value="300000" />
</InputParameters>
</ClaimsTransformation>
Remarque
Dans l’exemple ci-dessus, si vous supprimez le AssertIfEqualTo paramètre d’entrée et que celui-ci currentDateTime est égalapprovedDateTime à, une erreur est levée. La AssertIfEqualTo valeur par défaut est true.
- Revendications d’entrée :
- leftOperand : 2022-01-01T15:00:00
- rightOperand : 2022-01-22T15:00:00
- Paramètres d’entrée :
- AssertIfEqualTo : false
- AssertIfRightOperandIsNotPresent : true
- TreatAsEqualIfWithinMillseconds : 300000 (30 secondes)
- Résultat : Erreur levée
Appeler la transformation des revendications
Le profil technique de validation suivant Example-AssertDates appelle la AssertApprovedDateTimeLaterThanCurrentDateTime transformation des revendications.
<TechnicalProfile Id="Example-AssertDates">
<DisplayName>Unit test</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="ComparisonResult" DefaultValue="false" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertDates" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Le profil technique autodéclaré appelle le profil technique de validation Example-AssertDates .
<TechnicalProfile Id="SelfAsserted-AssertDateTimeIsGreaterThan">
<DisplayName>User ID signup</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
<Item Key="DateTimeGreaterThan">Custom error message if the provided right operand is greater than the right operand.</Item>
</Metadata>
...
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="ClaimsTransformation-AssertDateTimeIsGreaterThan" />
</ValidationTechnicalProfiles>
</TechnicalProfile>
ConvertDateTimeToDateClaim
Convertit un DateTime type de revendication en Date type de revendication. La transformation de revendications supprime le format d’heure de la date. Découvrez la démonstration en direct de cette transformation de revendication.
| Élément | TransformationClaimType | Type de données | Remarques |
|---|---|---|---|
| InputClaim | inputClaim | date et heure | Type de revendication à convertir. |
| OutputClaim | outputClaim | date | Type de revendication généré une fois que cette transformation de revendications a été appelée. |
Exemple de ConvertDateTimeToDateClaim
L’exemple suivant illustre la conversion de la revendication systemDateTime (type de données dateTime) en une autre revendication systemDate (type de données date).
<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Revendications d’entrée :
- inputClaim : 2022-01-03T11:34:22.0000000Z
- Revendications de sortie :
- outputClaim : 2022-01-03
ConvertDateToDateTimeClaim
Convertit un Date type de revendication en DateTime type de revendication. La transformation de revendications convertit le format d’heure et ajoute 12:00:00 à la date. Découvrez la démonstration en direct de cette transformation de revendication.
| Élément | TransformationClaimType | Type de données | Remarques |
|---|---|---|---|
| InputClaim | inputClaim | date | Type de revendication à convertir. |
| OutputClaim | outputClaim | date et heure | Type de revendication généré une fois que cette transformation de revendications a été appelée. |
Exemple de ConvertDateToDateTimeClaim
L’exemple suivant illustre la conversion de la revendication dateOfBirth (type de données date) en une autre revendication dateOfBirthWithTime (type de données dateTime).
<ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Revendications d’entrée :
- inputClaim : 2022-01-03
- Revendications de sortie :
- outputClaim : 2022-01-03T00:00:00.000000Z
DateTimeComparison
Compare deux dates et détermine si la première date est ultérieure, antérieure ou égale à une autre. Le résultat est une nouvelle revendication booléenne avec une valeur de true ou false. Découvrez la démonstration en direct de cette transformation de revendication.
| Élément | TransformationClaimType | Type de données | Remarques |
|---|---|---|---|
| InputClaim | firstDateTime | date et heure | La première date à comparer s’il s’agit d’une date ultérieure, antérieure ou égale à la deuxième date. Une valeur null lève une exception. |
| InputClaim | secondDateTime | date et heure | Deuxième date à comparer. La valeur Null est traitée comme la date et l’heure actuelles. |
| InputParameter | tempsSpanInSeconds | Int | Intervalle de temps à ajouter à la première date. Valeurs possibles : comprise entre -2 147 483 648 et positif 2 147 483 647. |
| InputParameter | opérateur | ficelle | Une des valeurs suivantes : same, later thanou earlier than. |
| OutputClaim | résultat | booléen | Revendication générée une fois que cette transformation de revendications a été appelée. |
Exemple de DateTimeComparison
Utilisez cette transformation de revendications pour déterminer si la première date plus le timeSpanInSeconds paramètre est ultérieure, antérieure ou égale à une autre. L’exemple suivant montre que la première date (2022-01-01T00:00:00) plus de 90 jours est supérieure à la deuxième date (2022-03-16T00:00:00:00).
<ClaimsTransformation Id="CompareLastTOSAcceptedWithCurrentDateTime" TransformationMethod="DateTimeComparison">
<InputClaims>
<InputClaim ClaimTypeReferenceId="extension_LastTOSAccepted" TransformationClaimType="secondDateTime" />
<InputClaim ClaimTypeReferenceId="currentDateTime" TransformationClaimType="firstDateTime" />
</InputClaims>
<InputParameters>
<InputParameter Id="operator" DataType="string" Value="later than" />
<InputParameter Id="timeSpanInSeconds" DataType="int" Value="7776000" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isLastTOSAcceptedGreaterThanNow" TransformationClaimType="result" />
</OutputClaims>
</ClaimsTransformation>
- Revendications d’entrée :
- firstDateTime : 2022-01-01T00:00:00.100000Z
- secondDateTime : 2022-03-16T00:00:00.100000Z
- Paramètres d’entrée :
- opérateur : plus tard que
- timeSpanInSeconds : 7776000 (90 jours)
- Revendications de sortie :
- résultat : true
IsTermsOfUseConsentRequired
Déterminez si un dateTime type de revendication est antérieur ou supérieur à une date spécifique. Le résultat est une nouvelle revendication booléenne avec une valeur de true ou false. Découvrez la démonstration en direct de cette transformation de revendication.
| Élément | TransformationClaimType | Type de données | Remarques |
|---|---|---|---|
| InputClaim | termsOfUseConsentDateTime | date et heure | Type dateTime de revendication pour vérifier s’il est antérieur ou ultérieur au termsOfUseTextUpdateDateTime paramètre d’entrée. La valeur non définie retourne true le résultat. |
| InputParameter | termsOfUseTextUpdateDateTime | date et heure | Type dateTime de revendication pour vérifier s’il est antérieur ou ultérieur à la termsOfUseConsentDateTime revendication d’entrée. La partie d’heure de la date est facultative. |
| OutputClaim | résultat | booléen | Type de revendication généré après l’appel de cette transformation de revendications. |
Utilisez cette transformation de revendications pour déterminer si un dateTime type de revendication est antérieur ou supérieur à une date spécifique. Par exemple, vérifiez si un utilisateur a consenti à la dernière version de vos conditions d’utilisation (TOU) ou aux conditions d’utilisation. Pour vérifier la dernière fois qu’un utilisateur a consenti, stockez la dernière fois que l’utilisateur a accepté les TOU dans un attribut d’extension. Lorsque la formulation de votre toU change, mettez à jour le termsOfUseTextUpdateDateTime paramètre d’entrée avec l’heure de la modification. Ensuite, appelez cette transformation de revendications pour comparer les dates. Si la transformation de revendications retourne true, la termsOfUseConsentDateTime valeur est antérieure à la termsOfUseTextUpdateDateTime valeur et vous pouvez demander à l’utilisateur d’accepter la mise à jour des toU.
<ClaimsTransformation Id="IsTermsOfUseConsentRequired" TransformationMethod="IsTermsOfUseConsentRequired">
<InputClaims>
<InputClaim ClaimTypeReferenceId="extension_termsOfUseConsentDateTime" TransformationClaimType="termsOfUseConsentDateTime" />
</InputClaims>
<InputParameters>
<InputParameter Id="termsOfUseTextUpdateDateTime" DataType="dateTime" Value="2021-11-15T00:00:00" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="result" />
</OutputClaims>
</ClaimsTransformation>
Exemple IsTermsOfUseConsentRequired
- Revendications d’entrée :
- termsOfUseConsentDateTime : 2020-03-09T09:15:00
- Paramètres d’entrée :
- termsOfUseTextUpdateDateTime : 2021-11-15
- Revendications de sortie :
- résultat : true
GetCurrentDateTime
Obtenez la date et l’heure UTC actuelles et ajoutez la valeur à un type de revendication. Découvrez la démonstration en direct de cette transformation de revendication.
| Élément | TransformationClaimType | Type de données | Remarques |
|---|---|---|---|
| OutputClaim | currentDateTime | date et heure | Type de revendication généré une fois que cette transformation de revendications a été appelée. |
Exemple de GetCurrentDateTime
L’exemple suivant montre comment obtenir les données et l’heure actuelles :
<ClaimsTransformation Id="GetSystemDateTime" TransformationMethod="GetCurrentDateTime">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="currentDateTime" />
</OutputClaims>
</ClaimsTransformation>
- Revendications de sortie :
- currentDateTime : 2022-01-14T11:40:35.0000000Z
Étapes suivantes
- Vous trouverez d’autres exemples de transformation de revendications dans le dépôt GitHub de la communauté Azure AD B2C