Questo documento fornisce indicazioni per la risoluzione dei problemi del server LDAP durante l'accesso ai cluster membri del parco risorse. Questo documento si applica solo ai tipi di cluster supportati.
Problema di connettività
Potresti riscontrare problemi di connettività durante il tentativo di connessione a un server LDAP. Il problema di connettività può verificarsi anche quando il certificato utilizzato per identificare il server LDAP non corrisponde al certificato menzionato in ClientConfig.
Messaggio di errore
I seguenti messaggi si applicano agli errori che si verificano quando viene eseguito il comando gcloud anthos auth login.
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: UnauthorizedERROR: Configuring Anthos authentication failed
Soluzione
Puoi risolvere i problemi in uno dei seguenti modi:
- Se il cluster non riesce a connettersi al server LDAP:
- Per verificare se il traffico di rete può raggiungere il server LDAP (provider di identità) dal cluster, utilizza
telnet,nco un comando simile per connetterti al server LDAP. Per connetterti al server LDAP, devi eseguire il comando nel nodo o nel pod in cui è in esecuzione il pod del servizio di identità. - Se il comando ha esito positivo, il pod del servizio di identità dovrebbe connettersi al server LDAP.
- Se il comando non riesce, significa che si è verificato un problema di connettività di rete. Devi controllare le impostazioni della rete o contattare l'amministratore di rete per risolvere il problema di connessione.
- Per verificare se il traffico di rete può raggiungere il server LDAP (provider di identità) dal cluster, utilizza
- Verifica che il certificato pubblico nella configurazione sia formattato correttamente e corrisponda al server LDAP nei seguenti casi:
- Utilizzi LDAP con TLS.
- Esegui l'autenticazione a LDAP con un account di servizio. Utilizzi un certificato per identificare l'account di servizio con il server LDAP.
Problema di autenticazione
Si verifica un problema di autenticazione in uno dei seguenti casi:
- Le impostazioni del provider LDAP non sono configurate correttamente in ClientConfig.
- Le credenziali utente che hai fornito non esistono sul server LDAP.
- Il server LDAP non è attivo.
Messaggio di errore
I seguenti messaggi si applicano agli errori che si verificano quando viene eseguito il comando gcloud anthos auth login.
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: UnauthorizedERROR: Configuring Anthos authentication failed
Soluzione
In qualità di amministratore del cluster, esamina i log dei pod del servizio di identità e risolvi i problemi di autenticazione nei seguenti modi:
Can't contact LDAP server: per ulteriori informazioni su come risolvere questo problema, consulta Problemi di connettività.Attempting to bind as the LDAP service account: il cluster sta tentando di connettersi al server LDAP utilizzando le credenziali dell'account di servizio fornite in ClientConfig. L'assenza di questo messaggio di log indica che si è verificato un problema di connettività.Successfully completed BIND as LDAP service account: il cluster è in grado di connettersi correttamente al server LDAP e di utilizzare il relativo account di servizio per l'autenticazione degli utenti. L'assenza di questo messaggio di log indica che si è verificato un problema di configurazione.Successfully found an entry for the user in the database: esiste una voce utente sul server LDAP. Ciò implica che i campibaseDN,filter, eloginAttributesono configurati correttamente per recuperare gli utenti. Questo messaggio viene visualizzato solo quando la verbosità del logging è superiore al livello predefinito. Per ulteriori informazioni sull'attivazione dei log, consulta Attivare il log di debug.Attempting to BIND as the user to verify their credentials: il cluster sta tentando di verificare le credenziali utente.Successfully completed LDAP authentication: l'autenticazione utente è riuscita. L'assenza di questo messaggio di log indica che le credenziali non sono valide.
Il token di autenticazione è scaduto
Nonostante l'accesso sia riuscito, potresti riscontrare problemi dovuti alla scadenza del token di autenticazione.
Messaggio di errore
ERROR: You must be logged in to the server (Unauthorized)
Soluzione
Puoi risolvere il problema accedendo di nuovo al server.
Problema con l'associazione di ruoli RBAC all'utente o al gruppo
Questo problema si verifica quando l'autenticazione ha esito positivo, ma l'autorizzazione non riesce a causa dell'assenza di un'associazione di ruoli RBAC all'utente o al gruppo. Ad esempio, questo problema persiste quando provi a eseguire il comando kubectl get pods.
Messaggio di errore
Error from server (Forbidden): <SERVICE or PODS> is forbidden: <MORE DETAILS>
Soluzione
Puoi risolvere il problema procedendo nel seguente modo:
- Accedi al server LDAP per visualizzare i gruppi dell'utente di destinazione.
- Verifica se il ruolo e le associazioni di ruoli di Kubernetes sono definiti correttamente e corrispondono ai valori nella directory LDAP. Un amministratore può aiutarti a verificare le associazioni di ruoli tramite l'impersonificazione dell'utente Kubernetes User Impersonation.
- Aggiorna l'associazione di ruoli in modo che il gruppo dell'utente di destinazione sia autorizzato a eseguire l'azione richiesta.
- Verifica che i valori di
baseDNe, facoltativamente,filtereidentifierAttributeper i gruppi siano corretti. Il cluster utilizza la configurazione del gruppo di questi campi per eseguire una query su tutti i gruppi a cui appartiene l'utente. SebaseDNè vuoto, non vengono forniti gruppi al server dell'API Kubernetes. In questo caso, non vengono registrati messaggi. SebaseDNnon è vuoto, il cluster esegue una query sul database per i gruppi dell'utente.- Se la query ha esito positivo, i gruppi vengono forniti al server dell'API Kubernetes.
- Se la query non ha esito positivo, i gruppi non vengono forniti al server dell'API Kubernetes. In questo caso, devi correggere i valori di configurazione
baseDNefilterper i gruppi.
L'utente appartiene a più gruppi
Questo problema si verifica quando un utente appartiene a più gruppi.
Messaggio di errore
could not obtain an STS token: STS token exceeds allowed size limit. Possibility of too many groups associated with the credentials provided.
Soluzione
In qualità di amministratore del cluster, devi configurare il campo filter in ClientConfig per ridurre il numero di gruppi restituiti dalla query al server LDAP.
Problema di compatibilità della versione
Questo problema si verifica quando si verifica una mancata corrispondenza della compatibilità della versione tra il componente del servizio di identità e la versione di Google Cloud CLI installata.
Messaggio di errore
unable to parse STS Token Responsecould 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.
Soluzione
Devi eseguire l'upgrade dell'utilità gcloud e del cluster all'ultima versione disponibile.
Codice di stato 401 per l'autenticazione non riuscita
Questo problema si verifica quando il server dell'API Kubernetes non è in grado di autenticare il servizio e restituisce un codice di errore 401.
Messaggio di errore
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: UnauthorizedERROR: Configuring Anthos authentication failed
Soluzione
Puoi risolvere questo problema in uno dei seguenti modi:
- Controlla se il pod del servizio di identità è nello stato
runningutilizzando il comando seguente:kubectl get pods -l k8s-app=ais -n anthos-identity-service --kubeconfig USER_CLUSTER_KUBECONFIG - Controlla la configurazione LDAP in ClientConfig utilizzando il comando seguente:
kubectl get clientconfig -n kube-public -o jsonpath='{.items[].spec.authentication[].ldap}' --kubeconfig USER_CLUSTER_KUBECONFIG - Esamina i log per informazioni dettagliate sull'errore. Per ulteriori informazioni sul logging, consulta Utilizzare il logging e il monitoraggio per i componenti di sistema.