Cómo usar B2CORE como proveedor de identidad de confianza (OIDC)

Aprenda a permitir que una aplicación de terceros ofrezca "Iniciar sesión con B2CORE" conectándose a B2CORE como proveedor de identidad de OpenID Connect (OIDC)

Esta guía está dirigida a brokers que desean que otra aplicación —su propio producto, la aplicación de un socio o una plataforma de identidad como Keycloak— permita a los usuarios iniciar sesión con su cuenta de B2CORE existente, en lugar de crear un inicio de sesión independiente.

B2CORE actúa como el proveedor de identidad de OpenID Connect (OIDC). Su aplicación (la parte usuaria) redirige a los usuarios a B2CORE para iniciar sesión y recibe un token que prueba quiénes son. Los usuarios se autentican una vez con su identidad de B2CORE; no crean una cuenta independiente para su aplicación.

Esto habilita el inicio de sesión único (SSO): los usuarios inician sesión una vez con su cuenta de B2CORE y obtienen acceso a su aplicación conectada sin un inicio de sesión independiente.

Esta función tiene una tarifa de configuración única. Póngase en contacto con su gestor de cuenta o nuestro equipo de soporte para confirmar la tarifa y la disponibilidad antes de solicitar acceso.

¿Es la opción adecuada?

Utilice esta opción si:

  • Tiene una aplicación web o móvil y desea ofrecer la opción "Iniciar sesión con B2CORE".
  • Desea federar B2CORE en otro sistema de identidad que ya utiliza (por ejemplo, añadir B2CORE como proveedor de identidad dentro de su propio realm de Keycloak).

Esto es OAuth2 / OIDC estándar: cualquier biblioteca principal o plataforma de identidad (Keycloak, Auth0, oidc-client-ts, openid-client, go-oidc, Passport, NextAuth y otras) puede utilizarlo, ya que todo lo que el cliente necesita se publica en un único documento de descubrimiento.

Lo que debe decidir antes de solicitar acceso

Tenga preparadas las respuestas a lo siguiente: su gestor de cuenta se las solicitará al registrar su aplicación:

ElementoLo que necesitamos
Nombre de la aplicaciónUn nombre corto y legible para las personas (para nuestros registros y cualquier pantalla de consentimiento).
URI de redirecciónLas URL exactas de su aplicación que deben recibir la respuesta de inicio de sesión, por ejemplo https://app.example.com/auth/callback. Deben ser exactas: el esquema, host, ruta y barra final son importantes.
URI de redirección posterior al cierre de sesiónDónde llegan los usuarios después de cerrar sesión, por ejemplo https://app.example.com/.
Scopesopenid siempre es obligatorio. Añada profile y email si necesita el nombre/correo electrónico del usuario. Añada offline_access solo si necesita tokens de actualización de larga duración.

Lo que recibirá de nuestra parte

Una vez que su aplicación esté registrada, recibirá:

  • Un Client ID (coincide con el nombre de la aplicación que proporcionó).

  • Un Client Secret, entregado a través de un canal seguro. Guárdelo como guardaría una contraseña de base de datos; no caduca, pero puede rotarse previa solicitud (consulte Información útil).

  • La URL de descubrimiento de OIDC para su instancia de B2CORE:

    https://<your-api-host>/srvsz/auth/hydra/v1/.well-known/openid-configuration

    Configure su biblioteca OIDC con esta única URL: descubrirá por sí sola los endpoints de autorización, token, userinfo, JWKS y cierre de sesión. No debería necesitar codificar de forma fija ninguno de los endpoints individuales.

Integración de su aplicación

  1. Configure su biblioteca de cliente OIDC con la URL de descubrimiento, el Client ID y el Client Secret indicados anteriormente.
  2. Utilice el flujo de Authorization Code con PKCE si su biblioteca lo admite (recomendado tanto para aplicaciones web como móviles).
  3. Solicite únicamente los scopes que realmente necesita: openid como mínimo, además de profile, email y offline_access según corresponda.
  4. Para obtener la información de perfil del usuario, llame al endpoint /userinfo (o decodifique el id_token) en lugar de intentar leer algo del access_token: el token de acceso es opaco y no está destinado a analizarse.
  5. Para cerrar la sesión de un usuario, rediríjalo al end_session_endpoint del documento de descubrimiento con id_token_hint y su post_logout_redirect_uri registrado.

¿Federar en lugar de integrar una aplicación personalizada? Si está añadiendo B2CORE como proveedor de identidad dentro de otra plataforma de identidad que utiliza (por ejemplo, Keycloak), en lugar de una aplicación personalizada, configúrelo como un proveedor genérico de OpenID Connect utilizando la misma URL de descubrimiento, Client ID y Client Secret indicados anteriormente; los pasos exactos dependen de su plataforma. Algunas plataformas utilizan una URL de callback fija vinculada a un alias de proveedor que usted elige (el endpoint de broker de Keycloak es un ejemplo); si la suya lo hace, acuerde ese alias con nosotros antes de que registremos sus URI de redirección, ya que deben coincidir exactamente.

Información útil

El cierre de sesión es solo local. Redirigir al endpoint de cierre de sesión finaliza la sesión de su aplicación; no cierra la sesión del usuario en B2CORE ni en ninguna otra aplicación en la que haya iniciado sesión. Actualmente no existe un "cierre de sesión en todas partes" entre aplicaciones.

Los tokens de actualización son de un solo uso. Cada actualización devuelve un nuevo token de actualización que sustituye al anterior; no reutilice uno antiguo después de actualizarlo.

Las URI de redirección deben coincidir exactamente. Añada a su solicitud inicial cualquier URL local/de desarrollo que necesite durante las pruebas; modificarlas más adelante implica volver a ponerse en contacto con nosotros.

Rotar su Client Secret requiere ponerse en contacto con el soporte de B2Broker. Hay un breve periodo entre el momento en que generamos el nuevo secreto y el momento en que actualiza su aplicación en el que los inicios de sesión con el secreto anterior fallarán; planifique el cambio para horas de poco tráfico.

Pruebas después de la configuración

  1. Active el flujo de inicio de sesión desde su aplicación (o su plataforma de identidad, si está federando) y confirme que redirige a través de la página de inicio de sesión de B2CORE.
  2. Inicie sesión con una cuenta real de B2CORE y confirme que vuelve a su aplicación, con la sesión iniciada y la información de usuario esperada.
  3. Si solicitó offline_access, pruebe una actualización de token.
  4. Pruebe el flujo de cierre de sesión y confirme que borra la sesión de su aplicación.

Preguntas / soporte

Póngase en contacto con su gestor de cuenta de B2Broker o canal de soporte con el nombre de su broker y los detalles de la aplicación de la tabla anterior.

Última actualización

En esta página