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
| Concepto | Descripción |
|---|---|
| Proveedor de identidad | Keycloak — desplegado y gestionado por el operador de Bob. |
| Fuentes de usuarios | Los usuarios pueden crearse directamente en Keycloak o federarse desde un servicio LDAP o Active Directory. |
| Autenticación | Los 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ón | El acceso a las funcionalidades de Bob está gobernado por los roles asignados a los usuarios dentro de Keycloak. |
| Superficie de configuración | La 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 vendor | Tipo de directorio |
|---|---|
other | OpenLDAP y otros servicios de directorio genéricos compatibles con LDAPv3 |
ad | Microsoft Active Directory |
rhds | Red Hat Directory Server |
tivoli | IBM Security Directory Server (anteriormente Tivoli Directory Server) |
edirectory | NetIQ / 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
- El usuario introduce sus credenciales.
- Keycloak autentica al usuario.
- Keycloak emite un código de autorización de corta duración.
bob-authnintercambia el código de autorización por un token bearer de Bob.- 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:
| Modo | userSync.enabled | Comportamiento |
|---|---|---|
| Bajo demanda | false (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) | true | Cuando 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:
- El usuario se importa en Keycloak.
- El usuario se aprovisiona en Bob a través de SCIM.
- El primer intento de inicio de sesión falla debido a la latencia de aprovisionamiento.
- 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.
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 usuario | Acción de Bob |
|---|---|
| Usuario creado o primer inicio de sesión | Aprovisiona el usuario y concede acceso a Bob |
| Usuario actualizado | Sincroniza los cambios de perfil |
| Usuario eliminado de LDAP | Revoca el acceso a Bob manteniendo los datos del usuario |
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 Keycloak | Rol de Keycloak concedido | Quién se añade |
|---|---|---|
bob-users | bob-user | Todos 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-admins | bob-admin | Los 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:
- Añade la dirección de correo electrónico del usuario a
adminEmailsen el archivo de configuración del IDP. - Aplica el cambio:
./bobctl configure-idp --config my-idp.yaml
Para revocar los privilegios de administrador:
- Elimina la dirección de correo electrónico de
adminEmails. - Vuelve a aplicar la configuración.
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
| Interfaz | URL | Propósito |
|---|---|---|
| Consola de administración de Keycloak | https://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 Bob | https://bob.<namespace>.<ingress-domain>/admin | Gestiona usuarios, roles, invitaciones y ajustes específicos del tenant de Bob. |
El operador de Bob crea automáticamente ambas rutas durante la instalación.
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 keycloakRecupera 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 && echooc get secret bob-keycloak-initial-admin \
-n <instance-namespace> \
-o jsonpath='{.data.password}' | base64 -d && echoNo 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:
| Realm | Propósito |
|---|---|
| master | Reservado para la administración de Keycloak. Los usuarios en este realm pueden administrar Keycloak pero no pueden acceder a Bob. |
| bob | Contiene 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.
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-admina los administradores del clúster. - Realiza las tareas de administración de Bob en el realm
bob. - Usa el realm
mastersolo 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
BobLDAPen 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.