Risolvere i problemi relativi al server LDAP
Questo documento fornisce indicazioni per la risoluzione dei problemi relativi al server LDAP in GKE Identity Service.
Problema di connettività
Quando configuri GKE Identity Service, potresti riscontrare problemi di connettività prilikom prilikom di provare a connetterti a un server LDAP. Il problema di connettività può verificarsi anche quando il certificato utilizzato per identificare il server LDAP non corrisponde a quello indicato in ClientConfig.
Messaggio di errore
I seguenti messaggi sono applicabili agli errori che si verificano durante l'esecuzione del 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: Unauthorized
ERROR: Configuring Anthos authentication failed
Soluzione
Puoi risolvere i problemi in uno dei seguenti modi:
- Se GKE Identity Service non riesce a connettersi al server LDAP, procedi nel seguente modo:
- Per verificare se il traffico di rete può raggiungere il server LDAP (provider di identità) dal cluster, utilizza
telnet
,nc
o 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 servizio GKE Identity. - Se il comando va a buon fine, il pod del servizio di identità GKE dovrebbe connettersi al server LDAP.
- Se il comando non va a buon fine, indica che si è verificato un problema di connettività di rete. Per risolvere il problema di connessione, devi controllare le impostazioni di rete o contattare l'amministratore di rete.
- 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 tuo server LDAP per i seguenti casi:
- Utilizzi LDAP con TLS.
- Esegui l'autenticazione in 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 per il servizio GKE Identity.
- Le credenziali utente che hai fornito non esistono sul server LDAP.
- Il server LDAP non è attivo.
Messaggio di errore
I seguenti messaggi sono applicabili agli errori che si verificano durante l'esecuzione del 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: Unauthorized
ERROR: Configuring Anthos authentication failed
Soluzione
In qualità di amministratore del cluster, esamina i log di GKE Identity Service e risolvi i problemi di autenticazione nei seguenti modi:
Can't contact LDAP server
: per saperne di più su come risolvere il problema, consulta la sezione relativa ai problemi di connettività.Attempting to bind as the LDAP service account
: GKE Identity Service sta tentando di connettersi al server LDAP utilizzando le credenziali del servizio account fornite in ClientConfig. L'assenza di questo messaggio di log indica un problema di connettività.Successfully completed BIND as LDAP service account
: GKE Identity Service è 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 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
eloginAttribute
siano configurati correttamente per recuperare gli utenti. Questo messaggio viene visualizzato solo quando la modalità di dettaglio dei log è 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
: GKE Identity Service sta tentando di verificare le credenziali utente.Successfully completed LDAP authentication
: l'autenticazione utente è riuscita. L'assenza di questo messaggio di log indica credenziali non valide.
Il token di autenticazione è scaduto
Nonostante un accesso riuscito, potresti riscontrare problemi relativi alla scadenza del token di autenticazione.
Messaggio di errore
ERROR: You must be logged in to the server (Unauthorized)
Soluzione
Per risolvere il problema, accedi di nuovo al server.
Problema con l'associazione del ruolo RBAC all'utente o al gruppo
Questo problema si verifica quando l'autenticazione è riuscita, ma l'autorizzazione non va a buon fine
a causa dell'assenza di ruoli RBAC associati all'utente o al gruppo. Ad esempio, questo
problema persiste quando provi a emettere il comando kubectl get pods
.
Messaggio di errore
Error from server (Forbidden): <SERVICE or PODS> is forbidden: <MORE DETAILS>
Soluzione
Per risolvere il problema:
- Accedi al server LDAP per visualizzare i gruppi dell'utente di destinazione.
- Verifica che il ruolo e le associazioni di ruoli Kubernetes siano definiti correttamente e corrispondano ai valori nella directory LDAP. Un amministratore può aiutarti a verificare le associazioni dei ruoli tramite l'usurpazione di identità utente di Kubernetes.
- Aggiorna l'associazione dei ruoli in modo che il gruppo dell'utente di destinazione sia autorizzato a eseguire l'azione richiesta.
- Verifica che i valori di
baseDN
e, facoltativamente, difilter
eidentifierAttribute
per i gruppi siano corretti. GKE Identity Service utilizza la configurazione del gruppo di questi campi per eseguire query su tutti i gruppi di cui l'utente fa parte. SebaseDN
è vuoto, non vengono forniti gruppi al server dell'API Kubernetes. In questo caso non vengono registrati messaggi. SebaseDN
non è vuoto, GKE Identity Service esegue una query sul database per i gruppi dell'utente.- Se la query va a buon fine, i gruppi vengono forniti al server dell'API Kubernetes.
- Se la query non va a buon fine, i gruppi non vengono forniti al server dell'API Kubernetes. In questo caso, devi correggere i valori di configurazione
baseDN
efilter
per i gruppi.
L'utente appartiene a più gruppi
Questo problema si verifica quando un utente fa parte di 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 non c'è corrispondenza tra la versione di GKE Identity Service e la versione di Google Cloud CLI installata.
Messaggio di errore
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.
Soluzione
Devi eseguire l'upgrade dell'utilità gcloud e di Identity Service for GKE alla versione più recente disponibile.
Codice di stato di autenticazione non riuscita 401
Questo problema si verifica quando il server 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: Unauthorized
ERROR: Configuring Anthos authentication failed
Soluzione
Puoi risolvere il problema in uno dei seguenti modi:
- Controlla se il pod GKE Identity Service è nello stato
running
utilizzando il seguente comando:kubectl get pods -l k8s-app=ais -n anthos-identity-service --kubeconfig USER_CLUSTER_KUBECONFIG
- Controlla la configurazione LDAP in ClientConfig utilizzando il seguente comando:
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 sulla registrazione, consulta Utilizzare la registrazione e il monitoraggio per i componenti di sistema.