Configuración de Transmit Security con Azure Active Directory B2C para la autenticación sin contraseña
En este tutorial, aprenderá a integrar la autenticación de Azure Active Directory B2C (Azure AD B2C) con BindID de Transmit Security, una solución de autenticación sin contraseña. BindID usa la autenticación sólida biométrica de Fast Identity Online (FIDO2) para obtener una autenticación omnicanal de confianza. La solución garantiza una experiencia de inicio de sesión sin problemas para todos los clientes en todos los dispositivos y canales, al reducir el fraude, la suplantación de identidad (phishing) y la reutilización de credenciales.
Descripción del escenario
En el siguiente diagrama de arquitectura se muestra la implementación.
- El usuario abre la página de inicio de sesión de Azure AD B2C e inicia sesión o se registra.
- Azure AD B2C redirige al usuario a BindID mediante una solicitud de OpenID Connect (OIDC).
- BindID autentica al usuario mediante biométricas FIDO2 sin aplicaciones, como la huella digital.
- Se devuelve una respuesta de autenticación descentralizada a BindID.
- La respuesta de OIDC se pasa a Azure AD B2C.
- Al usuario se le concede o se le deniega el acceso a la aplicación en función de los resultados de la comprobación.
Requisitos previos
Para empezar, necesitará lo siguiente:
- Una suscripción a Microsoft Entra
- Si no tiene una, obtenga una cuenta gratuita de Azure.
- Un inquilino de Azure AD B2C vinculado a la suscripción de Azure
- Un inquilino de BindID.
- Vaya a transmitsecurity.com para empezar.
- Registre una aplicación web en Azure Portal.
- Directivas personalizadas de Azure AD B2C
- Si no puede usar las directivas, consulte Tutorial: Creación de flujos de usuario y directivas personalizadas en Azure AD B2C.
Registro de una aplicación en BindID
Primeros pasos:
- Vaya a developer.bindid.io para configurar la aplicación.
- Agregue una aplicación en el Portal de administración de BindID. Se requiere inicio de sesión.
Propiedad | Descripción |
---|---|
Nombre | Nombre de la aplicación |
Dominio | Escriba your-B2C-tenant-name.onmicrosoft.com . Reemplace your-B2C-tenant por el inquilino de Azure AD B2C. |
URI de redirección | https://jwt.ms/ |
URL de redireccionamiento | Escriba https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp . Reemplace your-B2C-tenant por el inquilino de Azure AD B2C. Para un dominio personalizado, reemplace your-B2C-tenant-name.b2clogin.com por el dominio personalizado. |
- Tras el registro, aparecerá un identificador de cliente y un secreto de cliente.
- Registre los valores que se van a usar más adelante.
Configuración de BindID como proveedor de identidades en Azure AD B2C
Para obtener las instrucciones siguientes, use el directorio con el inquilino de Azure AD B2C.
- Inicie sesión en Azure Portal como administrador global.
- Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.
- En la página Configuración del portal | Directorios y suscripciones, en la lista Nombre del directorio, busque el directorio Azure AD B2C.
- Seleccione Cambiar.
- En la esquina superior izquierda de Azure Portal, seleccione Todos los servicios.
- Busque y seleccione Azure AD B2C.
- Seleccione Proveedores de identidades.
- Seleccione Nuevo proveedor de OpenID Connect.
- Escriba un nombre.
- En Dirección URL de metadatos, escriba
https://signin.bindid-sandbox.io/.well-known/openid-configuration
. - En Id. de cliente, escriba el id. de cliente que registró.
- En Secreto de cliente, escriba el secreto de cliente que registró.
- En Ámbito, escriba el valor de
openid email
. - En Tipo de respuesta, seleccione código.
- En Modo de respuesta, seleccione form_post.
- En Asignación de notificaciones del proveedor de identidades, en Id. de usuario, seleccione
sub
. - En Correo electrónico, seleccione
email
. - Seleccione Guardar.
Creación de un flujo de usuario
- En el inquilino de Azure AD B2C, en Directivas, seleccione Flujos de usuario.
- Seleccione Nuevo flujo de usuario.
- Seleccione el tipo de flujo de usuario de registro e inicio de sesión.
- Seleccione Crear.
- Escriba un nombre.
- En Proveedores de identidades, en Cuentas locales, seleccione Ninguno. Esta acción deshabilita el correo electrónico y la autenticación basada en contraseña.
- En Proveedores de identidades personalizados, seleccione el proveedor de identidades de BindID creado, como Inicio de sesión con BindID.
- Seleccione Crear.
Prueba del flujo de usuario
- En el inquilino de Azure AD B2C, seleccione Flujos de usuario.
- Seleccione el flujo de usuario creado, como B2C_1_signupsignin.
- En Aplicación, seleccione la aplicación web que registró. La dirección URL de respuesta es
https://jwt.ms
. - Seleccione Ejecutar flujo de usuario.
- El explorador se redirige la página de inicio de sesión de BindID.
- Escriba el correo electrónico de la cuenta registrada.
- Realiza la autenticación mediante biométricas FIDO2 sin aplicaciones, como la huella digital.
- El explorador se redirige a
https://jwt.ms
. El contenido aparece para el token devuelto por Azure AD B2C.
Creación de una clave de directiva de BindID
Agregue el secreto de cliente de la aplicación de BindID como clave de directiva. Para obtener las instrucciones siguientes, use el directorio con el inquilino de Azure AD B2C.
- Inicie sesión en Azure Portal.
- Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.
- En la página Configuración del portal | Directorios y suscripciones, en la lista Nombre del directorio, busque el directorio Azure AD B2C.
- Seleccione Cambiar.
- En la página de información general, en Directivas, seleccione Identity Experience Framework.
- Seleccione Claves de directiva.
- Seleccione Agregar.
- En Opciones, seleccione Manual.
- Escriba un nombre. El prefijo
B2C_1A_
se anexa al nombre de la clave. - En Secreto, escriba el secreto de cliente que registró.
- En Uso de claves, seleccione Firma.
- Seleccione Crear.
Configuración de BindID como proveedor de identidades
Para permitir el inicio de sesión con BindID, defina BindID como un proveedor de notificaciones con el que Azure AD B2C se comunica mediante un punto de conexión. El punto de conexión proporciona notificaciones usadas por Azure AD B2C para comprobar un usuario autenticado con una identidad digital en un dispositivo.
Agregue BindID como proveedor de notificaciones. Para comenzar, obtenga los paquetes de inicio de directivas personalizadas en GitHub y, luego, actualice los archivos XML del paquete de inicio SocialAndLocalAccounts con el nombre del inquilino de Azure AD B2C:
Abra la carpeta ZIP active-directory-b2c-custom-policy-starterpack-main.zip o clone el repositorio:
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
En los archivos del directorio LocalAccounts, reemplace la cadena
yourtenant
por el nombre de inquilino de Azure AD B2C.Abra
LocalAccounts/ TrustFrameworkExtensions.xml
.Busque el elemento ClaimsProviders. Si no apareciera, agréguelo debajo del elemento raíz.
Agregue una nueva instancia de ClaimsProvider similar al ejemplo siguiente:
<ClaimsProvider> <Domain>signin.bindid-sandbox.io</Domain> <DisplayName>BindID</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="BindID-OpenIdConnect"> <DisplayName>BindID</DisplayName> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">https://signin.bindid-sandbox.io/.well-known/openid-configuration</Item> <!-- Update the Client ID below to the BindID Application ID --> <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid email</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> <Item Key="AccessTokenResponseFormat">json</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_BindIDClientSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Establezca client_id con el identificador de aplicación de BindID que registró.
Seleccione Guardar.
Adición de un recorrido del usuario
El proveedor de identidades no está en las páginas de inicio de sesión. Si tiene un recorrido del usuario personalizado, continúe con Agregar el proveedor de identidades a un recorrido del usuario. De lo contrario, cree un recorrido del usuario de plantilla duplicado:
- Abra el archivo
LocalAccounts/ TrustFrameworkBase.xml
en el paquete de inicio. - Busque y copie el contenido del elemento UserJourney que incluye
Id=SignUpOrSignIn
. - Abra
LocalAccounts/ TrustFrameworkExtensions.xml
. - Busque el elemento UserJourneys. Si no hay ningún elemento, agregue uno.
- Pegue el contenido del elemento UserJourney como elemento secundario del elemento UserJourneys.
- Cambie el nombre del identificador de recorrido del usuario.
Adición del proveedor de identidades a un recorrido del usuario
Agregue el nuevo proveedor de identidades al recorrido del usuario.
- 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 tiene una lista de proveedores de identidades con los que los usuarios inician sesión. El orden de los elementos determina el orden de los botones de inicio de sesión. - Agregue un elemento XML ClaimsProviderSelection.
- Establezca el valor de TargetClaimsExchangeId en un nombre descriptivo.
- Agregue un elemento ClaimsExchange.
- Establezca el id. en el valor del id. de intercambio de notificaciones de destino. Esta acción vincula el botón BindID a
BindID-SignIn
. - Actualice el valor TechnicalProfileReferenceId al identificador de perfil técnico que haya creado.
El archivo XML siguiente muestra el recorrido del usuario de orquestación con el proveedor de identidades.
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="BindIDExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="BindIDExchange" TechnicalProfileReferenceId="BindID-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 ejecuta Azure AD B2C. Puede controlar qué notificaciones se pasan a la aplicación. Para ello, ajuste el elemento OutputClaims del elemento TechnicalProfile de PolicyProfile. En este tutorial, la aplicación recibe los atributos del usuario, como el nombre para mostrar, el nombre propio, los apellidos, el correo electrónico, el identificador de objeto, el proveedor de identidades y el identificador de inquilino.
Consulte Azure-Samples/active-directory-b2c-custom-policy-starterpack.
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignInWithBindID" />
<TechnicalProfile Id="BindID-OpenIdConnect">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
Carga de la directiva personalizada
- Inicie sesión en Azure Portal.
- Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.
- En la página Configuración del portal | Directorios y suscripciones, en la lista Nombre del directorio, busque el directorio Azure AD B2C.
- Seleccione Cambiar.
- En Azure Portal, busque y seleccione Azure AD B2C.
- En Directivas, seleccione Identity Experience Framework.
- Seleccione Cargar directiva personalizada.
- Cargue los archivos en el paquete de inicio LocalAccounts en el orden siguiente:
- Directiva base, por ejemplo
TrustFrameworkBase.xml
. - Directiva de localización, por ejemplo
TrustFrameworkLocalization.xml
. - La directiva de extensión, por ejemplo
TrustFrameworkExtensions.xml
. - A continuación, la directiva de usuario de confianza, por ejemplo
SignUpOrSignIn.xml
.
Prueba de la directiva personalizada
Para obtener las instrucciones siguientes, use el directorio con el inquilino de Azure AD B2C.
- Abra el inquilino de Azure AD B2C y, en Directivas, seleccione Identity Experience Framework.
- En Directivas personalizadas, seleccione B2C_1A_signup_signin.
- En Aplicación, seleccione la aplicación web que registró. La dirección URL de respuesta es
https://jwt.ms
. - Seleccione Ejecutar ahora.
- El explorador se redirige la página de inicio de sesión de BindID.
- Escriba el correo electrónico de la cuenta registrada.
- Realice la autenticación mediante biométricas FIDO2 sin aplicaciones, como la huella digital.
- El explorador se redirige a
https://jwt.ms
. Aparece el contenido del token devuelto por Azure AD B2C.
Pasos siguientes
Para más información, consulte los artículos siguientes: