OIDC プロバイダに関する問題のトラブルシューティング

このドキュメントでは、GKE Identity Service の OIDC と AzureAD ID プロバイダの問題に関するトラブルシューティングについて説明します。

証明書の形式が間違っている

この問題は、証明書の値に形式的なエラーがある場合に発生します。形式の問題は、base64 でエンコードされていない証明書の値や、base64 でエンコードされているが正しくない値に相当します。問題は、証明書がルート認証局によって署名されていない場合や、正しい形式の信頼チェーンが用意されていない場合にも発生する可能性があります。

エラー メッセージ

証明書の形式が正しくない場合に表示されるエラー メッセージの例を次に示します。

  • 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

  • 形式が正しくないか、base64 でエンコードされているが正しくない証明書: 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.)

  • 形式が正しくないか、base64 でエンコードされているが正しくない証明書: Failed fetching the Discovery URI "<Discovery-document URI>" with error: Unable to load TLS certificates.

解決策

問題は、次のいずれかの方法で解決できます。

  • ClientConfig で指定する証明書の値を、Base64 でエンコードされた文字列で PEM 形式の文字列にする。詳細については、CA 証明書をエンコードするをご覧ください。
  • プロバイダがルート認証局によって署名された証明書を使用しない場合は、証明書の信頼チェーンを使用して GKE Identity Service を構成する。詳細については、中間証明書をご覧ください。

証明書の値が間違っている

この問題は、証明書の値が一致していない場合に発生します。この場合、証明書の形式は正しいものの、サーバーと一致しません。また、構成に証明書がなかったことを示す場合もあります。

次のいずれかの状況に該当する場合、証明書の値は誤っていると見なされます。

  • ClientConfig で正しくない証明書の値が共有されている。サーバー証明書の issuer が構成済みの証明書の subject と一致しない場合、証明書の値は正しくありません。
  • ClientConfig の証明書が Base64 エンコードされた文字列ではない。
  • 中間証明書を使用してサーバー証明書を発行する場合に、証明書チェーンが用意されていない。

エラー メッセージ

証明書の値が一致しない場合に表示されるエラー メッセージの例を次に示します。

  • 証明書チェーンが完了していないか、サーバーと一致しない: SSL peer certificate was not OK. Details: SSL certificate problem: unable to get local issuer certificate

  • 証明書チェーンが完全でない(ルートから始まっていないか、連続していない無効な部分チェーンに相当する): Failed fetching the Discovery URI "<Discovery-document URI>" with error: The server's TLS certificate did not match expectations.

  • 証明書チェーンは有効だが、OIDC サーバーと一致しない: AIS was expecting the server to have a different certificate

  • 証明書チェーンは有効だが、OIDC サーバーと一致しない: Failed fetching the Discovery URI "<Discovery-document URI>" with error: The server's TLS certificate did not match expectations.

解決策

ClientConfig で指定する証明書の値には、ID プロバイダと一致する正しい形式の証明書チェーンを含める必要があります。証明書の形式とエンコード方法の詳細については、CA 証明書をエンコードするをご覧ください。