Transformace deklarací identity kalendářních dat

Důležité

Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.

Tento článek obsahuje příklady použití transformací deklarací dat schématu Identity Experience Framework v Azure Active Directory B2C (Azure AD B2C). Další informace najdete v tématu Transformace deklarací identity.

AssertDateTimeIsGreaterThan

Tvrdí, že jedno datum je pozdější než druhé datum. Určuje, zda je větší rightOperand než leftOperand. Pokud ano, vyvolá výjimku. Podívejte se na živou ukázku této transformace deklarací identity.

prvek TransformaceClaimType Datový typ Poznámky
Vstupní deklarace leftOperand řetězec Typ první deklarace identity, který by měl být pozdější než druhá deklarace identity.
Vstupní deklarace rightOperand řetězec Typ druhé deklarace identity, který by měl být dřívější než první deklarace identity.
VstupníParametr AssertIfEqualTo Boolean Určuje, zda má tento kontrolní výraz vyvolat chybu, pokud je levý operand roven pravému operandu. Možné hodnoty: true (výchozí) nebo false.
VstupníParametr AssertIfRightOperandIsNotPresent Boolean Určuje, zda má být tento kontrolní výraz zadán, pokud chybí správný operand.
VstupníParametr Považovat za rovné, pokud vMill sekund int (integer) Určuje počet milisekund, které mají být mezi dvěma časy kalendářních dat povoleny, aby bylo možné zvážit stejné časy (například pro účet nerovnoměrné distribuce hodin).

Transformace deklarací identity AssertDateTimeIsGreaterThan se vždy provádí z technického profilu ověření , který je volán vlastním technickým profilem. Metadata technického profilu DateTimeGreaterThan řídí chybovou zprávu, že technický profil prezentuje uživateli. Chybové zprávy lze lokalizovat.

Diagramy znázorňují, jak použít AssertStringClaimsAreEqual deklarace identity transformace.

Příklad AssertDateTimeIsGreaterThan

Následující příklad porovnává currentDateTime deklaraci identity s deklarací approvedDateTime identity. Chyba je vyvolán, pokud currentDateTime je pozdější než approvedDateTime. Transformace považuje hodnoty za stejné, pokud jsou v rozmezí 5 minut (30000 milisekund). Pokud jsou hodnoty stejné, protože AssertIfEqualTo jsou nastaveny na falsehodnotu , nezobrazí se chyba.

<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>

Poznámka:

Pokud v předchozím příkladu odeberete AssertIfEqualTo vstupní parametr a currentDateTime rovnáapprovedDateTime se, vyvolá se chyba. Výchozí AssertIfEqualTo hodnota je true.

  • Vstupní deklarace identity:
    • leftOperand: 2022-01-01T15:00:00
    • rightOperand: 2022-01-22T15:00:00
  • Vstupní parametry:
    • AssertIfEqualTo: false
    • AssertIfRightOperandIsNotPresent: true
    • TreatAsEqualIfWithinMillseconds: 300000 (30 sekund)
  • Výsledek: Došlo k chybě

Volání transformace deklarací identity

Example-AssertDates Následující technický profil ověření volá AssertApprovedDateTimeLaterThanCurrentDateTime transformaci deklarací identity.

<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>

Technický profil s vlastním kontrolním výrazem volá technický profil ověření 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

DateTime Převede typ deklarace identity na Date typ deklarace identity. Transformace deklarací identity odebere z data formát času. Podívejte se na živou ukázku této transformace deklarací identity.

prvek TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu datum a čas Typ deklarace identity, který se má převést.
Výstupní deklarace Deklarace výstupu datum Typ deklarace identity vytvořený po vyvolání této transformace deklarací identity.

Příklad convertDateTimeToDateClaim

Následující příklad ukazuje převod deklarace identity systemDateTime (datového typu dateTime) na jinou deklaraci systemDate identity (datový typ data).

<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Vstupní deklarace identity:
    • inputClaim: 2022-01-03T11:34:22.0000000Z
  • Výstupní deklarace identity:
    • outputClaim: 2022-01-03

ConvertDateToDateTimeClaim

Date Převede typ deklarace identity na DateTime typ deklarace identity. Transformace deklarací identity převede formát času a k datu přidá 12:00:00. Podívejte se na živou ukázku této transformace deklarací identity.

prvek TransformaceClaimType Datový typ Poznámky
Vstupní deklarace Požadavek vstupu datum Typ deklarace identity, který se má převést.
Výstupní deklarace Deklarace výstupu datum a čas Typ deklarace identity vytvořený po vyvolání této transformace deklarací identity.

Příklad ConvertDateToDateTimeClaim

Následující příklad ukazuje převod deklarace identity dateOfBirth (datového typu data) na jinou deklaraci dateOfBirthWithTime identity (datový typ dateTime).

  <ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
    </InputClaims>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  • Vstupní deklarace identity:
    • inputClaim: 2022-01-03
  • Výstupní deklarace identity:
    • outputClaim: 2022-01-03T00:00:00.0000000Z

Porovnání data a času

Porovná dvě data a určí, zda je první datum pozdější, dřívější nebo rovno jinému. Výsledkem je nová logická deklarace identity s hodnotou true nebo false. Podívejte se na živou ukázku této transformace deklarací identity.

prvek TransformaceClaimType Datový typ Poznámky
Vstupní deklarace firstDateTime datum a čas První datum, které porovná, jestli je pozdější, dřívější nebo rovno druhému datu. Hodnota Null vyvolá výjimku.
Vstupní deklarace secondDateTime datum a čas Druhé datum, které se má porovnat. Hodnota Null se považuje za aktuální datum a čas.
VstupníParametr timeSpanInSeconds int (integer) Časový interval pro přidání k prvnímu datu. Možné hodnoty: rozsah od záporných -2 147 483 648 až 2 147 483 647.
VstupníParametr operátor řetězec Jedna z následujících hodnot: same, later thannebo earlier than.
Výstupní deklarace výsledek Boolean Deklarace identity, která se vytvoří po vyvolání této transformace deklarací.

Příklad dateTimeComparison

Tuto transformaci deklarací identity použijte k určení, zda je první datum plus timeSpanInSeconds parametr pozdější, dřívější nebo rovno jiné. Následující příklad ukazuje, že první datum (2022-01-01T00:00:00) plus 90 dní je pozdější než druhé datum (2022-03-16T00: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>
  • Vstupní deklarace identity:
    • firstDateTime: 2022-01-01T00:00:00.100000Z
    • secondDateTime: 2022-03-16T00:00:00.100000Z
  • Vstupní parametry:
    • operátor: pozdější než
    • timeSpanInSeconds: 7776000 (90 dní)
  • Výstupní deklarace identity:
    • výsledek: true

IsTermsOfUseConsentRequired

Určete, jestli dateTime je typ deklarace identity starší nebo větší než konkrétní datum. Výsledkem je nová logická deklarace identity s hodnotou true nebo false. Podívejte se na živou ukázku této transformace deklarací identity.

Položka TransformaceClaimType Datový typ Poznámky
Vstupní deklarace termsOfUseConsentDateTime datum a čas Typ dateTime deklarace identity, který zkontroluje, jestli je starší nebo novější než termsOfUseTextUpdateDateTime vstupní parametr. Nedefinovaná hodnota vrátí true výsledek.
VstupníParametr termsOfUseTextUpdateDateTime datum a čas Typ dateTime deklarace identity, který zkontroluje, jestli je starší nebo novější než termsOfUseConsentDateTime vstupní deklarace identity. Časová část data je volitelná.
Výstupní deklarace výsledek Boolean Typ deklarace identity vytvořený po vyvolání této transformace deklarací identity.

Pomocí této transformace deklarací můžete určit, jestli dateTime je typ deklarace identity starší nebo větší než konkrétní datum. Zkontrolujte například, jestli uživatel souhlasil s nejnovější verzí vašich podmínek použití (TOU) nebo s podmínkami služby. Pokud chcete zkontrolovat čas posledního souhlasu uživatele, uložte čas posledního přijetí uživatele v atributu rozšíření. Když se změní formulace tou, aktualizujte termsOfUseTextUpdateDateTime vstupní parametr časem změny. Potom zavolejte tuto transformaci deklarací identity a porovnejte data. Pokud se transformace deklarací identity vrátí true, termsOfUseConsentDateTime hodnota je dřívější než termsOfUseTextUpdateDateTime hodnota, a můžete požádat uživatele, aby přijal aktualizovanou hodnotu 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>

Příklad IsTermsOfUseConsentRequired

  • Vstupní deklarace identity:
    • termsOfUseConsentDateTime: 2020-03-09T09:15:00
  • Vstupní parametry:
    • termsOfUseTextUpdateDateTime: 2021-11-15
  • Výstupní deklarace identity:
    • výsledek: true

Získat aktuální datum a čas

Získejte aktuální datum a čas UTC a přidejte hodnotu do typu deklarace identity. Podívejte se na živou ukázku této transformace deklarací identity.

prvek TransformaceClaimType Datový typ Poznámky
Výstupní deklarace currentDateTime datum a čas Typ deklarace identity vytvořený po vyvolání této transformace deklarací identity.

Příklad GetCurrentDateTime

Následující příklad ukazuje, jak získat aktuální data a čas:

<ClaimsTransformation Id="GetSystemDateTime" TransformationMethod="GetCurrentDateTime">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="currentDateTime" />
  </OutputClaims>
</ClaimsTransformation>
  • Výstupní deklarace identity:
    • currentDateTime: 2022-01-14T11:40:35.0000000Z

Další kroky

  • Další ukázky transformace deklarací identity najdete v úložišti GitHub komunity Azure AD B2C.