Definición de un perfil técnico de OAuth1 en una directiva personalizada en Azure Active Directory B2C

Nota:

En Azure Active Directory B2C, las directivas personalizadas se han diseñado principalmente para abordar escenarios complejos. Para la mayoría de los escenarios, se recomienda usar flujos de usuario integrados. Si no lo ha hecho, obtenga información sobre el paquete de inicio de directivas personalizadas en Introducción a las directivas personalizadas en Active Directory B2C.

Azure Active Directory B2C (Azure AD B2C) proporciona compatibilidad con el proveedor de identidades del protocolo OAuth 1.0. En este artículo se describen los detalles para que un perfil técnico interactúe con un proveedor de notificaciones que admita este protocolo estandarizado. Con un perfil técnico OAuth1, puede realizar la federación con un proveedor de identidades basado en OAuth1, como Twitter. Esto permite a los usuarios iniciar sesión con sus identidades de redes sociales o de empresa existentes.

Protocolo

El atributo Name del elemento Protocol tiene que establecerse en OAuth1. Por ejemplo, el protocolo para el perfil técnico Twitter-OAUTH1 es OAuth1.

<TechnicalProfile Id="Twitter-OAUTH1">
  <DisplayName>Twitter</DisplayName>
  <Protocol Name="OAuth1" />
  ...

Notificaciones de entrada

Los elementos InputClaims y InputClaimsTransformations están vacíos o faltan.

Notificaciones de salida

El elemento OutputClaims contiene una lista de notificaciones devuelta por el proveedor de identidadades de OAuth1. Puede que tenga que asignar el nombre de la notificación definida en la directiva al nombre definido en el proveedor de identidades. También puede incluir notificaciones no especificadas por el proveedor de identidades, siempre que establezca el atributo DefaultValue.

El elemento OutputClaimsTransformations puede contener una colección de elementos OutputClaimsTransformation que se usan para modificar las notificaciones de salida o para generar nuevas.

El ejemplo siguiente muestra las notificaciones devueltas por el proveedor de identidades de Twitter:

  • La notificación user_id también se asigna a la notificación issuerUserId.
  • La notificación screen_name que se asigna a la notificación displayName.
  • La notificación email sin asignación de nombre.

El perfil técnico también muestra la notificaciones no proporcionadas por el proveedor de identidades:

  • La notificación identityProvider que contiene el nombre del proveedor de identidades.
  • La notificación authenticationSource con un valor predeterminado de socialIdpAuthentication.
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="user_id" />
  <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="screen_name" />
  <OutputClaim ClaimTypeReferenceId="email" />
  <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="twitter.com" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
</OutputClaims>

Metadatos

Atributo Obligatorio Descripción
client_id El identificador de la aplicación del proveedor de identidades.
ProviderName No Nombre del proveedor de identidades.
request_token_endpoint La dirección URL del punto de conexión del token de solicitud de acuerdo con RFC 5849.
authorization_endpoint La dirección URL del punto de conexión de autorización de acuerdo con RFC 5849.
access_token_endpoint La dirección URL del punto de conexión del token de acuerdo con RFC 5849.
ClaimsEndpoint No La dirección URL del punto de conexión de la información de usuario.
ClaimsResponseFormat No El formato de respuesta de las notificaciones.

Claves de cifrado

El elemento CryptographicKeys contiene el atributo siguiente:

Atributo Obligatorio Descripción
client_secret Secreto de cliente de la aplicación del proveedor de identidades.

URI de redireccionamiento

Al configurar el URI de redireccionamiento del proveedor de identidades, escriba https://{tenant-name}.b2clogin.com/{tenant-name}.onmicrosoft.com/{policy-id}/oauth1/authresp. Asegúrese de reemplazar {tenant-name} por el nombre de su inquilino (por ejemplo, contosob2c) y {policy-id} por el identificador de la directiva (por ejemplo, b2c_1a_policy). El URI de redireccionamiento necesita estar escrito todo en minúsculas. Agregue un URI de redirección para todas las directivas que usan el inicio de sesión del proveedor de identidades.

Ejemplos: