Probleme mit OIDC-Anbietern beheben

Dieses Dokument enthält eine Anleitung zur Fehlerbehebung bei Problemen mit OIDC und Azure AD-Identitätsanbieter im GKE Identity Service.

Falsche Formatierung des Zertifikats

Dieses Problem tritt auf, wenn der Zertifikatswert Formatierungsfehler aufweist. Formatierungsprobleme können Zertifikatswerten entsprechen, die nicht base64-codiert sind, und Werten, die base64-codiert, aber falsch sind. Das Problem kann auch auftreten, wenn das Zertifikat nicht von einer Root-Zertifizierungsstelle signiert wurde oder keine korrekt formatierte Vertrauenskette bereitgestellt wird.

Fehlermeldungen

Die folgenden Beispiele zeigen Fehlermeldungen für Szenarien, bei denen das Zertifikatsformat falsch ist:

  • Zertifikat, das nicht base64-codiert ist: 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

  • Zertifikat, das nicht richtig formatiert oder base64-codiert, aber falsch ist: 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.)

  • Zertifikat, das nicht richtig formatiert oder base64-codiert, aber falsch ist: Failed fetching the Discovery URI "<Discovery-document URI>" with error: Unable to load TLS certificates.

Lösung

Sie können die Probleme auf eine der folgenden Arten beheben:

  • Der Zertifikatwert, den Sie in ClientConfig angeben, muss ein base64-codierter String und ein PEM-formatierter String sein. Weitere Informationen finden Sie unter CA-Zertifikate codieren.
  • Wenn Ihr Anbieter keine Zertifikate verwendet, die von einer Root-Zertifizierungsstelle signiert wurden, müssen Sie GKE Identity Service mit einer Vertrauensstellungskette konfigurieren. Weitere Informationen finden Sie unter Zwischenzertifikate.

Falscher Zertifikatwert

Dieses Problem tritt auf, wenn der Wert des Zertifikats nicht übereinstimmt. In diesem Fall ist das Format der Zertifikate korrekt, sie stimmen jedoch nicht mit dem Server überein. Dies kann auch bedeuten, dass die Konfiguration keine Zertifikate enthielt.

Ein Zertifikatwert kann in folgenden Fällen als falsch angesehen werden:

  • In der ClientConfig wird ein falscher Zertifikatwert freigegeben. Ein Zertifikatwert ist falsch, wenn der issuer des Serverzertifikats nicht mit dem subject des konfigurierten Zertifikats übereinstimmt.
  • Das Zertifikat in der ClientConfig ist kein base64-codierter String.
  • Die Zertifikatskette wird nicht angegeben, wenn Zwischenzertifikate zur Ausstellung des Serverzertifikats verwendet werden.

Fehlermeldung

Die folgenden Beispiele zeigen Fehlermeldungen für Szenarien, bei denen der Zertifikatwert nicht übereinstimmt:

  • Die Zertifikatskette ist nicht vollständig oder stimmt nicht mit dem Server überein: SSL peer certificate was not OK. Details: SSL certificate problem: unable to get local issuer certificate

  • Die Zertifikatskette ist nicht vollständig (entspricht einer ungültigen Teilkette, die nicht im Stammverzeichnis beginnt oder nicht fortlaufend ist): Failed fetching the Discovery URI "<Discovery-document URI>" with error: The server's TLS certificate did not match expectations.

  • Die Zertifikatskette ist gültig, stimmt aber nicht mit dem OIDC-Server überein: AIS was expecting the server to have a different certificate

  • Die Zertifikatskette ist gültig, stimmt aber nicht mit dem OIDC-Server überein: Failed fetching the Discovery URI "<Discovery-document URI>" with error: The server's TLS certificate did not match expectations.

Lösung

Der Zertifikatwert, den Sie in ClientConfig angeben, muss eine korrekt formatierte Zertifikatskette enthalten, die mit dem Identitätsanbieter übereinstimmt. Weitere Informationen zum Formatieren und Codieren von Zertifikaten finden Sie unter CA-Zertifikate codieren.