EmpresaPrimeros pasos

Gestionar proveedores de identidad

Configura proveedores de identidad (IdP) personalizados para el inicio de sesión único mediante SAML o OIDC, de modo que los usuarios de tu organización puedan autenticarse con sus credenciales corporativas existentes.

Nota:

La gestión de proveedores de identidad está disponible únicamente para los admins del plan Enterprise.

Configura un proveedor de identidad (IdP) personalizado para habilitar el inicio de sesión único (SSO) en tu organización. Cuando configuras un IdP, Bob te redirige a él para autenticarte cuando inicias sesión en IBM Bob desde la IDE, Bob Shell y Bob Web.

Puedes configurar proveedores de identidad SAML y OpenID Connect (OIDC) con Bob. Usa el protocolo que coincida con la plataforma de identidad de tu organización.

Compatibilidad de protocolos SSO

IBM Bob es compatible con los siguientes protocolos de SSO:

  • SAML (Security Assertion Markup Language)
  • OIDC (OpenID Connect)

Proveedores OIDC verificados

Aunque puedes usar otros proveedores OIDC que cumplan los requisitos de configuración y tokens, las siguientes plataformas están verificadas:

  • Auth0
  • Keycloak
  • Okta
  • PingOne

Añadir un proveedor de identidad

Añadir un IdP es un proceso en dos pasos. Primero configuras el IdP y lo guardas. Luego añades los dominios de correo electrónico que lo utilizan.

Paso 1: Configurar el proveedor de identidad

Ve a la página de administración de IBM Bob.

Selecciona la pestaña Authentication.

Haz clic en Add IdP. Introduce un nombre para el IdP. Selecciona el tipo de IdP: SAML o OIDC. Genera tus credenciales de service provider (SP).

Bob requiere una clave privada de SP y un certificado de SP para firmar las solicitudes de autenticación SAML. Debes generarlos tú mismo usando la herramienta de línea de comandos openssl.

Nota:

Si ya tienes un par de claves de SP y un certificado, salta al siguiente paso.

Ejecuta el siguiente comando para generar la clave privada de SP:

openssl genrsa -out sp_private_key.pem 2048

Luego ejecuta este comando para generar el certificado de SP a partir de la clave privada. Reemplaza los valores /CN, /O y /C con un nombre descriptivo del certificado, el nombre de tu organización y tu código de país de dos letras:

openssl req -new -x509 -key sp_private_key.pem -out sp_certificate.pem -days 365 -subj "/CN=Bob SAML SP/O=IBM/C=US"
Nota:

El archivo sp_certificate.pem también debe cargarse en tu IdP para que pueda verificar las firmas de las solicitudes de Bob.

Introduce los detalles de configuración del IdP. Revisa los requisitos específicos del protocolo en las siguientes secciones. Haz clic en Save.

El IdP se crea y aparece en la tabla de la pestaña Authentication.

Configuración SAML

SAML requiere los siguientes detalles de configuración:

Campos del identity provider — obtén estos de tu IdP:

  • idp_entity_id — el identificador único del IdP (por ejemplo, https://idp.example.com)
  • idp_sso_url — la URL de SSO donde Bob envía las solicitudes de autenticación
  • idp_certificate — el certificado X.509 codificado en PEM usado para verificar las respuestas SAML del IdP

Campos del service provider — usa los archivos generados en el paso anterior:

  • sp_private_key — el contenido de sp_private_key.pem
  • sp_certificate — el contenido de sp_certificate.pem

Campos opcionales:

  • idp_slo_url — la URL de Single Logout del IdP. Single Logout aún no está completamente implementado en Bob.

En la sección Attribute mapping, asigna los atributos de usuario del IdP a los campos de usuario de IBM Bob. El formato de asignación es nombre de atributo de Bob → nombre de atributo o URI del IdP. Consulta la configuración de tu IdP para los nombres de atributo correctos.

  • email (requerido) — la dirección de correo electrónico del usuario
  • name (opcional) — el nombre completo para mostrar del usuario
  • given_name (opcional) — el nombre del usuario
  • family_name (opcional) — el apellido del usuario
  • groups (opcional) — los grupos del usuario

Administrador del IdP: registro de un nuevo cliente OIDC

Antes de que un admin de instancia de Bob pueda configurar un registro de IdP OIDC en Bob, el administrador del IdP debe crear primero una aplicación OIDC (cliente) en el proveedor de identidad. Los valores generados en este paso son los que el admin de instancia de Bob introduce al añadir el IdP en Bob.

Tipo de aplicación y tipo de concesión

Crea una aplicación web (del lado del servidor / cliente confidencial) en tu proveedor de identidad y habilita el tipo de concesión Authorization Code. Bob utiliza exclusivamente el flujo Authorization Code — no selecciones Implicit, Device Code ni Client Credentials.

URI de redirección

Registra la siguiente URL de callback en la aplicación OIDC. La mayoría de los proveedores realizan una comparación exacta de la cadena, así que cópiala tal cual:

https://api.us-east.bob.ibm.com/authn/v1/auth/callback

Scopes que deben habilitarse en el cliente

ScopeFinalidadObligatorio
openidActiva el modo OIDC y devuelve un id_token
emailExpone la dirección de correo electrónico del usuario en el id_token o a través del endpoint userinfo
offline_accessOtorga un refresh_token junto con el access tokenSí para la mayoría de los proveedores

Bob requiere que haya un refresh_token en cada respuesta de intercambio de código de autorización. Si tu proveedor emite refresh tokens mediante un mecanismo diferente (por ejemplo, un scope específico del proveedor, o de forma incondicional en cada intercambio de código), configúralo en consecuencia — pero asegúrate de que el cliente tenga permiso para recibir refresh tokens. Si no se devuelve ningún refresh_token, el inicio de sesión se cancela.

Método de autenticación en el token endpoint

Configura el método de autenticación en el token endpoint de la aplicación OIDC como client_secret_post. Bob envía client_id y client_secret como parámetros en el cuerpo del formulario en cada solicitud de token. client_secret_basic, private_key_jwt y none no están aceptados.

Configuración de tokens

AjusteValor requerido
Formato del access tokenCualquiera (JWT u opaco — Bob no analiza directamente el access token del IdP)
ID tokenDebe emitirse en cada intercambio de código de autorización y en cada renovación de token
Algoritmo de firma del ID tokenRS256, ES256 o PS256
Rotación del refresh tokenPuedes usar la rotación de refresh token. Bob almacena el nuevo token en cada renovación. Si tu proveedor rota los refresh tokens, asegúrate de que el proveedor invalide el token anterior solo después de que Bob haya recibido el de reemplazo (comportamiento de rotación estándar, no de uso único sin ventana de gracia).

Valores que hay que entregar al admin de instancia de Bob

Una vez creada la aplicación cliente, entrega los siguientes valores al admin de instancia de Bob:

ValorDónde encontrarloCampo de configuración de Bob
Client IDPágina de credenciales de la aplicaciónclient_id
Client SecretPágina de credenciales de la aplicaciónclient_secret
URL del authorization endpointPágina de endpoints OIDC del proveedor o .well-known/openid-configurationauthorization_endpoint
URL del token endpointPágina de endpoints OIDC del proveedor o .well-known/openid-configurationtoken_endpoint
JWKS URIPágina de endpoints OIDC del proveedor o .well-known/openid-configurationjwks_uri
URL del issuerPágina de endpoints OIDC del proveedor o .well-known/openid-configurationissuer
URL del userinfo endpoint (opcional)Página de endpoints OIDC del proveedor o .well-known/openid-configurationuserinfo_endpoint
Consejo:

La mayoría de los proveedores publican todas las URLs de endpoint en https://<tu-dominio-de-proveedor>/.well-known/openid-configuration.

Configuración OIDC

Puedes usar el descubrimiento de proveedores OIDC. Haz clic en el botón Retrieve configuration para rellenar automáticamente los campos de endpoint desde el documento .well-known/openid-configuration de tu proveedor, o puedes introducir cada URL de endpoint manualmente.

OIDC requiere los siguientes detalles de configuración:

CampoRequeridoDescripción
client_idEl identificador de cliente registrado con tu proveedor de identidad.
client_secretEl secreto de cliente para la aplicación registrada. Bob lo almacena de forma segura y nunca lo devuelve en respuestas de API.
scopesLos scopes solicitados durante el flujo de autorización. Esta lista debe incluir openid. Normalmente también incluye email y el scope específico del proveedor utilizado para emitir un refresh token, como offline_access.
authorization_endpointLa URL de autorización HTTPS a la que Bob redirige a los usuarios para iniciar sesión.
token_endpointLa URL de token HTTPS utilizada para intercambiar el código de autorización por tokens.
jwks_uriLa URL HTTPS del JSON Web Key Set (JWKS) utilizado para verificar la firma de las respuestas id_token.
issuerNoEl identificador de emisor HTTPS para el proveedor de identidad.
promptNoEl valor prompt de OIDC reenviado a la solicitud de autorización.

OIDC no utiliza Attribute mapping. Bob lee el correo electrónico del usuario directamente del claim email en el id_token.

Ejemplo de configuración OIDC

{
  "authorization_endpoint": "https://corp.okta.com/oauth2/default/v1/authorize",
  "token_endpoint": "https://corp.okta.com/oauth2/default/v1/token",
  "issuer": "https://corp.okta.com/oauth2/default",
  "client_id": "0oa1b2c3d4e5f6g7h8i9",
  "client_secret": "super-secret-value",
  "scopes": ["openid", "email", "offline_access"]
}

Requisitos y limitaciones de OIDC

  • Bob requiere un refresh_token en la respuesta de intercambio del código de autorización. Si tu proveedor no devuelve uno, el inicio de sesión falla.
  • Para la mayoría de los proveedores, añadir offline_access a scopes es lo que activa la emisión del refresh token. Algunos proveedores usan un comportamiento diferente, así que consulta la documentación de tu proveedor.
  • El cierre de sesión de back-channel OIDC no está disponible.
  • Si tu proveedor cambia sus URLs de endpoint, actualiza la configuración del IdP en Bob.

Paso 2: Añadir filtros de dominio

Después de guardar el IdP, añade los dominios de correo electrónico que deben usarlo para la autenticación.

En la pestaña Authentication, localiza el IdP que acabas de crear y abre su configuración. En la sección Domain filters, añade los dominios de correo electrónico que deben usar este IdP. Los usuarios cuyas direcciones de correo coincidan con un dominio configurado serán redirigidos a este IdP al iniciar sesión. Guarda los cambios.

Nota:

Cada dominio de correo electrónico solo puede estar asociado a un IdP. Si un dominio ya está en uso por otro IdP, la configuración no se puede guardar hasta que se resuelva el conflicto. Cada dominio también debe verificarse antes de que se aplique el SSO. Consulta Verificar la propiedad del dominio.

Verificar la propiedad del dominio

IBM Bob requiere que verifiques que tu organización es propietaria de cada dominio antes de aplicar el SSO. La verificación se realiza añadiendo un registro TXT de DNS a tu dominio.

Ve a la página de administración de IBM Bob. Selecciona la pestaña Authentication. Selecciona el IdP que contiene el dominio que quieres verificar. En la sección Domain filters, localiza el dominio y copia el código de verificación que se muestra. En tu proveedor de DNS, añade un registro TXT al dominio con el siguiente formato:

bob-verify=<verification-code>

Sustituye verification-code por el código copiado de la sección Domain filters. Vuelve a la pestaña Authentication y haz clic en Check verification para el dominio.

El estado de verificación del dominio se actualiza a Verified cuando IBM Bob detecta correctamente el registro TXT. Los cambios en el DNS pueden tardar un tiempo en propagarse.

Eliminar un proveedor de identidad

Ve a la página de administración de IBM Bob. Selecciona la pestaña Authentication. Localiza el IdP que quieres eliminar y haz clic en Delete. En el diálogo de confirmación, haz clic en Confirm.

Advertencia:

Eliminar un IdP suprime la configuración de SSO para todos los dominios asociados. Los usuarios que dependían de ese IdP para autenticarse deberán iniciar sesión por otro método. Se muestra una advertencia si el IdP tiene dominios verificados.

¿Cómo es este tema?