Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais nas nossas Perguntas Frequentes.
Observação
No Azure Ative Directory B2C, as políticas personalizadas são projetadas principalmente para lidar com cenários complexos. Para a maioria dos cenários, recomendamos a utilização dos fluxos de utilizador incorporados. Se você não tiver feito isso, saiba mais sobre o pacote inicial de políticas personalizadas em Introdução às políticas personalizadas no Ative Directory B2C.
Um perfil técnico de transformação de declarações permite que você chame transformações de declarações de saída para manipular valores de declarações, validar declarações ou definir valores padrão para um conjunto de declarações de saída.
Protocolo
O atributo Name do elemento Protocol precisa ser definido como Proprietary. O atributo handler deve conter o nome totalmente qualificado do assembly do manipulador de protocolo usado pelo Azure AD B2C: Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
O exemplo a seguir mostra um perfil técnico de transformação de declarações:
<TechnicalProfile Id="Facebook-OAUTH-UnLink">
<DisplayName>Unlink Facebook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
Declarações de saída
O elemento OutputClaims é obrigatório. Forneça pelo menos uma declaração de saída retornada pelo perfil técnico. O exemplo a seguir mostra como definir valores padrão nas declarações de saída:
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="ageGroup" DefaultValue="Undefined" />
<OutputClaim ClaimTypeReferenceId="ageGroupValueChanged" DefaultValue="false" />
</OutputClaims>
Transformações de declarações de saída
O elemento OutputClaimsTransformations pode conter uma coleção de elementos OutputClaimsTransformation que são usados para modificar declarações ou gerar novas. O perfil técnico a seguir chama a transformação de declarações RemoveAlternativeSecurityIdByIdentityProvider . Essa transformação de declarações remove uma identificação social da coleção de AlternativeSecurityIds. As declarações de saída desse perfil técnico são identityProvider2, que é definida como facebook.com, e AlternativeSecurityIds, que contém a lista de identidades sociais associadas a esse usuário depois que facebook.com identidade é removida.
<ClaimsTransformations>
<ClaimsTransformation Id="RemoveAlternativeSecurityIdByIdentityProvider"
TransformationMethod="RemoveAlternativeSecurityIdByIdentityProvider">
<InputClaims>
<InputClaim ClaimTypeReferenceId="IdentityProvider2"
TransformationClaimType="identityProvider" />
<InputClaim ClaimTypeReferenceId="AlternativeSecurityIds"
TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="AlternativeSecurityIds"
TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
...
<TechnicalProfile Id="Facebook-OAUTH-UnLink">
<DisplayName>Unlink Facebook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="identityProvider2" DefaultValue="facebook.com" AlwaysUseDefaultValue="true" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="RemoveAlternativeSecurityIdByIdentityProvider" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
O perfil técnico de transformação de declarações permite executar uma transformação de declarações a partir da etapa de orquestração de qualquer jornada do usuário. No exemplo a seguir, a etapa de orquestração chama um dos perfis técnicos de desvinculação, como UnLink-Facebook-OAUTH. Esse perfil técnico chama a transformação de declarações de saída de RemoveAlternativeSecurityIdByIdentityProvider, que gera uma nova declaração AlternativeSecurityIds2 . A declaração de saída contém a lista de identidades sociais do usuário, enquanto remove a identidade do Facebook das coleções.
<UserJourney Id="AccountUnLink">
<OrchestrationSteps>
...
<OrchestrationStep Order="8" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="UnLinkFacebookExchange" TechnicalProfileReferenceId="UnLink-Facebook-OAUTH" />
<ClaimsExchange Id="UnLinkMicrosoftExchange" TechnicalProfileReferenceId="UnLink-Microsoft-OAUTH" />
<ClaimsExchange Id="UnLinkGitHubExchange" TechnicalProfileReferenceId="UnLink-GitHub-OAUTH" />
</ClaimsExchanges>
</OrchestrationStep>
...
</OrchestrationSteps>
</UserJourney>
Metadados
| Atributo | Obrigatório | Descrição |
|---|---|---|
| IncludeClaimResolvingInClaimsHandling | Não | Para declarações de entrada e saída, especifica se a resolução de declarações está incluída no perfil técnico. Valores possíveis: true, ou false (padrão). Se você quiser usar um resolvedor de declarações no perfil técnico, defina esses metadados como true. |
| ContentDefinitionReferenceId | Não | O identificador da definição de conteúdo associada a este perfil técnico. Os metadados de definição de conteúdo são necessários para transformações de declarações FormatLocalizedString, GetLocalizedStringsTransformation e GetMappedValueFromLocalizedCollection. |
Usar um perfil técnico de validação
Um perfil técnico de transformação de declarações pode ser usado para validar informações. No exemplo a seguir, o perfil técnico autodeclarado chamado LocalAccountSignUpWithLogonEmail solicita que o usuário insira o e-mail duas vezes e, em seguida, chama o perfil técnico de validação chamado Validate-Email para validar os e-mails. O perfil técnico Validate-Email chama a transformação de declarações AssertEmailAreEqual para comparar os dois emails de declarações e emailRepeat, e lança uma exceção se eles não forem iguais de acordo com a comparação especificada.
<ClaimsTransformations>
<ClaimsTransformation Id="AssertEmailAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="emailRepeat" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
</InputParameters>
</ClaimsTransformation>
</ClaimsTransformations>
O perfil técnico de transformação de declarações chama a transformação de declarações AssertEmailAreEqual , que afirma que os e-mails fornecidos pelo usuário são os mesmos.
<TechnicalProfile Id="Validate-Email">
<DisplayName>Unlink Facebook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<InputClaims>
<InputClaim ClaimTypeReferenceId="emailRepeat" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertEmailAreEqual" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Um perfil técnico autodeclarado pode chamar o perfil técnico de validação e mostrar a mensagem de erro conforme especificado nos metadados UserMessageIfClaimsTransformationStringsAreNotEqual .
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
<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="UserMessageIfClaimsTransformationStringsAreNotEqual">The email addresses you provided are not the same</Item>
</Metadata>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="emailRepeat" />
...
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="Validate-Email" />
</ValidationTechnicalProfiles>
</TechnicalProfile>