Partager via


Transformations de revendications de date

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.

Les diagrammes montrent comment utiliser la transformation de revendications AssertStringClaimsAreEqual.

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