IBM Cloud Docs
Warum schlägt meine SAML-Authentifizierungsanforderung fehl?

Warum schlägt meine SAML-Authentifizierungsanforderung fehl?

Sie stoßen auf Probleme mit Ihrer SAML-Authentifizierung.

Warum kann meine SAML-Nachrichtensignatur nicht validiert werden?

Beim Testen Ihrer Anwendung erhalten Sie die folgende Fehlernachricht:

The SAML message signature could not be validated

Dieser Fehler tritt auf, wenn App ID die von SAML gesendete Signatur nicht überprüfen kann.

Zur Problembehebung überprüfen Sie, ob Sie die Signatur für den eingehenden Datenverkehr (Inbound Signature) in Ihrer Konfiguration auf Ohne gesetzt haben.

Warum fehlt der Parameter RelayState in meiner Authentifizierungsantwort?

Der Parameter RelayState fehlt in der Authentifizierungsantwort.

Von App ID wird ein nicht transparenter Parameter gesendet, der als RelayState bezeichnet wird und Teil der Authentifizierungsanforderung ist. Wenn der Parameter in der Antwort nicht angezeigt wird, ist der Identitätsprovider möglicherweise nicht so konfiguriert, dass er ordnungsgemäß zurückgegeben wird. Für RelayState wird das folgende Format verwendet.

https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&RelayState=token

Stellen Sie sicher, dass der SAML-Provider so konfiguriert ist, dass der Parameter RelayState ohne eine Änderung an App ID zurückgegeben wird.

Warum erhalte ich eine Fehlermeldung über meine Namens-ID?

Wenn Sie eine Authentifizierungsanforderung senden, empfangen Sie einen Fehler im Zusammenhang mit NameID.

Von App ID als Service-Provider wird definiert, wie die Benutzer vom Service und Identitätsprovider identifiziert werden. Mit App ID werden die Benutzer in der Authentifizierungsanforderung NameID im Feld NameID wie im folgenden Beispiel dargestellt identifiziert.

<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>

Stellen Sie zur Lösung des Problems sicher, dass der Wert von NameID als E-Mail-Adresse formatiert ist. Stellen Sie sicher, dass alle Benutzer in Ihrer Identitätsproviderregistry ein gültiges E-Mail-Adressformat haben. Überprüfen Sie anschließend, ob das Feld NameID ordnungsgemäß definiert ist, sodass immer eine gültige E-Mail zurückgegeben wird-auch wenn Benutzer in Ihrer Registry mehrere E-Mails haben.

Fehler beim Entschlüsseln der Antwort

Als Antwort auf Ihre Authentifizierungsanforderung empfangen Sie eine der folgenden Fehlernachrichten.

Fehlernachricht 1:

Unexpectedly received an encrypted assertion. Please enable response encryption in your App ID SAML configuration.

Fehlernachricht 2:

Could not decrypt SAML assertion. Ensure your SAML provider is configured with the App ID encryption.

Wenn für den Identitätsprovider eine Verschlüsselung konfiguriert wurde, muss für App ID das Signieren der SAML-Authentifizierungsanforderungen (AuthnRequest) konfiguriert werden. Danach muss der Identitätsprovider so konfiguriert werden, dass von ihm die entsprechende Konfiguration erwartet wird. Diese Fehler können aus einem der folgenden Gründe auftreten:

  • App ID ist nicht so konfiguriert, dass eine Verschlüsslung der SAML-Antwort des Identitätsproviders erwartet wird.
  • App ID kann Ihre Zusicherungen nicht korrekt entschlüsseln.

Wenn Sie Fehlernachricht 1 empfangen, überprüfen Sie, ob SAML so konfiguriert ist, dass eine verschlüsselte Antwort erwartet wird. Standardmäßig wird von App ID nicht erwartet, dass die Antwort verschlüsselt wird. Legen Sie zum Konfigurieren der Verschlüsselung für den Parameter encryptResponse den Wert true in der API fest.

Wenn Sie Fehlernachricht 2 empfangen, stellen Sie sicher, dass Ihr Zertifikat korrekt ist. Sie können das Signaturzertifikat aus der XML-Datei der App ID-Metadaten extrahieren. Stellen Sie sicher, dass Sie den Schlüssel mit <KeyDescriptor use="signing">verwenden. Stellen Sie sicher, dass der Identitätsprovider für die Verwendung von `` als Signatursignieralgorithmus konfiguriert ist.

Beantworterfehlercode

Wenn Sie eine Authentifizierungsanforderung senden, erhalten Sie die folgende generische Fehlernachricht:

urn:oasis:names:tc:SAML:2.0:status:Responder

Von App ID wird zwar die Anfangsauthentifizierungsanforderung gesendet, vom Identitätsprovider muss jedoch die Benutzerauthentifizierung ausgeführt und die Antwort zurückgegeben werden. Es gibt mehrere Gründe, die dazu führen können, dass Ihr Identitätsprovider diese Fehlernachricht erzeugt.

Möglicherweise wird die Nachricht angezeigt, wenn der Identitätsprovider:

  • den Benutzername nicht finden oder nicht überprüfen kann.
  • das Format NameID nicht unterstützt, das in der Authentifizierungsanforderung (AuthnRequest) definiert ist.
  • den Authentifizierungskontext nicht unterstützt.
  • eine signierte Authentifizierungsanforderung oder die Verwendung eines bestimmten Algorithmus in der Signatur erfordert.

Überprüfen Sie zur Behebung des Problems die Konfiguration und den Benutzernamen. Stellen Sie sicher, dass der korrekte Authentifizierungskontext und die richtigen Variablen definiert sind. Prüfen Sie, ob Ihre Anforderung auf bestimmte Weise signiert werden muss.

Nicht unterstützte Authentifizierungsanforderung

Sie erhalten eine Nachricht zu einer nicht unterstützten Authentifizierungsanforderung.

Wenn von App ID eine Authentifizierungsanforderung generiert wird, kann der Authentifizierungskontext verwendet werden, um die Qualität der Authentifizierung und der SAML-Zusicherungen zu überprüfen.

Zur Behebung des Problems können Sie Ihren Authentifizierungskontext aktualisieren. Von App ID werden standardmäßig die Authentifizierungsklasse urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport und der Abgleich exact verwendet. Sie können den Kontextparameter mithilfe der APIs so aktualisieren, dass er für den Anwendungsfall geeignet ist.

Fehler beim Signieren der SAML-Anforderung

Sie empfangen eine Fehlernachricht, aus der hervorgeht, dass eine Authentifizierungsanforderung nicht überprüft werden kann.

App ID kann zwar so konfiguriert werden, dass die SAML-Authentifizierung (AuthNRequest) signiert wird, der Identitätsprovider muss jedoch auch für die entsprechende Konfiguration konfiguriert sein.

Problemlösung:

  • Stellen Sie sicher, dass IBM Cloud für die Signierung der Authentifizierungsanforderung konfiguriert ist; legen Sie hierzu für den Parameter signRequest mithilfe der trueAPI zum Festlegen der SAML-IDP den Wert fest. Anhand der Anforderungs-URL können Sie prüfen, ob Ihre Authentifizierungsanforderung signiert ist. Die Signatur ist als Abfrageparameter eingeschlossen. Beispiel:https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=request&SigAlg=value&Signature=value&RelayState=token

  • Stellen Sie sicher, dass der Identitätsprovider mit dem korrekten Zertifikat konfiguriert ist. Zum Abrufen des Signaturzertifikats überprüfen Sie die XML-Datei mit den IBM Cloud-Metadaten, die Sie über das IBM Cloud-Dashboard heruntergeladen haben. Stellen Sie sicher, dass Sie den Schlüssel mit <KeyDescriptor use="signing">verwenden.

  • Stellen Sie sicher, dass der Identitätsprovider für die Verwendung von `` als Signieralgorithmus konfiguriert ist.

Warum stimmt meine Authentifizierungsmethode nicht überein?

Sie erhalten eine Meldung, dass die angegebene Authentifizierungsmethode nicht mit der angeforderten Authentifizierungsmethode übereinstimmt.

Beispiel:

AADSTS75011: Authentication method ‘X509, Multifactor, X509Device’ by which the user authenticated with the service doesn't match requested authentication method 'Password, ProtectedTransport'.

Wenn App ID eine Authentifizierungsanfrage generiert, wird der Authentifizierungskontext verwendet, um die Qualität der Authentifizierung und der SAML-Assertions anzufordern.

Standardmäßig verwendet App ID urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport und exact Vergleich in der authnContext wie in Understanding SAML dokumentiert, während Sie versuchen, eine andere Authentifizierungsmethode zu verwenden. In dem angegebenen Beispiel wird die Authentifizierungsmethode X509, Multifactor verwendet.

Um das Problem zu beheben, können Sie Ihre Authentifizierungskontexteinstellung für die Werte class und comparison im SAML authnContext aktualisieren. Um den Kontextparameter an Ihren Anwendungsfall anzupassen, können Sie die API verwenden.

Alternativ können Sie auch ein leeres authnContext in Ihrer SAML-Konfiguration einstellen, wie im folgenden Beispiel gezeigt.

  "authnContext": { }