Compartir a través de


Tutorial: Configurar Azure Active Directory B2C con BlokSec para la autenticación sin contraseña

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".

Para más información, vaya a bloksec.com: BlokSec Technologies Inc.

Descripción del escenario

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.

Diagrama del flujo de registro e inicio de sesión en la implementación de la solución BlokSec.

  1. 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.
  2. Azure AD B2C redirige al usuario al enrutador de identidad descentralizada BlokSec mediante el flujo de código de autorización de OIDC.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. Se concede o se deniega acceso al usuario.

Habilitación de BlokSec

  1. Vaya a bloksec.com y seleccione Solicitar un inquilino de demostración.
  2. En el campo del mensaje, especifique que desea llevar a cabo una integración con Azure AD B2C.
  3. Descargue e instale la aplicación móvil BlokSec yuID gratuita.
  4. Cuando esté preparado el inquilino de demostración, recibirá un correo electrónico.
  5. 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.

Prerrequisitos

Para empezar, necesitará lo siguiente:

Tutorial: Creación de flujos de usuario y directivas personalizadas en Azure AD B2C

Creación de un registro de aplicación en BlokSec

En el correo electrónico de registro de la cuenta de BlokSec, busque el vínculo a la consola de administración de BlokSec.

  1. Inicie sesión en la consola de administración de BlokSec.
  2. En el panel principal, seleccione Agregar aplicación > Crear personalizada.
  3. En Nombre, escriba Azure AD B2C o un nombre de aplicación.
  4. En Tipo de SSO, seleccione OIDC.
  5. En URI de logotipo, escriba un vínculo a la imagen del logotipo.
  6. 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.
  7. 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.
  8. Seleccione la aplicación de Azure AD B2C creada para abrir la configuración de la aplicación.
  9. Seleccione Generate App Secret.

Más información: Enviar una solicitud de cierre de sesión.

Nota

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.

  1. Inicie sesión en Azure Portal como un administrador global del inquilino de Azure AD B2C.
  2. Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.
  3. En la página Configuración del portal, Directorios + suscripciones, en la lista Nombre del directorio, busque su directorio Azure AD B2C.
  4. Seleccione Cambiar.
  5. En la esquina superior izquierda de Azure Portal, seleccione Todos los servicios.
  6. Busque y seleccione Azure AD B2C.
  7. Vaya a Panel>Azure Active Directory B2C>Proveedores de identidad.
  8. Seleccione Nuevo proveedor de OpenID Connect.
  9. Seleccione Agregar.

Configuración de un proveedor de identidades

  1. Seleccione Tipo de proveedor de identidades > OpenID Connect.
  2. En Nombre, escriba BlokSec yuID Passwordless u otro nombre.
  3. En Dirección URL de metadatos, escriba https://api.bloksec.io/oidc/.well-known/openid-configuration.
  4. En IDV de cliente, escriba el identificador de la aplicación desde la interfaz de usuario de administrador de BlokSec.
  5. En Secreto de cliente, escriba el secreto de aplicación desde la interfaz de usuario de administrador de BlokSec.
  6. En Ámbito, seleccione Perfil de correo electrónico de OpenID.
  7. En Tipo de respuesta, seleccione Código.
  8. En Domain hint, seleccione yuID.
  9. Seleccione Aceptar.
  10. Seleccione Asignar las notificaciones de este proveedor de identidades.
  11. En Id. de usuario, seleccione sub.
  12. En Nombre para mostrar, seleccione nombre.
  13. En Nombre propio, use given_name.
  14. En Apellidos, use family_name.
  15. En Email, use el correo electrónico.
  16. Seleccione Guardar.

Registro de usuarios

  1. Inicie sesión en la consola de administración de BlokSec con la credencial proporcionada anteriormente.
  2. Vaya a la aplicación Azure AD B2C que se creó anteriormente.
  3. En la parte superior derecha, seleccione el icono de engranaje.
  4. Seleccione Crear cuenta.
  5. En Crear cuenta, escriba la información del usuario. Anote el nombre de la cuenta.
  6. 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).

  1. En el inquilino de Azure AD B2C, en Directivas, seleccione Flujos de usuario.
  2. Seleccione Nuevo flujo de usuario.
  3. Seleccione Inscribirse e iniciar sesión en>Versión>Crear.
  4. Escriba un nombre de directiva.
  5. En la sección de proveedores de identidades, seleccione el proveedor de identidad de BlokSec que se ha creado.
  6. En la cuenta local, seleccione Ninguno. Esta acción deshabilita el correo electrónico y la autenticación basada en contraseña.
  7. Seleccione Ejecutar el flujo de usuario.
  8. En el formulario, escriba la dirección URL de respuesta, como https://jwt.ms.
  9. El explorador se redirige la página de inicio de sesión de BlokSec.
  10. Escriba el nombre de cuenta del registro de usuario.
  11. El usuario recibe una notificación de inserción en el dispositivo móvil con la aplicación BlokSec yuID.
  12. El usuario abre la notificación y aparece el desafío de autenticación.
  13. 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.

  1. Inicie sesión en Azure Portal.
  2. Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.
  3. En la página Configuración del portal, Directorios + suscripciones, en la lista Nombre del directorio, busque su directorio Azure AD B2C.
  4. Seleccione Cambiar.
  5. En la esquina superior izquierda de Azure Portal, seleccione Todos los servicios.
  6. Busque y seleccione Azure AD B2C.
  7. En la página de introducción, seleccione Identity Experience Framework.
  8. Seleccione Claves de directiva.
  9. Seleccione Agregar.
  10. En Opciones, elija Manual.
  11. Escriba un Nombre para la clave de directiva. Por ejemplo, BlokSecAppSecret. El prefijo B2C_1A_ se agregará al nombre de la clave.
  12. En Secreto, escriba el secreto de cliente que anotó.
  13. En Uso de claves, seleccione Firma.
  14. 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.

  1. Abra TrustFrameworkExtensions.xml.

  2. Busque el elemento ClaimsProviders. Si el elemento no aparece, agréguelo debajo del elemento raíz.

  3. Para agregar un nuevo ClaimsProvider:

    <ClaimsProvider>
      <Domain>bloksec</Domain>
      <DisplayName>BlokSec</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="BlokSec-OpenIdConnect">
          <DisplayName>BlokSec</DisplayName>
          <Description>Login with your BlokSec decentriled identity</Description>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://api.bloksec.io/oidc/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the BlokSec Application ID -->
            <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile email</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <Item Key="ValidTokenIssuerPrefixes">https://api.bloksec.io/oidc</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_BlokSecAppSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Establezca client_id en el identificador de la aplicación desde el registro de aplicación.

  5. 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.

  1. Abra el archivo TrustFrameworkBase.xml en el paquete de inicio.
  2. Localice y copie todo el contenido del elemento UserJourneys que incluye el id.= SignUpOrSignIn.
  3. Abra TrustFrameworkExtensions.xml.
  4. Busque el elemento UserJourneys. Si el elemento no existe, agréguelo.
  5. Pegue todo el contenido del elemento UserJourney que ha copiado como elemento secundario del elemento UserJourneys.
  6. 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.

  1. 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.
  2. Agregue un elemento XML ClaimsProviderSelection.
  3. Establezca el valor de TargetClaimsExchangeId en un nombre descriptivo.
  4. En el paso de orquestación siguiente, agregue un elemento ClaimsExchange.
  5. Establezca el id. en el valor del id. de intercambio de notificaciones de destino.
  6. 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:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="BlokSecExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="BlokSecExchange" TechnicalProfileReferenceId="BlokSec-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.

  1. Busque el elemento DefaultUserJourney en el usuario de confianza.
  2. 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 CustomSignUpOrSignIn, ReferenceId está establecido en CustomSignUpOrSignIn:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Carga de la directiva personalizada

Para obtener las instrucciones siguientes, use el directorio con el inquilino de Azure AD B2C.

  1. Inicie sesión en Azure Portal.
  2. En la barra de herramientas del portal, seleccione Directorios y suscripciones.
  3. En la página Configuración del portal, Directorios y suscripciones, en la lista Nombre del directorio, busque su directorio Azure AD B2C.
  4. Seleccione Cambiar.
  5. En Azure Portal, busque y seleccione Azure AD B2C.
  6. En Directivas, seleccione Identity Experience Framework.
  7. Seleccione Cargar directiva personalizada.
  8. Cargue los dos archivos de directivas que ha cambiado, por el siguiente orden:
  • La directiva de extensión, por ejemplo TrustFrameworkExtensions.xml.
  • A continuación, la directiva de usuario de confianza, por ejemplo SignUpSignIn.xml.

Prueba de la directiva personalizada

  1. Seleccione la directiva de usuarios de confianza, por ejemplo B2C_1A_signup_signin.
  2. En Aplicación, seleccione la aplicación web que registró en el paso 1.
  3. La dirección URL de respuesta aparece como https://jwt.ms.
  4. Seleccione Ejecutar ahora.
  5. En la página de registro o de inicio de sesión, seleccione Google para iniciar sesión con la cuenta de Google.
  6. El explorador se redirige a https://jwt.ms. Consulte el contenido del token devuelto por Azure AD B2C.

Más información: Tutorial: Registro de una aplicación web en Azure Active Directory B2C

Pasos siguientes