ClaimsTransformations

Uwaga

W usłudze Azure Active Directory B2C zasady niestandardowe są przeznaczone głównie do rozwiązywania złożonych scenariuszy. W przypadku większości scenariuszy zalecamy użycie wbudowanych przepływów użytkownika. Jeśli to nie zrobiono, zapoznaj się z niestandardowym pakietem startowym zasad w temacie Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.

Element ClaimsTransformations zawiera listę funkcji przekształcania oświadczeń, które mogą być używane w podróżach użytkownika w ramach zasad niestandardowych. Transformacja oświadczeń konwertuje określone oświadczenie na inne. W przekształceniu oświadczeń należy określić metodę przekształcania, na przykład dodanie elementu do kolekcji ciągów lub zmianę wielkości liter ciągu.

Aby uwzględnić listę funkcji przekształcania oświadczeń, które mogą być używane w podróżach użytkownika, element XML ClaimsTransformations musi zostać zadeklarowany w sekcji BuildingBlocks zasad.

<ClaimsTransformations>
  <ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
    ...
  </ClaimsTransformation>
</ClaimsTransformations>

Element ClaimsTransformation zawiera następujące atrybuty:

Atrybut Wymagane Opis
Id Tak Identyfikator używany do unikatowego identyfikowania przekształcenia oświadczenia. Identyfikator jest przywołyny z innych elementów XML w zasadach.
TransformationMethod Tak Metoda przekształcania do użycia w transformacji oświadczeń. Każda transformacja oświadczenia ma własne wartości. Zobacz dokumentację przekształcania oświadczeń , aby uzyskać pełną listę dostępnych wartości.

ClaimsTransformation

Element ClaimsTransformation zawiera następujące elementy:

<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
  <InputClaims>
    ...
  </InputClaims>
  <InputParameters>
    ...
  </InputParameters>
  <OutputClaims>
    ...
  </OutputClaims>
</ClaimsTransformation>
Element Wystąpień Opis
InputClaims 0:1 Lista elementów InputClaim określających typy oświadczeń, które są traktowane jako dane wejściowe przekształcenia oświadczeń. Każdy z tych elementów zawiera odwołanie do obiektu ClaimType już zdefiniowanego w sekcji ClaimsSchema w zasadach.
Inputparameters 0:1 Lista elementów InputParameter dostarczanych jako dane wejściowe do przekształcenia oświadczeń.
OutputClaims 0:1 Lista elementów OutputClaim określających typy oświadczeń, które są generowane po wywołaniu metody ClaimsTransformation. Każdy z tych elementów zawiera odwołanie do obiektu ClaimType zdefiniowanego już w sekcji ClaimsSchema.

InputClaims

Element InputClaims zawiera następujący element:

Element Wystąpień Opis
InputClaim 1:n Oczekiwany typ oświadczenia wejściowego.

InputClaim

Element InputClaim zawiera następujące atrybuty:

Atrybut Wymagane Opis
ClaimTypeReferenceId Tak Odwołanie do elementu ClaimType zdefiniowanego już w sekcji ClaimsSchema w zasadach.
TransformationClaimType Tak Identyfikator, który odwołuje się do typu oświadczenia przekształcenia. Każda transformacja oświadczenia ma własne wartości. Zobacz dokumentację przekształcania oświadczeń , aby uzyskać pełną listę dostępnych wartości.

Inputparameters

Element InputParameters zawiera następujący element:

Element Wystąpień Opis
Inputparameter 1:n Oczekiwany parametr wejściowy.

Inputparameter

Atrybut Wymagane Opis
Id Tak Identyfikator, który jest odwołaniem do parametru metody przekształcania oświadczeń. Każda metoda przekształcania oświadczeń ma własne wartości. Aby uzyskać pełną listę dostępnych wartości, zobacz tabelę przekształcania oświadczeń.
typ_danych Tak Typ danych parametru, takich jak String, Boolean, Int lub DateTime zgodnie z wyliczenia DataType w schemacie XML zasad niestandardowych. Ten typ służy do prawidłowego wykonywania operacji arytmetycznych. Każda transformacja oświadczenia ma własne wartości. Zobacz dokumentację przekształcania oświadczeń , aby uzyskać pełną listę dostępnych wartości.
Wartość Tak Wartość przekazana dosłownie do przekształcenia. Niektóre z wartości są dowolne, niektóre z nich wybierane z metody przekształcania oświadczeń.

OutputClaims

Element OutputClaims zawiera następujący element:

Element Wystąpień Opis
OutputClaim 0:n Oczekiwany typ oświadczenia wyjściowego.

OutputClaim

Element OutputClaim zawiera następujące atrybuty:

Atrybut Wymagane Opis
ClaimTypeReferenceId Tak Odwołanie do elementu ClaimType zdefiniowanego już w sekcji ClaimsSchema w zasadach.
TransformationClaimType Tak Identyfikator, który odwołuje się do typu oświadczenia przekształcenia. Każda transformacja oświadczenia ma własne wartości. Zobacz dokumentację przekształcania oświadczeń , aby uzyskać pełną listę dostępnych wartości.

Oświadczenia wejściowe i wyjściowe używane w transformacji oświadczeń muszą być odrębne. Tego samego oświadczenia wejściowego nie można użyć jako oświadczenia wyjściowego.

Przykład

Na przykład możesz przechowywać ostatnią wersję warunków użytkowania usług zaakceptowanych przez użytkownika. Po zaktualizowaniu warunków usług możesz poprosić użytkownika o zaakceptowanie nowej wersji. W poniższym przykładzie przekształcenie HasTOSVersionChanged porównuje wartość oświadczenia TOSVersion z wartością oświadczenia LastTOSAcceptedVersion , a następnie zwraca oświadczenie logiczne TOSVersionChanged .

<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="TOSVersionChanged">
      <DisplayName>Indicates if the TOS version accepted by the end user is equal to the current version</DisplayName>
      <DataType>boolean</DataType>
    </ClaimType>
    <ClaimType Id="TOSVersion">
      <DisplayName>TOS version</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    <ClaimType Id="LastTOSAcceptedVersion">
      <DisplayName>TOS version accepted by the end user</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
  </ClaimsSchema>

  <ClaimsTransformations>
    <ClaimsTransformation Id="HasTOSVersionChanged" TransformationMethod="CompareClaims">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="TOSVersion" TransformationClaimType="inputClaim1" />
        <InputClaim ClaimTypeReferenceId="LastTOSAcceptedVersion" TransformationClaimType="inputClaim2" />
      </InputClaims>
      <InputParameters>
        <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
      </InputParameters>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="TOSVersionChanged" TransformationClaimType="outputClaim" />
      </OutputClaims>
    </ClaimsTransformation>
  </ClaimsTransformations>
</BuildingBlocks>

Dokumentacja przekształceń oświadczeń

Przykłady przekształceń oświadczeń można znaleźć na następujących stronach referencyjnych: