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 証明書をエンコードするをご覧ください。