ClaimsTransformations

Nota

No Azure Active Directory B2C, as políticas personalizadas são concebidas principalmente para abordar cenários complexos. Para a maioria dos cenários, recomendamos que utilize fluxos de utilizador incorporados. Se ainda não o fez, saiba mais sobre o pacote de introdução de políticas personalizadas em Introdução às políticas personalizadas no Active Directory B2C.

O elemento ClaimsTransformations contém uma lista de funções de transformação de afirmações que podem ser utilizadas em percursos de utilizador como parte de uma política personalizada. Uma transformação de afirmações converte uma determinada afirmação noutra. Na transformação de afirmações, especifique o método de transformação, por exemplo, adicionar um item a uma coleção de cadeias ou alterar as maiúsculas/minúsculas de uma cadeia.

Para incluir a lista de funções de transformação de afirmações que podem ser utilizadas nos percursos do utilizador, um elemento XML ClaimsTransformations tem de ser declarado na secção BuildingBlocks da política.

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

O elemento ClaimsTransformation contém os seguintes atributos:

Atributo Necessário Descrição
Id Yes Um identificador que é utilizado para identificar exclusivamente a transformação de afirmações. O identificador é referenciado a partir de outros elementos XML na política.
TransformationMethod Yes O método de transformação a utilizar na transformação de afirmações. Cada transformação de afirmação tem os seus próprios valores. Veja a referência de transformação de afirmações para obter uma lista completa dos valores disponíveis.

ClaimsTransformation

O elemento ClaimsTransformation contém os seguintes elementos:

<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
  <InputClaims>
    ...
  </InputClaims>
  <InputParameters>
    ...
  </InputParameters>
  <OutputClaims>
    ...
  </OutputClaims>
</ClaimsTransformation>
Elemento Ocorrências Descrição
InputClaims 0:1 Uma lista de elementos InputClaim que especificam tipos de afirmação que são tomados como entrada para a transformação de afirmações. Cada um destes elementos contém uma referência a um ClaimType já definido na secção ClaimsSchema da política.
InputParameters 0:1 Uma lista de elementos InputParameter que são fornecidos como entrada para a transformação de afirmações.
OutputClaims 0:1 Uma lista de elementos OutputClaim que especificam tipos de afirmação que são produzidos após a invocação de ClaimsTransformation. Cada um destes elementos contém referência a um ClaimType já definido na secção ClaimsSchema.

InputClaims

O elemento InputClaims contém o seguinte elemento:

Elemento Ocorrências Descrição
InputClaim 1:n Um tipo de afirmação de entrada esperado.

InputClaim

O elemento InputClaim contém os seguintes atributos:

Atributo Necessário Descrição
ClaimTypeReferenceId Yes Uma referência a um ClaimType já definido na secção ClaimsSchema na política.
TransformationClaimType Yes Um identificador para referenciar um tipo de afirmação de transformação. Cada transformação de afirmação tem os seus próprios valores. Veja a referência de transformação de afirmações para obter uma lista completa dos valores disponíveis.

InputParameters

O elemento InputParameters contém o seguinte elemento:

Elemento Ocorrências Descrição
InputParameter 1:n Um parâmetro de entrada esperado.

InputParameter

Atributo Necessário Descrição
Id Yes Um identificador que é uma referência a um parâmetro do método de transformação de afirmações. Cada método de transformação de afirmações tem os seus próprios valores. Veja a tabela de transformação de afirmações para obter uma lista completa dos valores disponíveis.
DataType Yes O tipo de dados do parâmetro, como String, Boolean, Int ou DateTime de acordo com a enumeração DataType no esquema XML da política personalizada. Este tipo é utilizado para executar operações aritméticas corretamente. Cada transformação de afirmação tem os seus próprios valores. Veja a referência de transformação de afirmações para obter uma lista completa dos valores disponíveis.
Valor Yes Um valor que é transmitido literalmente à transformação. Alguns dos valores são arbitrários, alguns deles selecionados a partir do método de transformação de afirmações.

OutputClaims

O elemento OutputClaims contém o seguinte elemento:

Elemento Ocorrências Descrição
OutputClaim 0:n Um tipo de afirmação de saída esperado.

OutputClaim

O elemento OutputClaim contém os seguintes atributos:

Atributo Necessário Descrição
ClaimTypeReferenceId Yes Uma referência a um ClaimType já definido na secção ClaimsSchema na política.
TransformationClaimType Yes Um identificador para referenciar um tipo de afirmação de transformação. Cada transformação de afirmação tem os seus próprios valores. Veja a referência de transformação de afirmações para obter uma lista completa dos valores disponíveis.

As afirmações de entrada e saída utilizadas na transformação de afirmações têm de ser distintas. Não é possível utilizar a mesma afirmação de entrada que a afirmação de saída.

Exemplo

Por exemplo, pode armazenar a última versão dos seus termos de serviços que o utilizador aceitou. Quando atualiza os termos dos serviços, pode pedir ao utilizador para aceitar a nova versão. No exemplo seguinte, a transformação de afirmações HasTOSVersionChanged compara o valor da afirmação TOSVersion com o valor da afirmação LastTOSAcceptedVersion e, em seguida, devolve a afirmação booleana 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>

Referência de transformações de afirmações

Para obter exemplos de transformações de afirmações, veja as seguintes páginas de referência: