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

ConceitoDescrição
Provedor de identidadeKeycloak — implantado e gerenciado pelo operador Bob.
Fontes de usuáriosOs usuários podem ser criados diretamente no Keycloak ou federados a partir de um serviço LDAP ou Active Directory.
AutenticaçãoOs 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çãoO acesso às capacidades do Bob é governado por funções atribuídas aos usuários dentro do Keycloak.
Superfície de configuraçãoA 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 vendorTipo de diretório
otherOpenLDAP e outros serviços de diretório genéricos compatíveis com LDAPv3
adMicrosoft Active Directory
rhdsRed Hat Directory Server
tivoliIBM Security Directory Server (anteriormente Tivoli Directory Server)
edirectoryNetIQ / 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

  1. O usuário insere as credenciais.
  2. O Keycloak autentica o usuário.
  3. O Keycloak emite um código de autorização de curta duração.
  4. O bob-authn troca o código de autorização por um token bearer do Bob.
  5. 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:

ModouserSync.enabledComportamento
Sob demandafalse (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)trueQuando 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:

  1. O usuário é importado no Keycloak.
  2. O usuário é provisionado no Bob via SCIM.
  3. A primeira tentativa de login falha devido à latência de provisionamento.
  4. 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.

Nota:

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árioAção do Bob
Usuário criado ou primeiro loginProvisiona o usuário e concede acesso ao Bob
Usuário atualizadoSincroniza alterações de perfil
Usuário removido do LDAPRevoga o acesso ao Bob mantendo os dados do usuário
Nota:

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 KeycloakFunção Keycloak concedidaQuem é adicionado
bob-usersbob-userTodos os usuários autenticados são adicionados automaticamente no primeiro login bem-sucedido por meio do grupo padrão do realm.
bob-adminsbob-adminOs 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:

  1. Adicione o endereço de e-mail do usuário em adminEmails no arquivo de configuração do IDP.
  2. Aplique a alteração: ./bobctl configure-idp --config my-idp.yaml

Para revogar privilégios de administrador:

  1. Remova o endereço de e-mail de adminEmails.
  2. Reaplique a configuração.
Importante:

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

InterfaceURLPropósito
Console de administração do Keycloakhttps://bob-keycloak.<namespace>.<ingress-domain>Gerenciar infraestrutura do Keycloak, usuários, grupos, provedores de identidade e configurações de federação.
Bob Admin UIhttps://bob.<namespace>.<ingress-domain>/adminGerenciar 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.

Nota:

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 keycloak

Recupere 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 && echo
oc get secret bob-keycloak-initial-admin \
  -n <instance-namespace> \
  -o jsonpath='{.data.password}' | base64 -d && echo
Aviso:

Nã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:

RealmPropósito
masterReservado para administração do Keycloak. Os usuários neste realm podem administrar o Keycloak, mas não podem acessar o Bob.
bobConté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.

Nota:

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-admin aos administradores do cluster.
  • Realize tarefas de administração do Bob no realm bob.
  • Use o realm master somente 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 BobLDAP em 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.

Como está este tópico?