Tutorial: Configurar Azure Active Directory B2C con BlokSec para la autenticación sin contraseña
Artículo
Antes de empezar
Azure Active Directory B2C tiene dos métodos para definir la interacción de los usuarios con las aplicaciones: los flujos de usuario predefinidos o las directivas personalizadas configurables.
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.
Consulte Información general sobre flujos de usuario y directivas personalizadas
Azure AD B2C y BlokSec
Aprenda a integrar la autenticación de Azure Active Directory B2C (Azure AD B2C) con BlokSec Decentralized Identity Router. La solución BlokSec simplifica el inicio de sesión de usuario con autenticación sin contraseña y autenticación multifactor sin token. La solución protege a los clientes frente a ataques relacionados con la identidad, como el relleno de contraseñas, la suplantación de identidad y los ataques de tipo "man in the middle".
La integración de BlokSec incluye los siguientes componentes:
Azure AD B2C: servidor de autorización y proveedor de identidades (IdP) para aplicaciones B2C
BlokSec Decentralized Identity Router: puerta de enlace para servicios que aplican BlokSec DIaaS para redirigir las solicitudes de autenticación y autorización a las aplicaciones de proveedor de identidad personal (PIdP) del usuario
Es un proveedor de identidades de OpenID Connect (OIDC) en Azure AD B2C.
Aplicación móvil basada en el SDK de BlokSec: actúa como PIdP de los usuarios en el escenario de autenticación descentralizada.
Si no usa el SDK de BlokSec, vaya a Google Play para la aplicación BlokSec yuID gratuita.
En el diagrama de arquitectura siguiente se muestra el flujo de registro e inicio de sesión en la implementación de la solución BlokSec.
El usuario intenta iniciar sesión en una aplicación de Azure AD B2C y se reenvía a la directiva de inicio de sesión y registro combinada de Azure AD B2C de la aplicación.
Azure AD B2C redirige al usuario al enrutador de identidad descentralizada BlokSec mediante el flujo de código de autorización de OIDC.
El enrutador BlokSec envía una notificación push a la aplicación móvil del usuario con los detalles de la solicitud de autenticación y autorización.
El usuario revisa el desafío de autenticación. Se solicita a un usuario aceptado una prueba biométrica, como la huella digital o el examen facial.
La respuesta está firmada digitalmente con la clave digital única del usuario. La respuesta de autenticación final proporciona prueba de posesión, presencia y consentimiento. La respuesta vuelve al enrutador.
El enrutador verifica la firma digital con la clave pública única e inmutable del usuario almacenada en un libro mayor distribuido. El enrutador responde a Azure AD B2C con el resultado de la autenticación.
Se concede o se deniega acceso al usuario.
Habilitación de BlokSec
Vaya a bloksec.com y seleccione Solicitar un inquilino de demostración.
En el campo del mensaje, especifique que desea llevar a cabo una integración con Azure AD B2C.
Descargue e instale la aplicación móvil BlokSec yuID gratuita.
Cuando esté preparado el inquilino de demostración, recibirá un correo electrónico.
En el dispositivo móvil con la aplicación BlokSec, seleccione el vínculo para registrar la cuenta de administrador con la aplicación yuID.
En el correo electrónico de registro de la cuenta de BlokSec, busque el vínculo a la consola de administración de BlokSec.
Inicie sesión en la consola de administración de BlokSec.
En el panel principal, seleccione Agregar aplicación > Crear personalizada.
En Nombre, escriba Azure AD B2C o un nombre de aplicación.
En Tipo de SSO, seleccione OIDC.
En URI de logotipo, escriba un vínculo a la imagen del logotipo.
Para los URI de redirección, utilice https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp. Por ejemplo, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp. Para un dominio personalizado, escriba https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp.
Para URI de redireccionamiento posteriores al cierre de sesión, escriba https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout.
Seleccione la aplicación de Azure AD B2C creada para abrir la configuración de la aplicación.
Necesitará el identificador de aplicación y el secreto de aplicación más adelante para configurar el proveedor de identidades en Azure AD B2C.
Incorporación de un nuevo 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 un administrador global del inquilino de Azure AD B2C.
Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.
En la página Configuración del portal, Directorios + suscripciones, en la lista Nombre del directorio, busque su directorio Azure AD B2C.
Seleccione Cambiar.
En la esquina superior izquierda de Azure Portal, seleccione Todos los servicios.
Busque y seleccione Azure AD B2C.
Vaya a Panel>Azure Active Directory B2C>Proveedores de identidad.
Seleccione Nuevo proveedor de OpenID Connect.
Seleccione Agregar.
Configuración de un proveedor de identidades
Seleccione Tipo de proveedor de identidades > OpenID Connect.
En Nombre, escriba BlokSec yuID Passwordless u otro nombre.
En Dirección URL de metadatos, escriba https://api.bloksec.io/oidc/.well-known/openid-configuration.
En IDV de cliente, escriba el identificador de la aplicación desde la interfaz de usuario de administrador de BlokSec.
En Secreto de cliente, escriba el secreto de aplicación desde la interfaz de usuario de administrador de BlokSec.
En Ámbito, seleccione Perfil de correo electrónico de OpenID.
En Tipo de respuesta, seleccione Código.
En Domain hint, seleccione yuID.
Seleccione Aceptar.
Seleccione Asignar las notificaciones de este proveedor de identidades.
En Id. de usuario, seleccione sub.
En Nombre para mostrar, seleccione nombre.
En Nombre propio, use given_name.
En Apellidos, use family_name.
En Email, use el correo electrónico.
Seleccione Guardar.
Registro de usuarios
Inicie sesión en la consola de administración de BlokSec con la credencial proporcionada anteriormente.
Vaya a la aplicación Azure AD B2C que se creó anteriormente.
En la parte superior derecha, seleccione el icono de engranaje.
Seleccione Crear cuenta.
En Crear cuenta, escriba la información del usuario. Anote el nombre de la cuenta.
Seleccione Submit (Enviar).
El usuario recibirá un correo electrónico de registro de cuenta en la dirección de correo electrónico proporcionada. Indique al usuario que seleccione el vínculo de registro en el dispositivo móvil con la aplicación BlokSec yuID.
Creación de una directiva de flujo de usuario
Para obtener las instrucciones siguientes, asegúrese de que BlokSec es un nuevo proveedor de identidades OIDC (IdP).
En el inquilino de Azure AD B2C, en Directivas, seleccione Flujos de usuario.
Seleccione Nuevo flujo de usuario.
Seleccione Inscribirse e iniciar sesión en>Versión>Crear.
Escriba un nombre de directiva.
En la sección de proveedores de identidades, seleccione el proveedor de identidad de BlokSec que se ha creado.
En la cuenta local, seleccione Ninguno. Esta acción deshabilita el correo electrónico y la autenticación basada en contraseña.
Seleccione Ejecutar el flujo de usuario.
En el formulario, escriba la dirección URL de respuesta, como https://jwt.ms.
El explorador se redirige la página de inicio de sesión de BlokSec.
Escriba el nombre de cuenta del registro de usuario.
El usuario recibe una notificación de inserción en el dispositivo móvil con la aplicación BlokSec yuID.
El usuario abre la notificación y aparece el desafío de autenticación.
Si se acepta la autenticación, el explorador redirigirá al usuario a la URL de respuesta.
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.
Consulte Información general sobre flujos de usuario y directivas personalizadas
Creación de una clave de directiva
Almacene el secreto de cliente que anotó en el inquilino de Azure AD B2C. Para obtener las instrucciones siguientes, use el directorio con el inquilino de Azure AD B2C.
Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.
En la página Configuración del portal, Directorios + suscripciones, en la lista Nombre del directorio, busque su directorio Azure AD B2C.
Seleccione Cambiar.
En la esquina superior izquierda de Azure Portal, seleccione Todos los servicios.
Busque y seleccione Azure AD B2C.
En la página de introducción, seleccione Identity Experience Framework.
Seleccione Claves de directiva.
Seleccione Agregar.
En Opciones, elija Manual.
Escriba un Nombre para la clave de directiva. Por ejemplo, BlokSecAppSecret. El prefijo B2C_1A_ se agregará al nombre de la clave.
En Secreto, escriba el secreto de cliente que anotó.
En Uso de claves, seleccione Firma.
Seleccione Crear.
Configuración de BlokSec como proveedor de identidades
Para permitir que los usuarios inicien sesión mediante la identidad descentralizada de BlokSec, defina BlokSec como proveedor de notificaciones. Esta acción garantiza que Azure AD B2C se comunique con ella mediante un punto de conexión. Azure AD B2C usa notificaciones de punto de conexión para comprobar que los usuarios autentican la identidad mediante una prueba biométrica, como la huella digital o el examen facial.
Puede definir BlokSec como proveedor de notificaciones. Para ello, agregue el elemento ClaimsProvider en el archivo de extensión de la directiva.
Abra TrustFrameworkExtensions.xml.
Busque el elemento ClaimsProviders. Si el elemento no aparece, agréguelo debajo del elemento raíz.
Para agregar un nuevo ClaimsProvider:
XML
<ClaimsProvider><Domain>bloksec</Domain><DisplayName>BlokSec</DisplayName><TechnicalProfiles><TechnicalProfileId="BlokSec-OpenIdConnect"><DisplayName>BlokSec</DisplayName><Description>Login with your BlokSec decentriled identity</Description><ProtocolName="OpenIdConnect" /><Metadata><ItemKey="METADATA">https://api.bloksec.io/oidc/.well-known/openid-configuration</Item><!-- Update the Client ID below to the BlokSec Application ID --><ItemKey="client_id">00000000-0000-0000-0000-000000000000</Item><ItemKey="response_types">code</Item><ItemKey="scope">openid profile email</Item><ItemKey="response_mode">form_post</Item><ItemKey="HttpBinding">POST</Item><ItemKey="UsePolicyInRedirectUri">false</Item><ItemKey="DiscoverMetadataByTokenIssuer">true</Item><ItemKey="ValidTokenIssuerPrefixes">https://api.bloksec.io/oidc</Item></Metadata><CryptographicKeys><KeyId="client_secret"StorageReferenceId="B2C_1A_BlokSecAppSecret" /></CryptographicKeys><OutputClaims><OutputClaimClaimTypeReferenceId="issuerUserId"PartnerClaimType="sub" /><OutputClaimClaimTypeReferenceId="displayName"PartnerClaimType="name" /><OutputClaimClaimTypeReferenceId="givenName"PartnerClaimType="given_name" /><OutputClaimClaimTypeReferenceId="surName"PartnerClaimType="family_name" /><OutputClaimClaimTypeReferenceId="email"PartnerClaimType="email" /><OutputClaimClaimTypeReferenceId="authenticationSource"DefaultValue="socialIdpAuthentication"AlwaysUseDefaultValue="true" /><OutputClaimClaimTypeReferenceId="identityProvider"PartnerClaimType="iss" /></OutputClaims><OutputClaimsTransformations><OutputClaimsTransformationReferenceId="CreateRandomUPNUserName" /><OutputClaimsTransformationReferenceId="CreateUserPrincipalName" /><OutputClaimsTransformationReferenceId="CreateAlternativeSecurityId" /><OutputClaimsTransformationReferenceId="CreateSubjectClaimFromAlternativeSecurityId" /></OutputClaimsTransformations><UseTechnicalProfileForSessionManagementReferenceId="SM-SocialLogin" /></TechnicalProfile></TechnicalProfiles></ClaimsProvider>
Establezca client_id en el identificador de la aplicación desde el registro de aplicación.
Seleccione Guardar.
Adición de un recorrido del usuario
Siga las instrucciones siguientes si el proveedor de identidades está configurado, pero no en una página de inicio de sesión. Si no tiene un recorrido de usuario personalizado, copie un recorrido de usuario de plantilla.
Abra el archivo TrustFrameworkBase.xml en el paquete de inicio.
Localice y copie todo el contenido del elemento UserJourneys que incluye el id.= SignUpOrSignIn.
Abra TrustFrameworkExtensions.xml.
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 nombre del identificador de recorrido del usuario. Por ejemplo, id.=CustomSignUpSignIn.
Adición del proveedor de identidades a un recorrido del usuario
Si tiene un recorrido del usuario, agréguele el nuevo proveedor de identidades. En primer lugar, agregue un botón de inicio de sesión y, a continuación, vincúlelo a una acción, que es el perfil técnico que ha creado.
En el recorrido del usuario, busque el elemento del paso de orquestación que incluya Tipo=CombinedSignInAndSignUp o Tipo=ClaimsProviderSelection. Normalmente es el primer paso de orquestación. El elemento ClaimsProviderSelections contiene una lista de proveedores de identidades que se usan para iniciar sesión. El orden de los elementos determina 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 id. 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 con el proveedor de identidades:
Descubra cómo Id. externa de Microsoft Entra puede proporcionar experiencias de inicio de sesión seguras y sin problemas para los consumidores y clientes empresariales. Explore la creación de inquilinos, el registro de aplicaciones, la personalización de flujo y la seguridad de la cuenta.
Muestre las características de Microsoft Entra ID para modernizar las soluciones de identidad, implementar soluciones híbridas e implementar la gobernanza de identidades.