Contas sociais reivindicam transformações
No Azure Ative Directory B2C (Azure AD B2C), as identidades de conta social são armazenadas em um alternativeSecurityIds
atributo de um tipo de declaração alternativeSecurityIdCollection . Cada item na alternativeSecurityIdCollection especifica o emissor (nome do provedor de identidade, como facebook.com) e o issuerUserId
, que é um identificador de usuário exclusivo para o emissor.
"alternativeSecurityIds": [{
"issuer": "google.com",
"issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
},
{
"issuer": "facebook.com",
"issuerUserId": "MTIzNDU="
}]
Este artigo fornece exemplos para usar as transformações de declarações de conta social do esquema do Identity Experience Framework no Azure AD B2C. Para obter mais informações, consulte ClaimsTransformations.
AddItemToAlternativeSecurityIdCollection
Adiciona um AlternativeSecurityId
a uma alternativeSecurityIdCollection
declaração. Confira a demonstração ao vivo dessa transformação de reivindicações.
Elemento | TransformationClaimType | Tipo de Dados | Notas |
---|---|---|---|
InputClaim | Elemento | string | A reivindicação a ser adicionada à declaração de saída. |
InputClaim | Coleção | alternativeSecurityIdCollection | A declaração que é usada pela transformação de declarações, se disponível na política. Se fornecida, a transformação de declarações adiciona o item no final da coleção. |
OutputClaim | Coleção | alternativeSecurityIdCollection | A alegação que é produzida após essa transformação de reivindicações foi invocada. A nova coleção que contém os itens de entrada collection e item . |
Exemplo de AddItemToAlternativeSecurityIdCollection
O exemplo a seguir vincula uma nova identidade social a uma conta existente. Para ligar uma nova identidade social:
AAD-UserReadUsingAlternativeSecurityId
Nos perfis eAAD-UserReadUsingObjectId
técnicos, saída da reivindicação doalternativeSecurityIds
usuário.- Peça ao usuário para entrar com um dos provedores de identidade que não estão associados a esse usuário.
- Usando a transformação de declarações CreateAlternativeSecurityId , crie um novo tipo de declaração alternativeSecurityId com um nome de
AlternativeSecurityId2
- Chame a transformação de declarações AddItemToAlternativeSecurityIdCollection para adicionar a declaração AlternativeSecurityId2 à declaração AlternativeSecurityIds existente.
- Persista a reivindicação alternativeSecurityIds para a conta de usuário
<ClaimsTransformation Id="AddAnotherAlternativeSecurityId" TransformationMethod="AddItemToAlternativeSecurityIdCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="AlternativeSecurityId2" TransformationClaimType="item" />
<InputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
Declarações de entrada:
artigo:
{ "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" }
Recolha:
[ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" } ]
Declarações de saída:
Recolha:
[ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]
CreateAlternativeSecurityId
Cria uma representação JSON da propriedade alternativeSecurityId do usuário que pode ser usada nas chamadas para o Microsoft Entra ID. Confira a demonstração ao vivo dessa transformação de reivindicações. Para obter mais informações, consulte o esquema AlternativeSecurityId .
Elemento | TransformationClaimType | Tipo de Dados | Notas |
---|---|---|---|
InputClaim | key | string | A declaração que especifica o identificador de usuário exclusivo usado pelo provedor de identidade social. |
InputClaim | identityProvider | string | A declaração que especifica o nome do provedor de identidade da conta social, como facebook.com. |
OutputClaim | alternativaSecurityId | string | A reivindicação que é produzida após a transformação de reivindicações ter sido invocada. Contém informações sobre a identidade de um usuário de conta social. O emitente é o valor do identityProvider crédito. O issuerUserId é o key valor da declaração no formato base64. |
Exemplo de CreateAlternativeSecurityId
Use essa transformação de declarações para gerar uma alternativeSecurityId
declaração. Ele é usado por todos os perfis técnicos de provedores de identidade social, como Facebook-OAUTH
. A transformação de declarações a seguir recebe o ID da conta social do usuário e o nome do provedor de identidade. A saída deste perfil técnico é um formato de cadeia de caracteres JSON que pode ser usado nos serviços de diretório do Microsoft Entra.
<ClaimsTransformation Id="CreateAlternativeSecurityId" TransformationMethod="CreateAlternativeSecurityId">
<InputClaims>
<InputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="key" />
<InputClaim ClaimTypeReferenceId="identityProvider" TransformationClaimType="identityProvider" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="alternativeSecurityId" TransformationClaimType="alternativeSecurityId" />
</OutputClaims>
</ClaimsTransformation>
- Declarações de entrada:
- chave: 12334
- identityProvider: Facebook.com
- Declarações de saída:
- alternativeSecurityId: { "emissor": "facebook.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"}
GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation
Retorna a lista de emissores da declaração alternativeSecurityIdCollection em uma nova declaração stringCollection . Confira a demonstração ao vivo dessa transformação de reivindicações.
Elemento | TransformationClaimType | Tipo de Dados | Notas |
---|---|---|---|
InputClaim | alternativeSecurityIdCollection | alternativeSecurityIdCollection | A reivindicação a ser usada para obter a lista de provedores de identidade (emissor). |
OutputClaim | identityProvidersCollection | stringCollection | A alegação que é produzida após essa transformação de reivindicações foi invocada. Uma lista de provedores de identidade associados à declaração de entrada. |
Exemplo de GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation
A transformação de declarações a seguir lê a declaração alternativeSecurityIds do usuário e extrai a lista de nomes de provedores de identidade associados a essa conta. Use identityProvidersCollection de saída para mostrar ao usuário a lista de provedores de identidade associados à conta. Ou, na página de seleção do provedor de identidade, filtre a lista de provedores de identidade com base na declaração identityProvidersCollection de saída. Assim, o usuário pode optar por vincular uma nova identidade social que ainda não esteja associada à conta.
<ClaimsTransformation Id="ExtractIdentityProviders" TransformationMethod="GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation">
<InputClaims>
<InputClaim ClaimTypeReferenceId="alternativeSecurityIds" TransformationClaimType="alternativeSecurityIdCollection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="identityProviders" TransformationClaimType="identityProvidersCollection" />
</OutputClaims>
</ClaimsTransformation>
Declarações de entrada:
alternativeSecurityIdCollection:
[ { "issuer": "google.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]
Declarações de saída:
- identityProvidersCollection: [ "facebook.com", "google.com" ]
RemoveAlternativeSecurityIdByIdentityProvider
Remove um AlternativeSecurityId de uma declaração alternativeSecurityIdCollection . Confira a demonstração ao vivo dessa transformação de reivindicações.
Elemento | TransformationClaimType | Tipo de Dados | Notas |
---|---|---|---|
InputClaim | identityProvider | string | A declaração que contém o nome do provedor de identidade a ser removido da coleção. |
InputClaim | Coleção | alternativeSecurityIdCollection | A declaração que é usada pela transformação de declarações. A transformação de declarações remove o identityProvider da coleção. |
OutputClaim | Coleção | alternativeSecurityIdCollection | A alegação que é produzida após essa transformação de reivindicações foi invocada. A nova coleção, depois que o identityProvider foi removido da coleção. |
Exemplo de RemoveAlternativeSecurityIdByIdentityProvider
O exemplo a seguir desvincula uma das identidades sociais com uma conta existente. Para desvincular uma identidade social:
AAD-UserReadUsingAlternativeSecurityId
Nos perfis eAAD-UserReadUsingObjectId
técnicos, saída da reivindicação doalternativeSecurityIds
usuário.- Peça ao usuário para selecionar qual conta social remover da lista de provedores de identidade associados a esse usuário.
- Chame um perfil técnico de transformação de declarações que chama a transformação de declarações RemoveAlternativeSecurityIdByIdentityProvider , que removeu a identidade social selecionada, usando o nome do provedor de identidade.
- Persista a reivindicação alternativeSecurityIds para a conta de usuário.
<ClaimsTransformation Id="RemoveAlternativeSecurityIdByIdentityProvider" TransformationMethod="RemoveAlternativeSecurityIdByIdentityProvider">
<InputClaims>
<InputClaim ClaimTypeReferenceId="secondIdentityProvider" TransformationClaimType="identityProvider" />
<InputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="AlternativeSecurityIds" TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
- Declarações de entrada:
- identityProvider: facebook.com
- coleção: [ { "emissor": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "emissor": "facebook.com", "issuerUserId": "MTIzNDU=" } ]
- Declarações de saída:
- coleção: [ { "emissor": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" } ]
Próximos passos
- Encontre mais exemplos de transformação de declarações no repositório GitHub da comunidade do Azure AD B2C