Risolvere i problemi relativi al provider OIDC nei cluster membri del parco risorse

Questo documento fornisce indicazioni per la risoluzione dei problemi relativi ai provider di identità OIDC e AzureAD durante l'accesso ai cluster membri del parco risorse. Questo documento si applica solo ai tipi di cluster supportati.

Formattazione errata del certificato

Questo problema si verifica quando il valore del certificato presenta errori di formattazione. I problemi di formattazione possono corrispondere a valori di certificato non codificati in base64 e a valori codificati in base64 ma errati. Il problema può verificarsi anche se il certificato non è firmato da un'autorità di certificazione radice o se non viene fornita una catena di attendibilità formattata correttamente.

Messaggi di errore

Di seguito sono riportati alcuni esempi di messaggi di errore per gli scenari in cui il formato del certificato non è corretto:

  • Certificato non codificato in base64: Failed creating HTTP client to fetch the Discovery URI "<Discovery-document URI>" with error: Unable to decode data field, the value should be Base64 encoded

  • Certificato non formattato correttamente o codificato in base64 ma errato: Unable to connect to 'https://example.com', encountered the following error: Problem with the SSL CA cert (path? access rights?). Details: error setting certificate verify locations: CAfile: /tmp/example.pem CApath: none (The certificate could not be read, this is most likely because it's empty or contains a formatting error. Please check your configuration.)

  • Certificato non formattato correttamente o codificato in base64 ma errato: Failed fetching the Discovery URI "<Discovery-document URI>" with error: Unable to load TLS certificates.

Soluzione

Puoi risolvere i problemi in uno dei seguenti modi:

  • Il valore del certificato fornito in ClientConfig deve essere una stringa con codifica base64 e una stringa con formato PEM. Per ulteriori informazioni, vedi Codificare i certificati CA.
  • Se il tuo provider non utilizza certificati firmati da un'autorità di certificazione radice, devi configurare una catena di attendibilità dei certificati. Per ulteriori informazioni, vedi Certificati intermedi.

Valore del certificato errato

Questo problema si verifica quando il certificato ha un valore non corrispondente. In questo caso, la formattazione dei certificati è corretta, ma non corrisponde al server. Può anche indicare che non sono presenti certificati nella configurazione.

Un valore del certificato può essere considerato errato in uno dei seguenti scenari:

  • In ClientConfig viene condiviso un valore del certificato errato. Un valore del certificato è errato quando l'issuer del certificato del server non corrisponde al subject del certificato configurato.
  • Il certificato in ClientConfig non è una stringa con codifica base64.
  • La catena di certificati non viene fornita quando i certificati intermedi vengono utilizzati per emettere il certificato del server.

Messaggio di errore

Di seguito sono riportati alcuni esempi di messaggi di errore per gli scenari in cui il valore del certificato non corrisponde:

  • La catena di certificati non è completa o non corrisponde al server: SSL peer certificate was not OK. Details: SSL certificate problem: unable to get local issuer certificate

  • La catena di certificati non è completa (corrisponde a una catena parziale non valida che non inizia dalla radice o non è contigua): Failed fetching the Discovery URI "<Discovery-document URI>" with error: The server's TLS certificate did not match expectations.

  • La catena di certificati è valida, ma non corrisponde al server OIDC: AIS was expecting the server to have a different certificate

  • La catena di certificati è valida, ma non corrisponde al server OIDC: Failed fetching the Discovery URI "<Discovery-document URI>" with error: The server's TLS certificate did not match expectations.

Soluzione

Il valore del certificato fornito in ClientConfig deve includere una catena di certificati formattata correttamente che corrisponda al provider di identità. Per ulteriori informazioni su come formattare e codificare i certificati, vedi Codificare i certificati CA.

I comandi kubectl non riescono quando si utilizza un file kubeconfig generato dal comando gcloud anthos auth login

Quando utilizzi il comando gcloud anthos auth login con OIDC sui computer Windows per generare un file kubeconfig per l'accesso al cluster, i comandi kubectl potrebbero non riuscire con il seguente messaggio di errore: The command line is too long. Questo problema si verifica in modo specifico sui sistemi Windows e non influisce sui computer Linux che utilizzano lo stesso file kubeconfig. La causa sottostante è correlata alle dimensioni del token di autenticazione generato da Azure Active Directory (Azure AD) quando un utente appartiene a un numero elevato di gruppi (circa 70-200 gruppi, a seconda della lunghezza dei nomi dei gruppi).

Questo token di grandi dimensioni causa l'esecuzione dei comandi kubectl perché supera la lunghezza massima della riga di comando consentita da Windows, ovvero 8191 caratteri.

Messaggio di errore

$ kubectl --kubeconfig test-kubeconfig.yml get nodes

The command line is too long.
The command line is too long.
E0102 11:02:29.115256 24320 memcache.go:265] couldn't get current server API group list: Get "https://10.35.0.86:443/api?timeout=32s": getting credentials: exec: executable gcloud failed with exit code 1
The command line is too long.
E0102 11:02:29.350238 24320 memcache.go:265] couldn't get current server API group list: Get "https://10.35.0.86:443/api?timeout=32s": getting credentials: exec: executable gcloud failed with exit code 1
The command line is too long.
E0102 11:02:30.062811 24320 memcache.go:265] couldn't get current server API group list: Get "https://10.35.0.86:443/api?timeout=32s": getting credentials: exec: executable gcloud failed with exit code 1
Unable to connect to the server: getting credentials: exec: executable gcloud failed with exit code 1

Soluzione

Per risolvere il problema, segui questi passaggi:

  • Esegui l'upgrade alla versione 1.28 o successive

    Se utilizzi una versione precedente alla 1.28, ti consigliamo di eseguire l'upgrade alla versione supportata.

  • Riduci le iscrizioni ai gruppi dell'utente interessato

    La riduzione del numero di gruppi a cui appartiene l'utente che esegue l'autenticazione al di sotto della soglia problematica (circa 70 gruppi) può risolvere il problema.

  • Aumenta le iscrizioni ai gruppi dell'utente interessato

    La funzionalità Microsoft Entra ID ha un limite per il numero di gruppi emessi in un token. Avere tra 70 e 200 iscrizioni ai gruppi potrebbe causare problemi di autenticazione. Tuttavia, puoi risolvere i problemi del provider di identità aumentando il numero di iscrizioni ai gruppi oltre questo limite. A causa del comportamento di questo limite, Azure AD omette i gruppi dall'id_token quando il numero di iscrizioni diventa eccessivamente elevato, impedendo che la riga di comando diventi troppo lunga e risolvendo così i problemi del provider di identità. Consulta la documentazione di Microsoft Entra ID per confermare il limite e per ulteriori dettagli.