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:

  1. Nos perfis técnicos AAD-UserReadUsingAlternativeSecurityId e AAD-UserReadUsingObjectId, emita a declaração alternativeSecurityIds do usuário.
  2. Peça ao usuário para entrar com um dos provedores de identidade que não estão associados este usuário.
  3. Usando a transformação de declarações CreateAlternativeSecurityId, crie um tipo de declaração alternativeSecurityId com o nome de AlternativeSecurityId2
  4. Chame a transformação de declarações AddItemToAlternativeSecurityIdCollection para adicionar a declaração AlternativeSecurityId2 à declaração AlternativeSecurityIds existente.
  5. 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:

  1. Nos perfis técnicos AAD-UserReadUsingAlternativeSecurityId e AAD-UserReadUsingObjectId, emita a declaração alternativeSecurityIds do usuário.
  2. 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.
  3. 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.
  4. 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