Gestión de usuarios

Gestiona el acceso de usuarios para IBM Bob on-premises usando Keycloak como proveedor de identidad, con federación LDAP o Active Directory o cuentas gestionadas localmente.

IBM Bob on-premises incluye un proveedor de identidad Keycloak para la autenticación de usuarios y la gestión del acceso. Los usuarios pueden federarse desde un entorno LDAP o Active Directory existente, o crearse directamente en Keycloak. Independientemente de cómo se aprovisionen, los usuarios deben tener asignado un rol de Bob adecuado antes de poder acceder al servicio.

Descripción general

ConceptoDescripción
Proveedor de identidadKeycloak — desplegado y gestionado por el operador de Bob.
Fuentes de usuariosLos usuarios pueden crearse directamente en Keycloak o federarse desde un servicio LDAP o Active Directory.
AutenticaciónLos usuarios se autentican a través de Keycloak usando OpenID Connect (OIDC). Keycloak emite un código de autorización de corta duración que bob-authn intercambia por un token bearer de Bob.
AutorizaciónEl acceso a las funcionalidades de Bob está gobernado por los roles asignados a los usuarios dentro de Keycloak.
Superficie de configuraciónLa integración LDAP se gestiona a través del recurso personalizado BobLDAP usando el comando bobctl configure-idp.

Tipos de directorio LDAP compatibles

Bob on-premises es compatible con cualquier servicio de directorio conforme a LDAPv3. El parámetro vendor en la configuración LDAP determina la plantilla del proveedor de Keycloak a usar, que define la configuración específica del protocolo para el tipo de directorio seleccionado.

Valor de vendorTipo de directorio
otherOpenLDAP y otros servicios de directorio genéricos compatibles con LDAPv3
adMicrosoft Active Directory
rhdsRed Hat Directory Server
tivoliIBM Security Directory Server (anteriormente Tivoli Directory Server)
edirectoryNetIQ / Micro Focus eDirectory

Arquitectura de autenticación y federación

Cuando un usuario inicia sesión, Bob pasa la solicitud a Keycloak, que gestiona la autenticación. Todos los usuarios se autentican a través de Keycloak. La federación LDAP es opcional y solo está activa cuando está configurada.

  • Federación LDAP habilitada: Keycloak autentica a los usuarios directamente contra el directorio LDAP. Las contraseñas de los usuarios permanecen en el directorio LDAP y no se almacenan en Keycloak.
  • Federación LDAP deshabilitada: Keycloak autentica a los usuarios usando el almacén de usuarios local de Keycloak.

Flujo de autenticación

  1. El usuario introduce sus credenciales.
  2. Keycloak autentica al usuario.
  3. Keycloak emite un código de autorización de corta duración.
  4. bob-authn intercambia el código de autorización por un token bearer de Bob.
  5. Todas las solicitudes de API posteriores usan el token emitido por Bob.

Comportamiento de sincronización de usuarios

Bob on-premises admite dos modos de sincronización, configurados a través del ajuste userSync.enabled en la configuración LDAP:

ModouserSync.enabledComportamiento
Bajo demandafalse (predeterminado)Los usuarios se importan en Keycloak solo cuando inician sesión correctamente por primera vez, eliminando el requisito de un escaneo previo del directorio. Esta opción se recomienda para entornos de directorio muy grandes.
Sincronización anticipada (recomendada)trueCuando se registra un proveedor LDAP, una sincronización completa puntual importa todos los usuarios del directorio. Después de la importación inicial, Keycloak sincroniza automáticamente las actualizaciones de usuarios cada cinco minutos. Este enfoque garantiza que todos los usuarios estén disponibles inmediatamente, y las cuentas de administrador especificadas mediante adminEmails pueden aprovisionarse sin requerir que los usuarios inicien sesión primero.

Sincronización bajo demanda

Usa este modo para directorios muy grandes donde importar todos los usuarios de forma inmediata no es práctico.

Durante el primer intento de autenticación:

  1. El usuario se importa en Keycloak.
  2. El usuario se aprovisiona en Bob a través de SCIM.
  3. El primer intento de inicio de sesión falla debido a la latencia de aprovisionamiento.
  4. El usuario puede iniciar sesión correctamente una vez completado el aprovisionamiento.

Sincronización anticipada

Recomendada para la mayoría de los despliegues. Todos los usuarios están disponibles inmediatamente después de que se completa la sincronización y no necesitan iniciar sesión para ser aprovisionados.

Nota:

El intervalo de sincronización está fijado actualmente en 5 minutos.

Sincronizar usuarios con SCIM

IBM Bob on-premises usa un plugin SCIM 2.0 personalizado integrado en Keycloak para sincronizar cuentas de usuario entre Keycloak y Bob. El operador de Bob configura esta integración automáticamente y no se requiere configuración adicional.

Cómo funciona la sincronización de usuarios

Cuando ocurre un evento de ciclo de vida de usuario en Keycloak, el plugin SCIM envía el evento correspondiente al servicio bob-admin. Bob entonces actualiza el acceso del usuario y la información del perfil basándose en el evento.

Esta sincronización se aplica a todos los usuarios gestionados por Keycloak, incluidos los usuarios federados por LDAP y los usuarios creados directamente en la consola de administración de Keycloak.

Evento de usuarioAcción de Bob
Usuario creado o primer inicio de sesiónAprovisiona el usuario y concede acceso a Bob
Usuario actualizadoSincroniza los cambios de perfil
Usuario eliminado de LDAPRevoca el acceso a Bob manteniendo los datos del usuario
Nota:

Eliminar un usuario de LDAP revoca su acceso a Bob pero no elimina sus datos. Si el usuario vuelve a añadirse al directorio, se restaura el acceso y el trabajo previamente creado sigue disponible.

Verificar la sincronización

Bob no proporciona actualmente una condición de estado ni una comprobación de salud que confirme que la sincronización SCIM está activa. Para verificar que el aprovisionamiento funciona, crea o importa un usuario de prueba y confirma que el usuario aparece en Bob después de su primer inicio de sesión o después de la importación inicial de userSync.

Gestionar roles y membresía de grupos

IBM Bob usa grupos de Keycloak para controlar los roles de usuario. El operador de Bob crea y mantiene automáticamente los grupos y las asignaciones de roles requeridos.

Grupo de KeycloakRol de Keycloak concedidoQuién se añade
bob-usersbob-userTodos los usuarios autenticados se añaden automáticamente en su primer inicio de sesión exitoso a través del grupo predeterminado del realm.
bob-adminsbob-adminLos usuarios especificados en el campo adminEmails de la configuración BobLDAP son asignados automáticamente por el operador durante cada ciclo de reconciliación.

Acceso de administrador

Todos los usuarios autenticados reciben acceso estándar a Bob.

Para conceder privilegios de administrador:

  1. Añade la dirección de correo electrónico del usuario a adminEmails en el archivo de configuración del IDP.
  2. Aplica el cambio: ./bobctl configure-idp --config my-idp.yaml

Para revocar los privilegios de administrador:

  1. Elimina la dirección de correo electrónico de adminEmails.
  2. Vuelve a aplicar la configuración.
Importante:

bobctl configure-idp es el único método compatible para gestionar el acceso de administrador de Bob. Añadir una dirección de correo electrónico a adminEmails no crea una cuenta de usuario: el usuario ya debe existir en Keycloak a través de la federación LDAP o la creación directa de usuarios.

Administrar Keycloak

Bob on-premises incluye un despliegue de Keycloak que proporciona servicios de identidad y gestión de acceso. La administración de Keycloak es independiente de la administración de Bob, y cada interfaz sirve a un propósito diferente.

Interfaces de administración

InterfazURLPropósito
Consola de administración de Keycloakhttps://bob-keycloak.<namespace>.<ingress-domain>Gestiona la infraestructura de Keycloak, usuarios, grupos, proveedores de identidad y ajustes de federación.
UI de administración de Bobhttps://bob.<namespace>.<ingress-domain>/adminGestiona usuarios, roles, invitaciones y ajustes específicos del tenant de Bob.

El operador de Bob crea automáticamente ambas rutas durante la instalación.

Nota:

Los registros de actividad no están disponibles en la UI de administración de Bob para esta versión. Para acceder a los registros del servicio, consulta los registros de los pods para el servicio de autenticación, servicio de autorización y servicio de administración directamente desde la consola o CLI de OpenShift Container Platform. Para más información, consulta Limitaciones conocidas.

Acceder a la consola de administración de Keycloak

Para encontrar la ruta de Keycloak en tu clúster, ejecuta:

oc get route -n <instance-namespace> | grep keycloak

Recupera las credenciales iniciales de administrador desde el secret del clúster:

oc get secret bob-keycloak-initial-admin \
  -n <instance-namespace> \
  -o jsonpath='{.data.username}' | base64 -d && echo
oc get secret bob-keycloak-initial-admin \
  -n <instance-namespace> \
  -o jsonpath='{.data.password}' | base64 -d && echo
Advertencia:

No modifiques el secret bob-keycloak-initial-admin. El operador de Bob usa estas credenciales durante la reconciliación. Cambiar las credenciales almacenadas puede interrumpir la funcionalidad gestionada por el operador.

Si necesitas una cuenta de administrador personal, inicia sesión con las credenciales iniciales de administrador y crea un usuario separado en el realm master para las tareas administrativas habituales.

Después de iniciar sesión, cambia al realm bob usando el selector de realm en la esquina superior izquierda de la consola de Keycloak. Todos los usuarios, grupos, proveedores de identidad y proveedores de federación de Bob se gestionan desde este realm.

Entender los realms de Keycloak

Un realm es un dominio de gestión aislado que contiene sus propios usuarios, credenciales, roles, grupos y proveedores de identidad.

Bob on-premises usa dos realms:

RealmPropósito
masterReservado para la administración de Keycloak. Los usuarios en este realm pueden administrar Keycloak pero no pueden acceder a Bob.
bobContiene todos los usuarios, grupos, proveedores de federación LDAP y clientes de aplicación de Bob. El operador de Bob crea y gestiona este realm.

Los dos realms son completamente independientes. La membresía o los privilegios en un realm no conceden acceso a los recursos del otro.

Nota:

El realm bob está gestionado por el operador. Puedes hacer cambios directos a través de la consola de Keycloak, pero el soporte de IBM se limita a resolver problemas que afecten a la autenticación y el acceso de Bob.

Gestionar proveedores de federación LDAP

Los proveedores de federación LDAP configurados a través de bobctl configure-idp o el recurso personalizado BobLDAP son visibles en la sección Federación de usuarios del realm bob.

El operador de Bob registra los proveedores LDAP cuando se crean. Los cambios posteriores realizados directamente en la consola de Keycloak no se sincronizan de vuelta al recurso personalizado BobLDAP correspondiente.

Para una gestión de configuración consistente, usa el recurso personalizado BobLDAP y los comandos bobctl configure-idp siempre que sea posible.

Consideraciones de seguridad

Sigue estas recomendaciones al administrar Keycloak:

  • Restringe el acceso al secret bob-keycloak-initial-admin a los administradores del clúster.
  • Realiza las tareas de administración de Bob en el realm bob.
  • Usa el realm master solo para la administración de infraestructura de Keycloak.
  • No crees realms o clientes adicionales a menos que sea explícitamente necesario y esté soportado.
  • Gestiona la federación LDAP a través de recursos BobLDAP en lugar de editar directamente la configuración del proveedor en la consola de Keycloak.
  • Trata la cuenta de administrador inicial como una cuenta de emergencia o de arranque, y usa cuentas de administrador personales dedicadas para la administración rutinaria.

Gestionar usuarios directos de Keycloak

Los usuarios pueden crearse y gestionarse directamente en Keycloak sin integrar un directorio LDAP. Este enfoque es adecuado para entornos de prueba de concepto, despliegues a pequeña escala o instalaciones donde no hay un servidor LDAP disponible. Para entornos de producción que ya usan un servicio de directorio corporativo, la federación LDAP es el enfoque recomendado.

Añadir un usuario

Para crear un usuario local, abre la sección Usuarios en el realm bob y crea una nueva cuenta de usuario. Después de guardar el usuario, configura una contraseña y asigna las membresías de grupo adecuadas:

  • Añade el usuario a bob-users para conceder acceso estándar.
  • Añade el usuario tanto a bob-users como a bob-admins para conceder acceso administrativo.

Gestionar contraseñas

Las contraseñas de los usuarios gestionados localmente se administran a través de la consola de administración de Keycloak. Abre el registro del usuario y usa la pestaña Credenciales para crear, actualizar o restablecer la contraseña del usuario.

Eliminar un usuario

Para revocar el acceso de un usuario, abre el registro del usuario en la consola de administración de Keycloak y elimina o deshabilita la cuenta. Los usuarios deshabilitados ya no pueden autenticarse, mientras que su información de usuario permanece disponible en el sistema.

¿Cómo es este tema?