Solução de problemas no servidor LDAP
Neste documento, fornecemos orientações de solução de problemas para servidores LDAP no GKE Identity Service.
Problema de conectividade
Ao configurar o GKE Identity Service, é possível encontrar problemas de conectividade ao tentar se conectar a um servidor LDAP. O problema de conectividade também pode ocorrer quando o certificado usado para identificar o servidor LDAP não corresponde ao certificado mencionado na ClientConfig.
Mensagem de erro
As mensagens a seguir são aplicáveis aos erros que ocorrem quando o
comando gcloud anthos auth login
é executado.
ERROR: LDAP login failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token": failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized
ERROR: Configuring Anthos authentication failed
Solução
É possível resolver os problemas de uma das seguintes maneiras:
- Se o GKE Identity Service não puder se conectar ao servidor LDAP, faça o seguinte:
- Para verificar se o tráfego de rede pode chegar ao servidor LDAP (provedor de identidade) do cluster, use
telnet
,nc
ou outro comando semelhante para se conectar ao servidor LDAP. Para se conectar ao servidor LDAP, execute o comando no nó ou pod em que o GKE Identity Service está em execução. - Se o comando for bem-sucedido, o pod do GKE Identity Service se conectará ao servidor LDAP.
- Se o comando falhar, isso indica que há um problema com a conectividade de rede. Você precisa verificar suas configurações de rede ou entrar em contato com o administrador da rede para resolver o problema de conexão.
- Para verificar se o tráfego de rede pode chegar ao servidor LDAP (provedor de identidade) do cluster, use
- Verifique se o certificado público na configuração está formatado corretamente e corresponde ao servidor LDAP nos seguintes casos:
- Você usa o LDAP com TLS.
- A autenticação no LDAP é feita com uma conta de serviço. Use um certificado para identificar a conta de serviço no servidor LDAP.
Problema de autenticação
Um problema de autenticação ocorre em um dos seguintes casos:
- As configurações do provedor LDAP estão definidas incorretamente no ClientConfig do GKE Identity Service.
- As credenciais de usuário fornecidas não existem no servidor LDAP.
- O servidor LDAP está indisponível.
Mensagem de erro
As mensagens a seguir são aplicáveis aos erros que ocorrem quando o comando gcloud anthos auth login
é executado.
ERROR: LDAP login failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token": failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized
ERROR: Configuring Anthos authentication failed
Solução
Como administrador do cluster, revise os registros do GKE Identity Service e resolva os problemas de autenticação das seguintes maneiras:
Can't contact LDAP server
: para mais informações sobre como resolver esse problema, consulte Problemas de conectividade.Attempting to bind as the LDAP service account
: o GKE Identity Service está tentando se conectar ao servidor LDAP usando as credenciais da conta de serviço fornecidas na ClientConfig. A ausência desta mensagem de registro indica que há um problema de conectividade.Successfully completed BIND as LDAP service account
: o GKE Identity Service consegue se conectar ao servidor LDAP e usar a conta de serviço para autenticação do usuário. A ausência dessa mensagem de registro indica um problema de configuração.Successfully found an entry for the user in the database
: há uma entrada de usuário no servidor LDAP. Isso significa que os camposbaseDN
,filter
eloginAttribute
estão configurados corretamente para recuperar usuários. Essa mensagem aparece apenas quando o detalhamento da geração de registros está acima do nível padrão. Para saber mais sobre como ativar os registros, consulte Ativar o registro de depuração.Attempting to BIND as the user to verify their credentials
: o GKE Identity Service está tentando verificar as credenciais do usuário.Successfully completed LDAP authentication
: a autenticação do usuário foi bem-sucedida. A ausência dessa mensagem de registro indica credenciais inválidas.
O token de autenticação expirou
Apesar de um login bem-sucedido, você pode ter problemas em que o token de autenticação expirou.
Mensagem de erro
ERROR: You must be logged in to the server (Unauthorized)
Solução
Para resolver o problema, faça login novamente no servidor.
Problema com a vinculação de papel do RBAC ao usuário ou grupo
Esse problema ocorre quando a autenticação é bem-sucedida, mas a autorização falha
devido à ausência de vinculações de papéis do RBAC ao usuário ou grupo. Por exemplo, esse
problema persiste quando você tenta executar o comando kubectl get pods
.
Mensagem de erro
Error from server (Forbidden): <SERVICE or PODS> is forbidden: <MORE DETAILS>
Solução
Faça o seguinte para resolver o problema:
- Faça login no seu servidor LDAP para visualizar os grupos do usuário de destino.
- Verifique se o papel e as vinculações de papéis do Kubernetes estão definidos corretamente e correspondem aos valores no diretório LDAP. Um administrador pode ajudar a verificar as vinculações de papéis por meio da representação do usuário do Kubernetes.
- Atualize a vinculação do papel para que o grupo do usuário de destino tenha autorização para realizar a ação necessária.
- Verifique se os valores de
baseDN
e, opcionalmente,filter
eidentifierAttribute
para os grupos estão corretos. O GKE Identity Service usa a configuração de grupo desses campos para consultar todos os grupos a que o usuário pertence. SebaseDN
estiver vazio, nenhum grupo será fornecido ao servidor da API Kubernetes. Nenhuma mensagem é registrada nesse caso. SebaseDN
não estiver vazio, o GKE Identity Service consultará o banco de dados para os grupos do usuário.- Se a consulta for bem-sucedida, os grupos serão fornecidos ao servidor da API Kubernetes.
- Se a consulta não for bem-sucedida, os grupos não serão fornecidos ao servidor da API Kubernetes. Nesse caso, você precisa corrigir os valores de configuração
baseDN
efilter
para grupos.
O usuário pertence a vários grupos
Esse problema ocorre quando um usuário pertence a vários grupos.
Mensagem de erro
could not obtain an STS token: STS token exceeds allowed size limit. Possibility of too many groups associated with the credentials provided.
Solução
Como administrador do cluster, você precisa configurar o campo filter
em ClientConfig para reduzir o número de grupos retornados pela consulta ao servidor LDAP.
Problema de compatibilidade de versão
Esse problema ocorre quando há uma incompatibilidade de compatibilidade de versão entre o GKE Identity Service e a versão instalada da CLI do Google Cloud.
Mensagem de erro
unable to parse STS Token Response
could not obtain an STS token: JSON parse error: The request was malformed.
could not obtain an STS token: Grant type must confirm that the request is intended for a token exchange.
could not obtain an STS token: Requested token type must correspond to an access token.
could not obtain an STS token: Subject token type must be a valid token type supported for token exchange.
Solução
Você precisa fazer upgrade do utilitário gcloud e do GKE Identity Service para a versão mais recente disponível.
Código de status de falha na autenticação 401
Esse problema ocorre quando o servidor da API Kubernetes não consegue autenticar o serviço e retorna um código de erro 401.
Mensagem de erro
ERROR: LDAP login failed: STSToken() failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token": DialContext() failed: podEndpoint() failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized
ERROR: Configuring Anthos authentication failed
Solução
Resolva esse problema de uma das seguintes maneiras:
- Verifique se o pod do GKE Identity Service está no estado
running
usando o seguinte comando:kubectl get pods -l k8s-app=ais -n anthos-identity-service --kubeconfig USER_CLUSTER_KUBECONFIG
- Verifique a configuração do LDAP em ClientConfig usando o seguinte comando:
kubectl get clientconfig -n kube-public -o jsonpath='{.items[].spec.authentication[].ldap}' --kubeconfig USER_CLUSTER_KUBECONFIG
- Revise os registros para acessar informações detalhadas sobre o erro. Para mais informações sobre a geração de registros, consulte Como usar a geração de registros e o monitoramento de componentes do sistema.