Partilhar via


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:

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

  1. AAD-UserReadUsingAlternativeSecurityId Nos perfis e AAD-UserReadUsingObjectId técnicos, saída da reivindicação do alternativeSecurityIds usuário.
  2. Peça ao usuário para selecionar qual conta social remover da lista de provedores de identidade associados a esse 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 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