Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para la compra por parte de nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.
Antes de empezar, use el selector Elegir un tipo de directiva en la parte superior de esta página para elegir el tipo de directiva que está configurando. Azure Active Directory B2C ofrece dos métodos para definir cómo interactúan los usuarios con las aplicaciones: a través de flujos de usuario predefinidos o mediante directivas personalizadas totalmente configurables. Los pasos necesarios en este artículo son diferentes para cada método.
OpenID Connect es un protocolo de autenticación basado en OAuth 2.0 que se puede utilizar para el inicio de sesión seguro de los usuarios. La mayoría de los proveedores de identidades que usan este protocolo son compatibles con Azure AD B2C.
En este artículo se explica cómo puede agregar proveedores de identidades personalizados de OpenID Connect a los flujos de usuario.
Importante
Los puntos de conexión deben cumplir los requisitos de seguridad de Azure AD B2C. Las versiones anteriores de TLS y los cifrados están en desuso. Para obtener más información, consulte Requisitos de TLS y del conjunto de cifrado de Azure AD B2C.
Prerrequisitos
- Cree un flujo de usuario para que los usuarios se registren e inicien sesión en la aplicación.
- Registre una aplicación web.
- Siga los pasos de Introducción a las directivas personalizadas en Active Directory B2C. En este tutorial se explica cómo actualizar archivos de directiva personalizados para usar la configuración del inquilino de Azure AD B2C.
- Registre una aplicación web.
Agregar el proveedor de identidades
- Inicie sesión en Azure Portal con una cuenta que tenga al menos privilegios de administrador de proveedores de identidades externos.
- Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.
- Elija Todos los servicios en la esquina superior izquierda de Azure Portal, busque y seleccione Azure AD B2C.
- Seleccione Proveedores de identidades y, a continuación, seleccione Nuevo proveedor de OpenID Connect.
- Escriba un nombre. Por ejemplo, escriba Contoso.
Defina el proveedor de identidades de OpenId Connect agregándolo al elemento ClaimsProviders en el archivo de extensión de la directiva.
Abra el archivo TrustFrameworkExtensions.xml.
Busque el elemento ClaimsProviders. Si no existe, agréguelo debajo del elemento raíz.
Agregue un nuevo elemento ClaimsProvider tal como se muestra a continuación:
<ClaimsProvider> <Domain>contoso.com</Domain> <DisplayName>Login with Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Contoso-OpenIdConnect"> <DisplayName>Contoso</DisplayName> <Description>Login with your Contoso account</Description> <Protocol Name="OpenIdConnect"/> <Metadata> <Item Key="METADATA">https://your-identity-provider.com/.well-known/openid-configuration</Item> <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid profile</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> </Metadata> <!-- <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/> </CryptographicKeys> --> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/> <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="oid"/> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Configurar el proveedor de identidades
Cada proveedor de identidades de OpenID Connect describe un documento de metadatos que contiene la mayor parte de la información necesaria para realizar el inicio de sesión. El documento de metadatos incluye información como las direcciones URL que se van a utilizar y la ubicación de las claves de firma públicas del servicio. El documento de metadatos de OpenID Connect siempre se encuentra en un punto de conexión que termina en .well-known/openid-configuration
. Para el proveedor de identidades de OpenID Connect que desea agregar, introduzca su URL de metadatos.
En la URL de metadatos, introduzca la URL del documento de metadatos de OpenID Connect.
En los metadatos del perfil técnico <Item Key="METADATA">
, introduzca la URL del documento de metadatos de OpenID Connect.
ID de cliente y secreto
Para permitir que los usuarios inicien sesión, el proveedor de identidades requiere que los desarrolladores registren una aplicación en su servicio. Esta aplicación tiene un identificador que se denomina identificador de cliente y un secreto de cliente.
El secreto de cliente es opcional. Sin embargo, debe proporcionar un secreto de cliente si el tipo de respuesta es code
, que utiliza el secreto para intercambiar el código por el token.
Para agregar el ID de cliente y el secreto de cliente, copie estos valores del proveedor de identidad e introdúzcalos en los campos correspondientes.
En los metadatos del <Item Key="client_id">
perfil técnico, introduzca el ID de cliente.
Creación de una clave de directiva
Si se requiere un cliente secreto, almacene el cliente secreto que usted registró anteriormente en el tenant de Azure AD B2C.
Inicie sesión en Azure Portal.
Asegúrese de que usa el directorio que contiene el inquilino de Azure AD B2C. Seleccione el filtro Directorio + suscripción en la barra de herramientas del portal.
En la página Configuración del portal | Directorios y suscripciones, busque el directorio de Azure AD B2C en la lista Nombre de directorio y seleccione Cambiar.
Elija Todos los servicios en la esquina superior izquierda de Azure Portal y busque y seleccione Azure AD B2C.
En la página Información general, seleccione Identity Experience Framework.
Seleccione Claves de directiva y, a continuación, seleccione Agregar.
En Opciones, elija
Manual
.Escriba un nombre para la clave de directiva. Por ejemplo:
ContosoSecret
. El prefijoB2C_1A_
se agrega automáticamente al nombre de la clave.En Secreto, escriba el secreto de cliente que registró anteriormente.
En Uso de claves, seleccione
Signature
.Haga clic en Crear.
En el
CryptographicKeys
elemento XML, agregue el siguiente elemento:<CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/> </CryptographicKeys>
Ámbito
El ámbito define la información y los permisos que desea recopilar de su proveedor de identidad, por ejemplo openid profile
. Para recibir el token de identificación del proveedor de identidades, se debe especificar el ámbito openid
.
Sin el token de identificador, los usuarios no pueden iniciar sesión en Azure AD B2C mediante el proveedor de identidades personalizadas. Otros ámbitos se pueden anexar separados por espacio. Consulte la documentación del proveedor de identidades personalizadas para ver qué otros ámbitos pueden estar disponibles.
En Ámbito, escriba los ámbitos del proveedor de identidades. Por ejemplo: openid profile
.
En los metadatos del perfil técnico <Item Key="scope">
, escriba los ámbitos del proveedor de identidades. Por ejemplo: openid profile
.
Tipo de respuesta
El tipo de respuesta describe qué tipo de información se devuelve en la llamada inicial al authorization_endpoint
del proveedor de identidades personalizadas. Se pueden utilizar los siguientes tipos de respuesta:
-
code
: Según el flujo de código de autorización, se devolverá un código a Azure AD B2C. Azure AD B2C procede a llamar altoken_endpoint
para intercambiar el código por el token. -
id_token
: Un token de identificación es devuelto a Azure AD B2C desde el proveedor de identidad personalizado.
En el Tipo de respuesta, seleccione code
, o id_token
, según la configuración de su proveedor de identidad.
En los metadatos del perfil técnico <Item Key="response_types">
, seleccione code
, o id_token
según la configuración de su proveedor de identidad.
Modo de respuesta
El modo de respuesta define el método que se debe usar para enviar los datos del proveedor de identidades personalizado a Azure AD B2C. Se pueden utilizar los siguientes modos de respuesta:
-
form_post
: Este modo de respuesta se recomienda para una mejor seguridad. La respuesta se transmite a través del método HTTPPOST
, con el código o token codificado en el cuerpo utilizando elapplication/x-www-form-urlencoded
formato. -
query
: El código o token se devuelve como parámetro de consulta.
En el modo de respuesta, seleccione form_post
, o query
, según la configuración de su proveedor de identidad.
En los metadatos de <Item Key="response_mode">
del perfil técnico, seleccione form_post
o query
, según la configuración de su proveedor de identidad.
Sugerencia de dominio
La sugerencia de dominio se puede usar para saltar directamente a la página de inicio de sesión del proveedor de identidades especificado, en lugar de hacer que el usuario realice una selección entre la lista de proveedores de identidades disponibles.
Para permitir este tipo de comportamiento, introduzca un valor para la sugerencia de dominio. Para saltar al proveedor de identidades personalizadas, anexe el parámetro domain_hint=<domain hint value>
al final de la solicitud al llamar a Azure AD B2C para iniciar sesión.
En la sugerencia de dominio, escriba un nombre de dominio utilizado en la sugerencia de dominio.
En el elemento XML de perfil <Domain>contoso.com</Domain>
técnico, introduzca un nombre de dominio utilizado en la sugerencia de dominio. Por ejemplo: contoso.com
.
Asignación de notificaciones
Una vez que el proveedor de identidades personalizado devuelve un token de ID a Azure AD B2C, Azure AD B2C debe poder asignar las declaraciones del token recibido a las declaraciones que Azure AD B2C reconoce y usa. Para cada una de las asignaciones que se detallan aquí, lea la documentación del proveedor de identidades personalizado para comprender las notificaciones que se devuelven en los tokens del proveedor de identidades:
- Id. de usuario: Introduce la reclamación que proporciona el identificador único para el usuario que ha iniciado sesión.
- Nombre para mostrar: introduzca el atributo que proporciona el nombre para mostrar o el nombre completo del usuario.
- Nombre asignado: especifique la notificación que proporciona el nombre del usuario.
- Apellido: Ingrese la reclamación que proporciona el apellido del usuario.
- Correo electrónico: Introduzca la afirmación que proporciona la dirección de correo electrónico del usuario.
El OutputClaims
elemento contiene una lista de reclamaciones devueltas por el proveedor de identidad. Asigne el nombre de la notificación definida en la directiva al nombre definido en el proveedor de identidades. En el elemento <OutputClaims>
, configure el atributo PartnerClaimType
con el nombre de notificación correspondiente tal como lo define el proveedor de identidades.
IdentificadorDeReferenciaDelTipoDeReclamación | TipoDeReclamaciónDelSocio |
---|---|
issuerUserId |
Escriba la reclamación que proporciona el identificador único para el usuario que ha iniciado sesión. |
displayName |
Especifique la notificación que proporciona el nombre para mostrar o el nombre completo del usuario. |
givenName |
Especifique la notificación que proporciona el nombre del usuario. |
surName |
Introduzca la declaración que proporcione el apellido del usuario. |
email |
Introduzca la reclamación que proporciona la dirección de correo electrónico del usuario. |
identityProvider |
Introduzca la reclamación que proporciona el nombre del emisor del token. Por ejemplo: iss . Si el proveedor de identidad no incluye la reclamación del emisor en el token, establezca el atributo DefaultValue con un identificador único de su proveedor de identidad. Por ejemplo: DefaultValue="contoso.com" . |
Adición del proveedor de identidades a un flujo de usuario
- En el inquilino de Azure AD B2C, seleccione Flujos de usuario.
- Haga clic en el flujo de usuario al que desea agregar el proveedor de identidad.
- En Proveedores de identidad social, seleccione el proveedor de identidad que ha agregado. Por ejemplo, Contoso.
- Haga clic en Guardar.
Prueba del flujo de usuario
- Para probar la directiva, seleccione Ejecutar flujo de usuario.
- En Aplicación, seleccione la aplicación web denominada testapp1 que registró anteriormente. La dirección URL de respuesta debe mostrar
https://jwt.ms
. - Seleccione el botón Ejecutar flujo de usuario.
- En la página de registro o inicio de sesión, seleccione el proveedor de identidad en el que desea iniciar sesión. Por ejemplo, Contoso.
Si el proceso de inicio de sesión se completa correctamente, el explorador se redirige a https://jwt.ms
, que muestra el contenido del token devuelto por Azure AD B2C.
Adición de un recorrido del usuario
En este momento, el proveedor de identidades ya se ha configurado, pero no está disponible en ninguna de las pantallas de inicio de sesión. Si no tiene su propio recorrido del usuario personalizado, cree un duplicado de un recorrido del usuario de la plantilla existente; de lo contrario, continúe con el paso siguiente.
- Abra el archivo TrustFrameworkBase.xml del paquete de inicio.
- Busque y copie todo el contenido del elemento UserJourney que incluye
Id="SignUpOrSignIn"
. - Abra el archivo TrustFrameworkExtensions.xml y busque el elemento UserJourneys. Si el elemento no existe, agréguelo.
- Pegue todo el contenido del elemento UserJourney que ha copiado como elemento secundario del elemento UserJourneys.
- Cambie el identificador del recorrido del usuario. Por ejemplo:
Id="CustomSignUpSignIn"
.
Adición del proveedor de identidades a un recorrido del usuario
Ahora que tiene un recorrido del usuario, agregue el nuevo proveedor de identidades al recorrido del usuario. En primer lugar, agregue un botón de inicio de sesión y, después, vincule el botón a una acción. La acción es el perfil técnico que creó anteriormente.
Busque el elemento del paso de orquestación que incluye
Type="CombinedSignInAndSignUp"
oType="ClaimsProviderSelection"
en el recorrido del usuario. Normalmente es el primer paso de orquestación. El elemento ClaimsProviderSelections contiene una lista de proveedores de identidades con los que un usuario puede iniciar sesión. El orden de los elementos controla el orden de los botones de inicio de sesión que se presentan al usuario. Agregue un elemento XML ClaimsProviderSelection. Establezca el valor de TargetClaimsExchangeId en un nombre descriptivo.En el paso de orquestación siguiente, agregue un elemento ClaimsExchange. Establezca el Id en el valor del identificador de intercambio de notificaciones de destino. Actualice el valor de TechnicalProfileReferenceId al del identificador del perfil técnico que creó anteriormente.
En el siguiente código XML se muestran los dos primeros pasos de orquestación de un recorrido del usuario con el proveedor de identidades:
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
Configuración de la directiva de usuario de confianza
La directiva de usuario de confianza, por ejemplo SignUpSignIn.xml, especifica el recorrido del usuario que ejecutará Azure AD B2C. Busque el elemento DefaultUserJourney en el usuario de confianza. Actualice ReferenceId para que coincida con el identificador del recorrido del usuario, en el que agregó el proveedor de identidades.
En el ejemplo siguiente, para el recorrido de usuario CustomSignUpSignIn
, el ReferenceId está establecido en CustomSignUpSignIn
:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Carga de la directiva personalizada
- Inicie sesión en Azure Portal.
- Seleccione el icono Directorio y suscripción en la barra de herramientas del portal y, luego, elija el directorio que contiene el inquilino de Azure AD B2C.
- En Azure Portal, busque y seleccione Azure AD B2C.
- En Directivas, seleccione Identity Experience Framework.
- Seleccione Cargar directiva personalizada y, a continuación, cargue los dos archivos de directivas que ha cambiado, en el siguiente orden: la directiva de extensiones, por ejemplo
TrustFrameworkExtensions.xml
, luego la directiva de usuarios de confianza, comoSignUpSignIn.xml
.
- Seleccione la directiva de usuarios de confianza, por ejemplo
B2C_1A_signup_signin
. - En Aplicación, seleccione la aplicación web que registró anteriormente. La dirección URL de respuesta debe mostrar
https://jwt.ms
. - Seleccione el botón Ejecutar ahora.
- En la página de registro o inicio de sesión, seleccione Contoso para iniciar sesión con la cuenta de Google.
Si el proceso de inicio de sesión se completa correctamente, el explorador se redirige a https://jwt.ms
, que muestra el contenido del token devuelto por Azure AD B2C.
Problemas conocidos
- Azure AD B2C no admite JWE (JSON Web Encryption) para intercambiar tokens cifrados con proveedores de identidades de OpenID connect.
Pasos siguientes
Para obtener más información, consulte la guía de referencia del perfil técnico de OpenId Connect .