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 ser adquirido por 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.
Nota:
Esta característica está en versión preliminar pública.
Importante
A partir de mayo de 2021, GitHub anunció un cambio que afecta a la federación de directivas personalizadas de Azure AD B2C. Debido al cambio, agregue <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>
metadatos al perfil técnico de GitHub. Para más información, consulte Desuso de la autenticación de API mediante parámetros de consulta.
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.
Creación de una aplicación de OAuth de GitHub
Para habilitar el inicio de sesión con una cuenta de GitHub en Azure Active Directory B2C (Azure AD B2C), debe crear una aplicación en el portal para desarrolladores de GitHub . Para obtener más información, consulte Creación de una aplicación de OAuth. Si aún no tiene una cuenta de GitHub, puede registrarse en https://www.github.com/.
- Inicie sesión en el desarrollador de GitHub con sus credenciales de GitHub.
- Seleccione Aplicaciones de OAuth y, después, Nueva aplicación de OAuth.
- Escriba un nombre de aplicación y la dirección URL de la página principal.
- En laDirección URL de devolución de llamada de autorización, escriba
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Si usa un dominio personalizado, escribahttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Reemplaceyour-domain-name
por el dominio personalizado yyour-tenant-name
por el nombre del inquilino. Use todas las letras minúsculas al escribir el nombre del inquilino incluso si el inquilino está definido con letras mayúsculas en Azure AD B2C. - Haga clic en Register application (Registrar aplicación).
- Copie los valores de Id. de cliente y Secreto de cliente. Debe agregar el proveedor de identidades al inquilino.
Configuración de GitHub como 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, después, GitHub (versión preliminar) .
- Escriba un nombre. Por ejemplo, GitHub.
- En Id. de cliente, escriba el identificador de cliente de la aplicación de GitHub que creó anteriormente.
- En Secreto de cliente, escriba el secreto de cliente que registró.
- Haga clic en Guardar.
Incorporación de un proveedor de identidades de GitHub a un flujo de usuario
En este momento, se ha configurado el proveedor de identidades de GitHub, pero aún no está disponible en ninguna de las páginas de inicio de sesión. Para agregar el proveedor de identidades de GitHub a un flujo de usuario:
- En el inquilino de Azure AD B2C, seleccione Flujos de usuario.
- Haga clic en el flujo de usuario que desea agregar el proveedor de identidades de GitHub.
- En Proveedores de identidades sociales, seleccione GitHub.
- Haga clic en Guardar.
- 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 GitHub para iniciar sesión con la cuenta de GitHub.
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.
Creación de una clave de directiva
Debe almacenar el secreto de cliente que haya registrado previamente en el inquilino de Azure AD B2C.
- Inicie sesión en Azure Portal.
- 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 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:
GitHubSecret
. 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.
Configuración de GitHub como proveedor de identidades
Para permitir que los usuarios inicien sesión con una cuenta de GitHub, debe definir la cuenta como un proveedor de declaraciones con el que Azure AD B2C puede comunicarse a través de un punto de conexión. El punto de conexión proporciona un conjunto de declaraciones que utiliza Azure AD B2C para comprobar que un usuario específico se ha autenticado.
Puede definir una cuenta de GitHub como proveedor de notificaciones agregándola 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>github.com</Domain> <DisplayName>GitHub</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="GitHub-OAuth2"> <DisplayName>GitHub</DisplayName> <Protocol Name="OAuth2" /> <Metadata> <Item Key="ProviderName">github.com</Item> <Item Key="authorization_endpoint">https://github.com/login/oauth/authorize</Item> <Item Key="AccessTokenEndpoint">https://github.com/login/oauth/access_token</Item> <Item Key="ClaimsEndpoint">https://api.github.com/user</Item> <Item Key="HttpBinding">GET</Item> <Item Key="scope">read:user user:email</Item> <Item Key="UsePolicyInRedirectUri">0</Item> <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item> <Item Key="UserAgentForClaimsExchange">CPIM-Basic/{tenant}/{policy}</Item> <!-- Update the Client ID below to the Application ID --> <Item Key="client_id">Your GitHub application ID</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_GitHubSecret"/> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="numericUserId" PartnerClaimType="id" /> <OutputClaim ClaimTypeReferenceId="issuerUserId" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="github.com" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateIssuerUserId" /> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Establezca client_id en el identificador de aplicación del registro de la aplicación.
Guarde el archivo.
Agregar transformaciones de notificaciones
El perfil técnico de GitHub requiere que se agreguen las transformaciones de notificación CreateIssuerUserId a la lista de ClaimsTransformations. Si no tiene un elemento ClaimsTransformations definido en el archivo, agregue los elementos XML primarios como se muestra a continuación. Las transformaciones de notificaciones también necesitan un nuevo tipo de notificación definido denominado numericUserId.
- Busque el elemento BuildingBlocks . Si el elemento no existe, agréguelo.
- Busque el elemento ClaimsSchema . Si el elemento no existe, agréguelo.
- Agregue la reclamación numericUserId al elemento ClaimsSchema.
- Busque el elemento ClaimsTransformations . Si el elemento no existe, agréguelo.
- Agregue las transformaciones de notificaciones CreateIssuerUserId al elemento ClaimsTransformations.
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="numericUserId">
<DisplayName>Numeric user Identifier</DisplayName>
<DataType>long</DataType>
</ClaimType>
</ClaimsSchema>
<ClaimsTransformations>
<ClaimsTransformation Id="CreateIssuerUserId" TransformationMethod="ConvertNumberToStringClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="numericUserId" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
</BuildingBlocks>
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="GitHubExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="GitHubExchange" TechnicalProfileReferenceId="GitHub-OAuth2" />
</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
.
Prueba de la directiva personalizada
- 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 GitHub para iniciar sesión con la cuenta de GitHub.
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.
Pasos siguientes
- Aprenda a pasar el token de GitHub a la aplicación.
- Echa un vistazo a la demostración en directo de la federación de GitHub, y cómo pasar el token de acceso de GitHub en la demostración en directo.