Gerenciamento de usuários
Gerencie o acesso de usuários ao IBM Bob on-premises usando o Keycloak como provedor de identidade, com federação LDAP ou Active Directory ou contas gerenciadas localmente.
O IBM Bob on-premises inclui um provedor de identidade Keycloak para autenticação e gerenciamento de acesso de usuários. Os usuários podem ser federados a partir de um ambiente LDAP ou Active Directory existente, ou criados diretamente no Keycloak. Independentemente de como são provisionados, os usuários devem ter uma função Bob apropriada atribuída antes de poderem acessar o serviço.
Visão geral
| Conceito | Descrição |
|---|---|
| Provedor de identidade | Keycloak — implantado e gerenciado pelo operador Bob. |
| Fontes de usuários | Os usuários podem ser criados diretamente no Keycloak ou federados a partir de um serviço LDAP ou Active Directory. |
| Autenticação | Os usuários se autenticam pelo Keycloak usando OpenID Connect (OIDC). O Keycloak emite um código de autorização de curta duração que o bob-authn troca por um token bearer do Bob. |
| Autorização | O acesso às capacidades do Bob é governado por funções atribuídas aos usuários dentro do Keycloak. |
| Superfície de configuração | A integração LDAP é gerenciada por meio do recurso personalizado BobLDAP usando o comando bobctl configure-idp. |
Tipos de diretório LDAP suportados
O Bob on-premises suporta qualquer serviço de diretório compatível com LDAPv3. O parâmetro vendor na configuração LDAP determina o template de provedor do Keycloak a ser usado, que define as configurações específicas do protocolo para o tipo de diretório selecionado.
Valor de vendor | Tipo de diretório |
|---|---|
other | OpenLDAP e outros serviços de diretório genéricos compatíveis com LDAPv3 |
ad | Microsoft Active Directory |
rhds | Red Hat Directory Server |
tivoli | IBM Security Directory Server (anteriormente Tivoli Directory Server) |
edirectory | NetIQ / Micro Focus eDirectory |
Arquitetura de autenticação e federação
Quando um usuário faz login, o Bob passa a solicitação para o Keycloak, que trata a autenticação. Todos os usuários se autenticam pelo Keycloak. A federação LDAP é opcional e ativa somente quando configurada.
- Federação LDAP habilitada: o Keycloak autentica os usuários diretamente no diretório LDAP. As senhas dos usuários permanecem no diretório LDAP e não são armazenadas no Keycloak.
- Federação LDAP desabilitada: o Keycloak autentica os usuários usando o repositório de usuários local do Keycloak.
Fluxo de autenticação
- O usuário insere as credenciais.
- O Keycloak autentica o usuário.
- O Keycloak emite um código de autorização de curta duração.
- O
bob-authntroca o código de autorização por um token bearer do Bob. - Todas as solicitações subsequentes de API usam o token emitido pelo Bob.
Comportamento de sincronização de usuários
O Bob on-premises suporta dois modos de sincronização, configurados por meio da configuração userSync.enabled na configuração LDAP:
| Modo | userSync.enabled | Comportamento |
|---|---|---|
| Sob demanda | false (padrão) | Os usuários são importados para o Keycloak somente quando fazem login com sucesso pela primeira vez, eliminando o requisito de uma varredura de diretório inicial. Essa opção é recomendada para ambientes de diretório muito grandes. |
| Sincronização antecipada (recomendado) | true | Quando um provedor LDAP é registrado, uma sincronização completa única importa todos os usuários do diretório. Após a importação inicial, o Keycloak sincroniza automaticamente as atualizações de usuários a cada cinco minutos. Essa abordagem garante que todos os usuários estejam imediatamente disponíveis, e as contas de administrador especificadas por meio de adminEmails podem ser provisionadas sem exigir que os usuários façam login primeiro. |
Sincronização sob demanda
Use este modo para diretórios muito grandes, onde importar todos os usuários imediatamente não é prático.
Durante a primeira tentativa de autenticação:
- O usuário é importado no Keycloak.
- O usuário é provisionado no Bob via SCIM.
- A primeira tentativa de login falha devido à latência de provisionamento.
- O usuário pode fazer login com sucesso após a conclusão do provisionamento.
Sincronização antecipada
Recomendada para a maioria das implantações. Todos os usuários ficam disponíveis imediatamente após a conclusão da sincronização e não precisam fazer login para serem provisionados.
O intervalo de sincronização está atualmente fixo em 5 minutos.
Sincronizando usuários com SCIM
O IBM Bob on-premises usa um plugin SCIM 2.0 personalizado incorporado no Keycloak para sincronizar contas de usuário entre o Keycloak e o Bob. O operador Bob configura essa integração automaticamente e nenhuma configuração adicional é necessária.
Como funciona a sincronização de usuários
Quando um evento de ciclo de vida de usuário ocorre no Keycloak, o plugin SCIM envia o evento correspondente ao serviço bob-admin. O Bob então atualiza o acesso e as informações de perfil do usuário com base no evento.
Essa sincronização se aplica a todos os usuários gerenciados pelo Keycloak, incluindo usuários federados via LDAP e usuários criados diretamente no console de administração do Keycloak.
| Evento de usuário | Ação do Bob |
|---|---|
| Usuário criado ou primeiro login | Provisiona o usuário e concede acesso ao Bob |
| Usuário atualizado | Sincroniza alterações de perfil |
| Usuário removido do LDAP | Revoga o acesso ao Bob mantendo os dados do usuário |
Remover um usuário do LDAP revoga o acesso ao Bob, mas não exclui os dados do usuário. Se o usuário for adicionado de volta ao diretório, o acesso é restaurado e o trabalho criado anteriormente permanece disponível.
Verificando a sincronização
O Bob não fornece atualmente uma condição de status ou verificação de integridade que confirme que a sincronização SCIM está ativa. Para verificar se o provisionamento está funcionando, crie ou importe um usuário de teste e confirme que o usuário aparece no Bob após o primeiro login ou após a importação inicial do userSync.
Gerenciando funções e membros de grupos
O IBM Bob usa grupos do Keycloak para controlar as funções dos usuários. O operador Bob cria e mantém automaticamente os grupos necessários e os mapeamentos de função.
| Grupo Keycloak | Função Keycloak concedida | Quem é adicionado |
|---|---|---|
bob-users | bob-user | Todos os usuários autenticados são adicionados automaticamente no primeiro login bem-sucedido por meio do grupo padrão do realm. |
bob-admins | bob-admin | Os usuários especificados no campo adminEmails da configuração BobLDAP são atribuídos automaticamente pelo operador durante cada ciclo de reconciliação. |
Acesso de administrador
Todos os usuários autenticados recebem acesso padrão ao Bob.
Para conceder privilégios de administrador:
- Adicione o endereço de e-mail do usuário em
adminEmailsno arquivo de configuração do IDP. - Aplique a alteração:
./bobctl configure-idp --config my-idp.yaml
Para revogar privilégios de administrador:
- Remova o endereço de e-mail de
adminEmails. - Reaplique a configuração.
bobctl configure-idp é o único método suportado para gerenciar o acesso de administrador do Bob. Adicionar um endereço de e-mail em adminEmails não cria uma conta de usuário — o usuário já deve existir no Keycloak por meio de federação LDAP ou criação direta de usuário.
Administrando o Keycloak
O Bob on-premises inclui uma implantação do Keycloak que fornece serviços de gerenciamento de identidade e acesso. A administração do Keycloak é separada da administração do Bob, e cada interface serve a um propósito diferente.
Interfaces de administração
| Interface | URL | Propósito |
|---|---|---|
| Console de administração do Keycloak | https://bob-keycloak.<namespace>.<ingress-domain> | Gerenciar infraestrutura do Keycloak, usuários, grupos, provedores de identidade e configurações de federação. |
| Bob Admin UI | https://bob.<namespace>.<ingress-domain>/admin | Gerenciar usuários, funções, convites e configurações específicas de tenant do Bob. |
O operador Bob cria automaticamente ambas as rotas durante a instalação.
Os logs de atividade não estão disponíveis na Bob Admin UI nesta versão. Para acessar os logs de serviço, visualize os logs dos pods para o Serviço de autenticação, Serviço de autorização e Serviço de administração diretamente do console do OpenShift Container Platform ou CLI. Para mais informações, consulte Limitações conhecidas.
Acessando o console de administração do Keycloak
Para localizar a rota do Keycloak no seu cluster, execute:
oc get route -n <instance-namespace> | grep keycloakRecupere as credenciais iniciais do administrador do secret do cluster:
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 && echoNão modifique o secret bob-keycloak-initial-admin. O operador Bob usa essas credenciais durante a reconciliação. Alterar as credenciais armazenadas pode interromper as funcionalidades gerenciadas pelo operador.
Se você precisar de uma conta de administrador pessoal, faça login com as credenciais iniciais do administrador e crie um usuário separado no realm master para tarefas administrativas contínuas.
Após o login, mude para o realm bob usando o seletor de realm no canto superior esquerdo do console do Keycloak. Todos os usuários, grupos, provedores de identidade e provedores de federação do Bob são gerenciados a partir deste realm.
Entendendo os realms do Keycloak
Um realm é um domínio de gerenciamento isolado que contém seus próprios usuários, credenciais, funções, grupos e provedores de identidade.
O Bob on-premises usa dois realms:
| Realm | Propósito |
|---|---|
| master | Reservado para administração do Keycloak. Os usuários neste realm podem administrar o Keycloak, mas não podem acessar o Bob. |
| bob | Contém todos os usuários, grupos, provedores de federação LDAP e clientes de aplicação do Bob. O operador Bob cria e gerencia este realm. |
Os dois realms são completamente independentes. Membros ou privilégios em um realm não concedem acesso a recursos no outro.
O realm bob é gerenciado pelo operador. Você pode fazer alterações diretas pelo console do Keycloak, mas o suporte IBM se limita a resolver problemas que afetam a autenticação e o acesso ao Bob.
Gerenciando provedores de federação LDAP
Os provedores de federação LDAP configurados por meio de bobctl configure-idp ou do recurso personalizado BobLDAP são visíveis na seção User Federation do realm bob.
O operador Bob registra os provedores LDAP quando são criados. Alterações subsequentes feitas diretamente no console do Keycloak não são sincronizadas de volta para o recurso personalizado BobLDAP correspondente.
Para um gerenciamento de configuração consistente, use o recurso personalizado BobLDAP e os comandos bobctl configure-idp sempre que possível.
Considerações de segurança
Siga estas recomendações ao administrar o Keycloak:
- Restrinja o acesso ao secret
bob-keycloak-initial-adminaos administradores do cluster. - Realize tarefas de administração do Bob no realm
bob. - Use o realm
mastersomente para administração da infraestrutura do Keycloak. - Não crie realms ou clientes adicionais a menos que seja explicitamente necessário e suportado.
- Gerencie a federação LDAP por meio dos recursos
BobLDAPem vez de editar diretamente as configurações do provedor no console do Keycloak. - Trate a conta de administrador inicial como uma conta de emergência ou bootstrap, e use contas de administrador pessoais dedicadas para a administração rotineira.
Gerenciando usuários diretos no Keycloak
Os usuários podem ser criados e gerenciados diretamente no Keycloak sem integrar um diretório LDAP. Essa abordagem é adequada para ambientes de prova de conceito, implantações de pequena escala ou instalações onde um servidor LDAP não está disponível. Para ambientes de produção que já utilizam um serviço de diretório corporativo, a federação LDAP é a abordagem recomendada.
Adicionando um usuário
Para criar um usuário local, abra a seção Users no realm bob e crie uma nova conta de usuário. Após salvar o usuário, configure uma senha e atribua as associações de grupo apropriadas:
- Adicione o usuário ao grupo bob-users para conceder acesso padrão.
- Adicione o usuário aos grupos bob-users e bob-admins para conceder acesso administrativo.
Gerenciando senhas
As senhas para usuários gerenciados localmente são administradas pelo console de administração do Keycloak. Abra o registro do usuário e use a aba Credentials para criar, atualizar ou redefinir a senha do usuário.
Removendo um usuário
Para remover o acesso de um usuário, abra o registro do usuário no console de administração do Keycloak e exclua ou desabilite a conta. Os usuários desabilitados não conseguem mais se autenticar, enquanto suas informações de usuário permanecem disponíveis no sistema.