Resolver problemas do provedor OIDC
Neste documento, fornecemos orientações para resolver problemas com o provedor de identidade do OIDC e AzureAD no GKE Identity Service.
Formatação incorreta do certificado
Esse problema ocorre quando o valor do certificado tem erros de formatação. Os problemas de formatação podem corresponder a valores de certificado não codificados em base64 e valores não codificados, mas incorretos. O problema também pode surgir se o certificado não tiver sido assinado por uma autoridade de certificação raiz ou se uma cadeia de confiança formatada corretamente não for fornecida.
Mensagens de erro
Os exemplos a seguir são de mensagens de erro para cenários em que o formato do certificado está incorreto:
Certificado não codificado em 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
Certificado que não está formatado corretamente ou codificado em base64, mas incorreto:
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.)
Certificado que não está formatado corretamente ou codificado em base64, mas incorreto:
Failed fetching the Discovery URI "<Discovery-document URI>" with error: Unable to load TLS certificates.
Solução
É possível resolver os problemas de uma das seguintes maneiras:
- O valor do certificado fornecido em ClientConfig deve ser uma string codificada em base64 e uma string formatada em PEM. Para mais informações, consulte Codificar certificados de CA.
- Se o provedor não usar certificados assinados por uma autoridade de certificação raiz, será necessário configurar o GKE Identity Service com uma cadeia de confiança de certificado. Para mais informações, consulte Certificados intermediários.
Valor de certificado incorreto
Esse problema ocorre quando o certificado tem um valor incompatível. Nesse caso, a formatação dos certificados está correta, mas eles não correspondem ao servidor. Isso também pode indicar que não há certificados na configuração.
Um valor de certificado pode ser considerado incorreto em qualquer um dos seguintes cenários:
- Um valor de certificado incorreto é compartilhado no ClientConfig. Um valor de certificado está incorreto quando o
issuer
do certificado do servidor não corresponde aosubject
do certificado configurado. - O certificado em ClientConfig não é uma string codificada em base64.
- A cadeia de certificados não é fornecida quando certificados intermediários são usados para emitir o certificado do servidor.
Mensagem de erro
Os exemplos a seguir são de mensagens de erro para cenários em que há uma incompatibilidade no valor do certificado:
A cadeia de certificados não está completa ou não corresponde ao servidor:
SSL peer certificate was not OK. Details: SSL certificate problem: unable to get local issuer certificate
A cadeia de certificados não está completa (corresponde a uma cadeia parcial inválida que não começa na raiz ou não é contígua):
Failed fetching the Discovery URI "<Discovery-document URI>" with error: The server's TLS certificate did not match expectations.
A cadeia de certificados é válida, mas não corresponde ao servidor OIDC:
AIS was expecting the server to have a different certificate
A cadeia de certificados é válida, mas não corresponde ao servidor OIDC:
Failed fetching the Discovery URI "<Discovery-document URI>" with error: The server's TLS certificate did not match expectations.
Solução
O valor do certificado fornecido no ClientConfig precisa incluir uma cadeia de certificados formatada corretamente que corresponda ao provedor de identidade. Para mais informações sobre como formatar e codificar certificados, consulte Codificar certificados de CA.