Comparteix a través de


Transformaciones de notificaciones de cuentas de redes sociales

En Azure Active Directory B2C (Azure AD B2C), las identidades de cuentas de redes sociales se almacenan en un atributo alternativeSecurityIds de un tipo de notificación alternativeSecurityIdCollection. Cada elemento de alternativeSecurityIdCollection especifica el emisor (nombre del proveedor de identidades, como facebook.com) y issuerUserId, que es un identificador de usuario único para el emisor.

"alternativeSecurityIds": [{
    "issuer": "google.com",
    "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
  },
  {
    "issuer": "facebook.com",
    "issuerUserId": "MTIzNDU="
  }]

En este artículo, se proporcionan ejemplos de uso de las transformaciones de notificaciones de cuenta de red social del esquema Marco de experiencia de identidad en Azure AD B2C. Para más información, vea ClaimsTransformations.

AddItemToAlternativeSecurityIdCollection

Agrega un elemento AlternativeSecurityId a una notificación alternativeSecurityIdCollection. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim Elemento string Notificación que se agregará a la notificación de salida.
InputClaim collection alternativeSecurityIdCollection Notificación que usa la transformación de notificaciones si están disponibles en la directiva. Si se especifica, la transformación de notificaciones agrega el elemento item al final de la colección.
OutputClaim collection alternativeSecurityIdCollection Notificación que se genera después de que se haya invocado esta transformación de notificaciones. La nueva colección que contiene los dos elementos de entrada collection y item.

Ejemplo de AddItemToAlternativeSecurityIdCollection

En el ejemplo siguiente, se vincula una nueva identidad de red social a una cuenta existente. Para vincular una nueva identidad de red social:

  1. En los perfiles técnicos AAD-UserReadUsingAlternativeSecurityId y AAD-UserReadUsingObjectId, se muestra la salida de la notificación alternativeSecurityIds del usuario.
  2. Pida al usuario que inicie sesión con uno de los proveedores de identidades que no esté asociado a este usuario.
  3. Al usar la transformación de notificaciones CreateAlternativeSecurityId, se crea un tipo de notificación alternativeSecurityId con el nombre AlternativeSecurityId2.
  4. Realice una llamada a la transformación de notificaciones AddItemToAlternativeSecurityIdCollection para agregar la notificación AlternativeSecurityId2 a la notificación AlternativeSecurityIds existente.
  5. Hacer persistir la notificación alternativeSecurityIds en la cuenta de usuario
<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>
  • Notificaciones de entrada:

    • item:

      {
          "issuer": "facebook.com",
          "issuerUserId": "MTIzNDU="
      }
      
    • collection:

      [
          {
              "issuer": "live.com",
              "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
          }
      ]
      
  • Notificaciones de salida:

    • collection:

      [
          {
              "issuer": "live.com",
              "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
          },
          {
              "issuer": "facebook.com",
              "issuerUserId": "MTIzNDU="
          }
      ]
      

CreateAlternativeSecurityId

Crea una representación JSON de la propiedad alternativeSecurityId del usuario que puede usarse en las llamadas a Microsoft Entra ID. Consulte la demo en vivo de esta transformación de notificaciones. Para más información, consulte el esquema de AlternativeSecurityId.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim key string Notificación que especifica el identificador de usuario único usado por el proveedor de identidades de redes sociales.
InputClaim identityProvider string Notificación que especifica el nombre del proveedor de identidades de cuentas de redes sociales, como facebook.com.
OutputClaim alternativeSecurityId string Notificación que se genera después de que se haya invocado esta transformación de notificaciones. Contiene información sobre la identidad de un usuario de cuenta de red social. El emisor es el valor de la notificación identityProvider. El elemento issuerUserId es el valor de la notificación key en formato Base 64.

Ejemplo de CreateAlternativeSecurityId

Use esta transformación de notificaciones para generar una notificación alternativeSecurityId. Se usa en todos los perfiles técnicos de proveedores de identidades de redes sociales, como Facebook-OAUTH. La siguiente transformación de notificaciones recibe el id. de cuenta de red social del usuario y el nombre del proveedor de identidades. El resultado de este perfil técnico es un formato de cadena JSON que puede usarse en los servicios de directorio de 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>
  • Notificaciones de entrada:
    • key: 12334
    • identityProvider: facebook.com
  • Notificaciones de salida:
    • alternativeSecurityId: { "issuer": "facebook.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"}

GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation

Muestra la lista de emisores de la notificación alternativeSecurityIdCollection en una nueva notificación stringCollection. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim alternativeSecurityIdCollection alternativeSecurityIdCollection Notificación que se usará para obtener la lista de proveedores de identidades (emisor).
OutputClaim identityProvidersCollection stringCollection Notificación que se genera después de que se haya invocado esta transformación de notificaciones. Lista de proveedores de identidades asociados a la notificación de entrada.

Ejemplo de GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation

La siguiente transformación de notificaciones lee la notificación alternativeSecurityIds del usuario y extrae la lista de nombres de proveedores de identidades asociados a esa cuenta. Use el resultado de identityProvidersCollection para mostrar al usuario la lista de proveedores de identidades asociados a la cuenta. O bien, en la página de selección de proveedor de identidades, filtre la lista de proveedores de identidades según la notificación identityProvidersCollection de salida. Por lo tanto, el usuario puede vincular una nueva identidad de red social que aún no esté asociada a la cuenta.

<ClaimsTransformation Id="ExtractIdentityProviders" TransformationMethod="GetIdentityProvidersFromAlternativeSecurityIdCollectionTransformation">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="alternativeSecurityIds" TransformationClaimType="alternativeSecurityIdCollection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="identityProviders" TransformationClaimType="identityProvidersCollection" />
  </OutputClaims>
</ClaimsTransformation>
  • Notificaciones de entrada:

    • alternativeSecurityIdCollection:

      [
          {
              "issuer": "google.com",
              "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw"
          },
          {
              "issuer": "facebook.com",
              "issuerUserId": "MTIzNDU="
          }
      ]
      
  • Notificaciones de salida:

    • identityProvidersCollection: [ "facebook.com", "google.com" ]

RemoveAlternativeSecurityIdByIdentityProvider

Quita un elemento AlternativeSecurityId de una notificación alternativeSecurityIdCollection. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim identityProvider string Notificación que contiene el nombre del proveedor de identidades que se quitará de la colección.
InputClaim collection alternativeSecurityIdCollection Notificación utilizada por la transformación de notificaciones. La transformación de notificaciones quita el elemento identityProvider de la colección.
OutputClaim collection alternativeSecurityIdCollection Notificación que se genera después de que se haya invocado esta transformación de notificaciones. Nueva colección, después de quitar el elemento identityProvider de la colección.

Ejemplo de RemoveAlternativeSecurityIdByIdentityProvider

En el ejemplo siguiente, se desvincula una de las identidades de red social de una cuenta existente. Para desvincular una identidad de red social:

  1. En los perfiles técnicos AAD-UserReadUsingAlternativeSecurityId y AAD-UserReadUsingObjectId, se muestra la salida de la notificación alternativeSecurityIds del usuario.
  2. Pida al usuario que seleccione la cuenta de red social que quiere quitar de la lista de proveedores de identidades asociados a este usuario.
  3. Realiza una llamada a un perfil técnico de transformación de notificaciones que llama a la transformación de notificaciones RemoveAlternativeSecurityIdByIdentityProvider, que ha quitado la identidad de red social seleccionada, mediante el nombre del proveedor de identidades.
  4. Hace persistir la notificación alternativeSecurityIds en la cuenta de usuario.
<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>
  • Notificaciones de entrada:
    • identityProvider: facebook.com
    • collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" }, { "issuer": "facebook.com", "issuerUserId": "MTIzNDU=" } ]
  • Notificaciones de salida:
    • collection: [ { "issuer": "live.com", "issuerUserId": "MTA4MTQ2MDgyOTI3MDUyNTYzMjcw" } ]

Pasos siguientes