Udostępnij przez


Przekształcenia oświadczeń daty

Ważne

Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.

Ten artykuł zawiera przykłady użycia przekształceń oświadczeń daty schematu struktury środowiska tożsamości w usłudze Azure Active Directory B2C (Azure AD B2C). Aby uzyskać więcej informacji, zobacz przekształcenia oświadczeń.

AssertDateTimeIsGreaterThan

Potwierdza, że jedna data jest późniejsza niż druga data. Określa, czy wartość rightOperand jest większa niż leftOperand. Jeśli tak, zgłasza wyjątek. Zapoznaj się z pokazem live tej transformacji oświadczeń.

Składnik TransformationClaimType Typ danych Notatki
Oświadczenie wejściowe leftOperand (lewy operand) sznurek Typ pierwszego oświadczenia, który powinien być późniejszy niż drugie oświadczenie.
Oświadczenie wejściowe prawy operand sznurek Typ drugiego oświadczenia, który powinien być wcześniejszy niż pierwsze oświadczenie.
Parametr wejściowy AssertIfEqualTo typ logiczny (boolowski) Określa, czy to potwierdzenie powinno zgłosić błąd, jeśli lewy operand jest równy prawy operand. Możliwe wartości: true (wartość domyślna) lub false.
Parametr wejściowy AssertIfRightOperandIsNotPresent typ logiczny (boolowski) Określa, czy to potwierdzenie powinno zostać przekazane, jeśli brakuje prawego operandu.
Parametr wejściowy TreatAsEqualIfWithinMillseconds int (integer) Określa liczbę milisekund, które mają być dozwolone między dwiema godzinami daty, aby wziąć pod uwagę czas równy (na przykład uwzględnić niesymetryczność zegara).

Przekształcenie oświadczeń AssertDateTimeIsGreaterThan jest zawsze wykonywane z profilu technicznego weryfikacji , który jest wywoływany przez własny profil techniczny. Metadane profilu technicznego typu DateTimeGreaterThan samodzielnie kontrolują komunikat o błędzie wyświetlany użytkownikowi przez profil techniczny. Komunikaty o błędach mogą być zlokalizowane.

Diagramy pokazują, jak używać przekształcenia AssertStringClaimsAreEqual oświadczeń.

Przykład assertDateTimeIsGreaterThan

Poniższy przykład porównuje currentDateTime oświadczenie z oświadczeniem approvedDateTime . Błąd jest zgłaszany, jeśli currentDateTime wartość jest późniejsza niż approvedDateTime. Przekształcenie traktuje wartości jako równe, jeśli znajdują się w ciągu 5 minut (30000 milisekund) różnicy. Nie zgłosi błędu, jeśli wartości są równe, ponieważ AssertIfEqualTo jest ustawiona na falsewartość .

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

Uwaga / Notatka

W powyższym przykładzie, jeśli usuniesz AssertIfEqualTo parametr wejściowy, a currentDateTime parametr jest równyapprovedDateTime, zostanie zgłoszony błąd. Wartość domyślna AssertIfEqualTo to true.

  • Oświadczenia wejściowe:
    • leftOperand: 2022-01-01T15:00:00
    • prawy Operand: 2022-01-22T15:00:00
  • Parametry wejściowe:
    • AssertIfEqualTo: fałsz
    • AssertIfRightOperandIsNotPresent: true
    • TreatAsEqualIfWithinMillseconds: 300000 (30 sekund)
  • Wynik: zgłoszony błąd

Wywoływanie przekształcenia oświadczeń

Poniższy Example-AssertDates profil techniczny weryfikacji wywołuje AssertApprovedDateTimeLaterThanCurrentDateTime przekształcenie oświadczeń.

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

Profil techniczny z samodzielnym potwierdzeniem wywołuje profil techniczny weryfikacji 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

Konwertuje DateTime typ oświadczenia na Date typ oświadczenia. Przekształcenie oświadczeń usuwa format godziny z daty. Zapoznaj się z pokazem live tej transformacji oświadczeń.

Składnik TransformationClaimType Typ danych Notatki
Oświadczenie wejściowe inputClaim (Twierdzenie wejściowe) Data i godzina Typ oświadczenia, który ma zostać przekonwertowany.
OutputClaim (Roszczenie wyjściowe) outputClaim (roszczenie wyjściowe) termin Typ oświadczenia, który jest generowany po wywołaniu tego przekształcenia oświadczeń.

Przykład funkcji ConvertDateTimeToDateClaim

W poniższym przykładzie pokazano konwersję oświadczenia systemDateTime (typ danych dateTime) na inne oświadczenie systemDate (typ danych daty).

<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Oświadczenia wejściowe:
    • inputClaim: 2022-01-03T11:34:22.000000Z
  • Oświadczenia wyjściowe:
    • wyjścieRoszczenie: 2022-01-03

ConvertDateToDateTimeClaim

Konwertuje Date typ oświadczenia na DateTime typ oświadczenia. Przekształcenie oświadczeń konwertuje format czasu i dodaje 12:00:00 do daty. Zapoznaj się z pokazem live tej transformacji oświadczeń.

Składnik TransformationClaimType Typ danych Notatki
Oświadczenie wejściowe inputClaim (Twierdzenie wejściowe) termin Typ oświadczenia, który ma zostać przekonwertowany.
OutputClaim (Roszczenie wyjściowe) outputClaim (roszczenie wyjściowe) Data i godzina Typ oświadczenia, który jest generowany po wywołaniu tego przekształcenia oświadczeń.

Przykład funkcji ConvertDateToDateTimeClaim

W poniższym przykładzie pokazano konwersję oświadczenia dateOfBirth (typu danych daty) na inne oświadczenie dateOfBirthWithTime (typ danych dateTime).

  <ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
    </InputClaims>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  • Oświadczenia wejściowe:
    • inputRoszczenie: 2022-01-03
  • Oświadczenia wyjściowe:
    • outputClaim: 2022-01-03T00:00:00.000000Z

Porównanie daty i godziny

Porównuje dwie daty i określa, czy pierwsza data jest późniejsza, wcześniejsza, czy równa innej. Wynikiem jest nowe oświadczenie logiczne z wartością true lub false. Zapoznaj się z pokazem live tej transformacji oświadczeń.

Składnik TransformationClaimType Typ danych Notatki
Oświadczenie wejściowe firstDateTime (data i godzina) Data i godzina Pierwsza data do porównania, czy jest późniejsza, wcześniej, czy równa drugiej dacie. Wartość null zgłasza wyjątek.
Oświadczenie wejściowe secondDateTime (druga data) Data i godzina Druga data do porównania. Wartość null jest traktowana jako bieżąca data i godzina.
Parametr wejściowy timeSpanInSeconds (Długość czasu) int (integer) Przedział czasu dodawania do pierwszej daty. Możliwe wartości: zakres od ujemnych -2147,483,648 do dodatnich 2,147,483,647.
Parametr wejściowy operator sznurek Jedna z następujących wartości: same, lub later thanearlier than.
OutputClaim (Roszczenie wyjściowe) wynik typ logiczny (boolowski) Oświadczenie, które zostało wygenerowane po wywołaniu tego przekształcenia oświadczeń.

Przykład elementu DateTimeComparison

Użyj tej transformacji oświadczeń, aby określić, czy pierwsza data plus timeSpanInSeconds parametr jest późniejsza, wcześniej lub równa innej. W poniższym przykładzie pokazano, że pierwsza data (2022-01-01T00:00:00) plus 90 dni jest późniejsza niż druga data (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>
  • Oświadczenia wejściowe:
    • firstDateTime: 2022-01-01T00:00:00.100000Z
    • secondDateTime: 2022-03-16T00:00:00.100000Z
  • Parametry wejściowe:
    • operator: później niż
    • timeSpanInSeconds: 7776000 (90 dni)
  • Oświadczenia wyjściowe:
    • wynik: true

Czy wymagane są warunki korzystania z usługi Zgoda

Ustal, czy dateTime typ oświadczenia jest wcześniejszy, czy większy niż określona data. Wynikiem jest nowe oświadczenie logiczne z wartością true lub false. Zapoznaj się z pokazem live tej transformacji oświadczeń.

Przedmiot TransformationClaimType Typ danych Notatki
Oświadczenie wejściowe termsOfUseConsentDateTime Data i godzina Typ dateTime oświadczenia, aby sprawdzić, czy jest on wcześniejszy, czy nowszy niż termsOfUseTextUpdateDateTime parametr wejściowy. Niezdefiniowana wartość zwraca true wynik.
Parametr wejściowy termsOfUseTextUpdateDateTime Data i godzina Typ dateTime oświadczenia, aby sprawdzić, czy jest on wcześniejszy, czy nowszy niż termsOfUseConsentDateTime oświadczenie wejściowe. Część godziny daty jest opcjonalna.
OutputClaim (Roszczenie wyjściowe) wynik typ logiczny (boolowski) Typ oświadczenia, który jest generowany po wywołaniu tego przekształcenia oświadczeń.

Użyj tego przekształcenia oświadczeń, aby określić, czy dateTime typ oświadczenia jest wcześniejszy, czy większy niż określona data. Na przykład sprawdź, czy użytkownik wyraził zgodę na najnowszą wersję warunków użytkowania (TOU) lub warunki użytkowania. Aby sprawdzić czas ostatniego wyrażenia zgody użytkownika, zapisz ostatni raz, gdy użytkownik zaakceptował jednostkę jednostki organizacyjnej w atrybucie rozszerzenia. Gdy słowo TOU zmieni się, zaktualizuj termsOfUseTextUpdateDateTime parametr wejściowy przy użyciu czasu zmiany. Następnie wywołaj to przekształcenie oświadczeń, aby porównać daty. Jeśli przekształcenie oświadczeń zwraca truewartość , termsOfUseConsentDateTime wartość jest wcześniejsza niż termsOfUseTextUpdateDateTime wartość, a użytkownik może poprosić użytkownika o zaakceptowanie zaktualizowanej jednostki 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>

IsTermsOfUseConsentRequired — przykład

  • Oświadczenia wejściowe:
    • warunki użytkowaniaZgodaDataData: 2020-03-09T09:15:00
  • Parametry wejściowe:
    • warunki użytkowaniaTextUpdateDataData: 2021-11-15
  • Oświadczenia wyjściowe:
    • wynik: true

PobierzAktualnąDatęCzas

Pobierz bieżącą datę i godzinę UTC i dodaj wartość do typu oświadczenia. Zapoznaj się z pokazem live tej transformacji oświadczeń.

Składnik TransformationClaimType Typ danych Notatki
OutputClaim (Roszczenie wyjściowe) currentDateTime (bieżąca data/godzina) Data i godzina Typ oświadczenia, który jest generowany po wywołaniu tego przekształcenia oświadczeń.

Przykład polecenia GetCurrentDateTime

W poniższym przykładzie pokazano, jak pobrać bieżące dane i czas:

<ClaimsTransformation Id="GetSystemDateTime" TransformationMethod="GetCurrentDateTime">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="currentDateTime" />
  </OutputClaims>
</ClaimsTransformation>
  • Oświadczenia wyjściowe:
    • currentDateTime: 2022-01-14T11:40:35.000000Z

Dalsze kroki

  • Znajdź więcej przykładów przekształcania oświadczeń w repozytorium GitHub społeczności usługi Azure AD B2C