Transformações de declarações de contas sociais
No Azure AD B2C (Azure Active Directory B2C), as identidades de conta de rede social são armazenadas em um atributo alternativeSecurityIds
de um tipo de declaração alternativeSecurityIdCollection. Cada item no alternativeSecurityIdCollection especifica o emissor (nome do provedor de identidade) como facebook.com e o issuerUserId
, que é um identificador de usuário único 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 da conta social do esquema da Estrutura de Experiência de Identidade no Azure AD B2C. Para obter mais informações, confira ClaimsTransformations.
AddItemToAlternativeSecurityIdCollection
Adiciona um AlternativeSecurityId
a uma declaração alternativeSecurityIdCollection
. Confira a Demonstração ao vivo desta transformação de declarações.
Elemento | TransformationClaimType | Tipo de Dados | Observações |
---|---|---|---|
InputClaim | Elemento | string | A declaração a ser adicionada à declaração de saída. |
InputClaim | collection | 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 | collection | alternativeSecurityIdCollection | A declaração que é produzida após essa transformação de declarações ter sido 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 com uma conta existente. Para vincular uma nova identidade social:
- Nos perfis técnicos
AAD-UserReadUsingAlternativeSecurityId
eAAD-UserReadUsingObjectId
, emita a declaraçãoalternativeSecurityIds
do usuário. - Peça ao usuário para entrar com um dos provedores de identidade que não estão associados este usuário.
- Usando a transformação de declarações CreateAlternativeSecurityId, crie um tipo de declaração alternativeSecurityId com o nome de
AlternativeSecurityId2
- Chame a transformação de declarações AddItemToAlternativeSecurityIdCollection para adicionar a declaração AlternativeSecurityId2 à declaração AlternativeSecurityIds existente.
- Persistir a declaraçã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:
item:
{ "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" }
coleção:
[ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" } ]
Declarações de saída:
coleção:
[ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]
CreateAlternativeSecurityId
Cria uma declaração JSON da propriedade alternativeSecurityId do usuário que pode ser usada em chamadas para o Microsoft Entra ID. Confira a Demonstração ao vivo desta transformação de declarações. Confira mais informações no esquema do AlternativeSecurityId.
Elemento | TransformationClaimType | Tipo de Dados | Observações |
---|---|---|---|
InputClaim | chave | 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 | alternativeSecurityId | string | A declaração produzida depois que a transformação de declarações foi invocada. Contém informações sobre a identidade de um usuário da conta social. O emissor é o valor da declaração identityProvider . O issuerUserId é o valor da declaração key no formato base64. |
Exemplo de CreateAlternativeSecurityId
Use esta transformação de declarações para gerar uma declaração alternativeSecurityId
. Ele é usado por todos os perfis técnicos do provedor de identidade, como Facebook-OAUTH
. A transformação de declarações a seguir recebe a ID de conta social do usuário e o nome do provedor de identidade. A saída desse perfil técnico é um formato de cadeia de caracteres JSON que pode ser usado em 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 desta transformação de declarações.
Elemento | TransformationClaimType | Tipo de Dados | Observações |
---|---|---|---|
InputClaim | alternativeSecurityIdCollection | alternativeSecurityIdCollection | A declaração a ser usada para obter a lista de provedores de identidade (emissor). |
OutputClaim | identityProvidersCollection | stringCollection | A declaração que é produzida após essa transformação de declarações ter sido 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 associada à conta. Usar a saída identityProvidersCollection para mostrar ao usuário a lista de provedores de identidade associada à 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. Portanto, o usuário pode selecionar para vincular a 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 desta transformação de declarações.
Elemento | TransformationClaimType | Tipo de Dados | Observações |
---|---|---|---|
InputClaim | identityProvider | string | A declaração que contém o nome do provedor de identidade a ser removido da coleção. |
InputClaim | collection | 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 | collection | alternativeSecurityIdCollection | A declaração que é produzida após essa transformação de declarações ter sido invocada. A nova coleção, depois de remover o identityProvider da coleção. |
Exemplo de RemoveAlternativeSecurityIdByIdentityProvider
O exemplo a seguir desvincula uma das identidades sociais de uma conta existente. Para desvincular uma identidade social:
- Nos perfis técnicos
AAD-UserReadUsingAlternativeSecurityId
eAAD-UserReadUsingObjectId
, emita a declaraçãoalternativeSecurityIds
do usuário. - Peça ao usuário para selecionar qual conta social será removida da lista de provedores de identidade que estão associados a este 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 declaraçã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óximas etapas
- Encontre mais amostras de transformação de declarações no repositório GitHub da comunidade do Azure AD B2C