SAML
Wenn Sie einen SAML-basierten Identitätsprovider verwenden, können Sie App ID so konfigurieren, dass eine SSO-Funktionalität (Single Sign-on) eingeleitet wird. Bei dieser Art von Datenfluss fungiert App ID als Dienstanbieter und stellt Sicherheits-Tokens für Ihre monatlich aktiven Nutzer (MAU) bereit.
Erläuterungen zu SAML
Security Assertion Markup Language (SAML) ist ein offener Standard für den Austausch von Authentifizierungs- und Autorisierungsdaten zwischen dem Provider, der eine Identität zusichert, und einem Provider, der die Identitätsinformationen annimmt. SAML 2.0 basiert auf XML und ist ein gut etablierter Rahmen für Authentifizierungs- und Autorisierungsstandards.
Das SAML-Protokoll bildet eine Brücke zwischen App ID (Service-Provider) und Ihrem Identitätsprovider. Wenn der Identitätsprovider einen Benutzer authentifiziert, erstellt er SAML-Token, die Informationen zum Benutzer enthalten, wie z. B. die Art der Authentifizierung, Attribute, die ihm zugeordnet sind, oder Berechtigungsparameter. Beispiele finden Sie in der folgenden Tabelle.
| Art der Informationen | Beispiele |
|---|---|
| Authentifizierung | Benutzer können sich mit einem Kennwort, mithilfe von MFA oder auf andere Weise authentifizieren. |
| Attribute | Beliebige Attribute, wie Gruppen, denen der Benutzer angehört, oder eine Vorgabe irgendeiner Art. |
| Autorisierungsentscheidungen | Gelegentlich werden einigen Benutzern mehr oder weniger Berechtigungen erteilt als anderen. |
Wie sieht der Ablauf aus?
Auch wenn zur Authentifizierung des Benutzers das SAML-Framework verwendet wird, verwendet App ID weiterhin ein moderneres OIDC-Protokoll für den Austausch von Sicherheitstoken mit Ihrer Anwendung. Überprüfen Sie die folgende Abbildung, um sich mit dem detaillierten Informationsfluss vertraut zu machen.
- Ein Benutzer greift auf die Anmeldeseite oder eine eingeschränkte Ressource in seiner Anwendung zu, die eine Anfrage an den Endpunkt App ID
/authorizationentweder über ein App ID SDK oder eine API initiiert. Wenn der Benutzer nicht berechtigt ist, wird der Authentifizierungsablauf mit einer Weiterleitung an App ID gestartet. - App ID generiert eine SAML-Authentifizierungsanforderung (
AuthNRequest) und der Browser leitet den Benutzer automatisch an den SAML-Identitätsprovider weiter. - Vom Identitätsprovider wird die SAML-Anforderung ausgewertet, der Benutzer authentifiziert und eine SAML-Antwort mit den jeweiligen Zusicherungen generiert.
- Vom Identitätsprovider werden der Benutzer und die Antwort mit der SAML-Antwort an App ID weitergeleitet.
- Wenn die Authentifizierung erfolgreich ist, werden von App ID Zugriffs- und Identitätstoken erstellt (Autorisierung und Authentifizierung eines Benutzers) und an die App zurückgegeben. Wenn die Authentifizierung fehlschlägt, wird der Fehlercode des Identitätsproviders von App ID an die App zurückgegeben.
- Dem Benutzer wird Zugriff auf die App oder die geschützten Ressourcen gewährt.
Inwiefern ändert SSO den Ablauf?
Der Ablauf für SSO ist ähnlich. Die einzige Abweichung vom beschriebenen Ablauf liegt bei Schritt 3 des vorherigen Abschnitts. Wenn SSO aktiviert ist, prüft der Identitätsprovider, bevor ein Benutzer zur Authentifizierung aufgefordert wird,
ob der Benutzer bereits über eine eingerichtete Authentifizierungssitzung verfügt. Wenn ja, wird der Benutzer nicht zur Authentifizierung aufgefordert und der Ablauf wird regulär fortgesetzt. Wenn keine SSO-Sitzung verfügbar ist, wird der
Benutzer an eine Anmeldeseite umgeleitet. Er wird möglicherweise auch dann umgeleitet, wenn die Angaben Ihres Identitätsproviders, womit SSO eingerichtet werden soll, nicht den Authentifizierungsanforderungen entspricht, die in der Anforderung
von App ID definiert sind. Wenn der Identitätsprovider beispielsweise eine SSO-Benutzersitzung unter Verwendung biometrischer Angaben erstellt, muss die App ID-Standardauthentifizierung geändert werden. Von App ID wird standardmäßig erwartet,
dass Benutzer unter Verwendung eines Kennworts über HTTPS angemeldet werden: urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport.
Informationen zu Zusicherungen
Wenn die SAML-Zusicherung an App ID zurückgegeben wird, bindet der Service die Benutzeridentität ein und generiert die entsprechenden Token. Wenn die SAML-Zusicherung einem der OIDC-Standardclaims entspricht, wird sie automatisch dem Identitätstoken hinzugefügt. Zusicherungen ohne Übereinstimmung werden standardmäßig ignoriert. Wenn Ihr SAML-Provider andere Assertions zurückgibt, ist es App IDmöglich, die Informationen in Ihre Token zu injizieren. Achten Sie jedoch darauf, dass Sie Ihren Token nicht mehr Informationen als nötig hinzufügen, da sie in der Regel in HTTP Kopfzeilen gesendet werden und begrenzt sind.
Die OIDC-Standard-Claims, die App ID Ihrer Zusicherung zuzuordnen versucht:
nameemaillocalepicture
Dabei ist zu beachten, dass nach einer Änderung von Werten auf der Seite des Identitätsproviders die neuen Werte erst nach einer erneuten Anmeldung des Benutzers verfügbar sind.
Wie muss die SAML-Zusicherung für App ID gestaltet sein?
Der Service erwartet, dass eine SAML-Zusicherung dem folgenden Beispiel entspricht.
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="s2202bbbbafa9d270d1c15990b738f4ab36139d463" InResponseTo="_e4a78780-35da-012e-8ea7-0050569200d8" Version="2.0" IssueInstant="2011-03-21T11:22:02Z" Destination="https://example.example.com/">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">idp_entityId</saml:Issuer>
<samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:StatusCode xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="2.0" ID="pfx539c9774-de5c-5f52-0c3f-b1c2e2697a89" IssueInstant="2018-01-29T13:02:58Z" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<saml:Issuer>idp_entityId</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="one_of_supported_algo"/>
<ds:SignatureMethod Algorithm="one_of_supported_algo"/>
<ds:Reference URI="#pfx539c9774-de5c-5f52-0c3f-b1c2e2697a89">
<ds:Transforms>
<ds:Transform Algorithm="one_of_supported_algo"/>
<ds:Transform Algorithm="one_of_supported_algo"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="one_of_supported_algo"/>
<ds:DigestValue>huywDPPfOEGyyzE7d5hjOG97p7FDdGrjoSfes6RB19g=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>BAwNZFgWF2oxD1ux0WPfeHnzL+IWYqGhkM9DD28nI9v8XtPN8tqmIb5y4bomaYknmNpWYn7TgNO2Rn/XOq+N9fTZXO2RybaC49iF+zWibRIcNwFKCCpDL6H6jA5eqJX2YKBR+K6Yt2JPoUIRLmqdgm2lMr4Nwq1KYcSzQ/yoV5W0SN/V5t8EfctFoaXVPdtfHVXkwqHeufo+L4gobFt9NRTzXB0SQEClA1L8hQ+/LhY4l46k1D0c34iWjVLZr+ecQyubf7rekOG/R7DjWCFMTke822dR+eJTPWFsHGSPWCDDHFYqB4QMinTvUnsngjY3AssPqIOjeUxjL3p+GXn8IQ==</ds:SignatureValue>
</ds:Signature>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">JohnDoe@gmail.com</saml:NameID>
</saml:Subject>
<saml:Conditions NotBefore="2018-01-29T12:59:58Z" NotOnOrAfter="2018-01-29T13:05:58Z">
</saml:Conditions>
</samlp:Response>
Welche Typen von Algorithmen werden von App ID unterstützt?
App ID verwendet den Algorithmus RSA-SHA256 für die Verarbeitung digitaler XML-Signaturen.
SAML-Identitätsprovider für die Arbeit mit App ID konfigurieren
Sie können SAML Identitätsanbieter für die Zusammenarbeit mit App ID konfigurieren, indem Sie Metadaten von App ID an Ihren Identitätsanbieter und Metadaten von Ihrem Identitätsanbieter an App ID übermitteln.
Dem Identitätsprovider Metadaten zur Verfügung stellen
Sie müssen einem SAML-kompatiblen Identitätsprovider Informationen zur Verfügung stellen, um Ihre App zu konfigurieren. Die Informationen werden über eine Metadaten-XML-Datei ausgetauscht, die außerdem Konfigurationsdaten enthält, die für die Herstellung einer Vertrauensbeziehung erforderlich sind.
SAML kann erst nach der Konfiguration als Identitätsprovider aktiviert werden.
-
Klicken Sie auf der Registerkarte Verwalten des App ID-Dashboards in der Zeile SAML auf Bearbeiten, um Ihre Einstellungen zu konfigurieren.
-
Klicken Sie auf die Option, mit der Sie SAML-Metadatendatei herunterladen können. Ihr Identitätsprovider erwartet die folgenden Informationen von der Datei.
Die Informationen, die in Ihrer Metadaten-Datei enthalten sind Variable Beschreibung EntityIDDie ID, die dem Identitätsprovider bekannt gibt, dass App ID die SAML-Anforderung ausgegeben hat Location URLDie URL des Standorts, den der Identitätsprovider an die SAML-Zusicherung sendet, nachdem ein Benutzer erfolgreich authentifiziert wurde. BindingDie Anweisungen dazu, wie der Identitätsprovider die SAML-Antwort senden muss. NameID FormatWoher weiß der Identitätsanbieter, welches Identifizierungsformat er im Betreff einer Assertion senden muss und wie App ID die Benutzer identifiziert. Die ID muss das folgende Format haben: <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">.WantAssertionsSignedDie Methode, mit der ein Identitätsprovider prüft, ob er die Zusicherung signieren muss. Der Service erwartet, dass die Zusicherung signiert ist, unterstützt aber keine verschlüsselten Zusicherungen. KeyDescriptorDie SAML-Signatur- und -Verschlüsselungszertifikate, mit denen Sie Ihren Identitätsprovider konfigurieren können, um die signierte SAML-Anforderung zu überprüfen und die Antwort zu verschlüsseln. -
Stellen Sie Ihrem Identitätsprovider die Daten zur Verfügung. Falls Ihr Identitätsprovider das Hochladen der Metadatendatei unterstützt, können Sie dies tun. Falls er das Hochladen nicht unterstützt, konfigurieren Sie die Eigenschaften manuell. Nicht alle Identitätsprovider verwenden dieselben Eigenschaften, sodass nicht alle verwendet werden müssen.
Die Eigenschaftsnamen können je nach Identitätsprovider variieren.
-
Legen Sie für SAML 2.0 Federation die Einstellung Aktiviert fest.
Das Bereitstellen von Metadaten für App ID
Sie können Daten vom Identitätsprovider abrufen und App ID zur Verfügung stellen. Sie können die Anmeldung bei Ihren Anwendungen über IBM Cloud oder Ihren Identitätsprovider einleiten.
Bereitstellung von Metadaten in der Konsole
Führen Sie die folgenden Schritte aus, um sich über die IBM Cloud-Benutzerschnittstelle bei Ihren Anwendungen anzumelden:
-
Navigieren Sie zur Registerkarte SAML 2.0 des App ID-Dashboards.
-
Fügen Sie den Providernamen hinzu. Der Standardname ist SAML.
-
Geben Sie die folgenden Metadaten, die Sie vom Identitätsprovider erhalten haben, im Abschnitt Metadaten vom SAML-Identitätsprovider (IdP) bereitstellen ein.
Die Informationen, die für App ID angegeben werden müssen Variable Beschreibung Sign-in URLDie URL, an die der Benutzer zur Registrierung weitergeleitet wird. Diese URL ist bei Ihrem SAML-Identitätsprovider gehostet. Entity IDDie Entitäts-ID ist der globale eindeutige Name für einen SAML-Identitätsprovider. Primary certificateDas Signaturzertifikat wird von Ihrem SAML-Identitätsprovider ausgegeben. Es wird für die Registrierung und für die Überprüfung der SAML-Zusicherungen verwendet. Alle Provider sind unterschiedlich, möglicherweise können Sie das Signaturzertifikat von Ihrem Identitätsprovider herunterladen. Das Zertifikat muss das Format .pemaufweisen. -
Optional: Stellen Sie ein sekundäres Zertifikat zur Verfügung, das verwendet wird, falls die Signaturvalidierung mit dem primären Zertifikat fehlschlägt. Falls der Signierschlüssel gleich bleibt, blockiert App ID die Authentifizierung für abgelaufene Zertifikate nicht.
-
Klicken Sie auf Speichern.
Möchten Sie einen Authentifizierungskontext festlegen? Sie können dies über die API tun.
Konfigurieren der IdP-initiated Anmeldung in der Konsole
Wenn Sie sich über die Benutzeroberfläche Ihres Identitätsanbieters bei Ihren Anwendungen in der IBM Cloud anmelden möchten, können Sie optional die IdP-initiated Anmeldung aktivieren.
Führen Sie die Schritte 1 - 4 im Abschnitt Bereitstellen von Metadaten in der Konsole aus. Führen Sie dann den folgenden Prozess durch.
- Aktivieren Sie die von IdP initiierte Anmeldung.
- Geben Sie den IdP redirect URL ein.
- Klicken Sie auf Speichern.
Bereitstellung von Metadaten mit der API
-
Zeigen Sie Ihre aktuelle SAML Konfiguration an, einschließlich Ihres Authentifizierungskontexts und Ihrer Zertifikate, indem Sie eine GET-Anfrage an den
/samlAPI-Endpunkt stellen.Beispielcode:
curl --request GET \ https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/config/idps/saml \ --header `Accept: application/json`Beispielausgabe:
{ "isActive": true, "config": { "entityID": "https://example.com/saml2/metadata/706634", "signInUrl": "https://example.com/saml2/sso-redirect/706634", "certificates": [ "certificate-example-pem-format" ], "displayName": "my saml example", "authnContext": { "class": [ "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport" ], "comparison": "exact" } } } -
Erstellen Sie eine SAML-Konfiguration durch Ersetzen der Werte im folgenden Beispiel durch die Informationen von Ihrem Provider. Die im Beispiel gezeigten Werte sind erforderlich, Sie haben jedoch die Möglichkeit, weitere Informationen einzuschließen, wie in der Tabelle dargestellt.
"config": { "authnContext": { "class": [ "urn:oasis:names:tc:SAML:2.0:ac:classes:YourChosenClassValue", "urn:oasis:names:tc:SAML:2.0:ac:classes:YourOtherChosenClassValue" ], "comparison": "sampleComparisonValue"} "entityID": "https://example.com/saml2/metadata/706634", "signInUrl": "https://example.com/saml2/sso-redirect/706634", "certificates": [ "primary-certificate-example-pem-format" "secondary-certificate-example-pem-format" ], "displayName": "my saml example", "signRequest": true , "encryptResponse": true }SAML konfigurationsvariablen Variable Beschreibung signInUrlDie URL, an die der Benutzer zur Registrierung weitergeleitet wird. Diese URL ist bei Ihrem SAML-Identitätsprovider gehostet. entityIDDie Entitäts-ID ist der globale eindeutige Name für einen SAML-Identitätsprovider. displayNameDer Name, den Sie Ihrer SAML-Konfiguration zuordnen. primary-certificate-example-pem-formatDas Zertifikat, das vom SAML-Identitätsprovider ausgegeben wird. Es wird für die Registrierung und für die Überprüfung der SAML-Zusicherungen verwendet. Alle Provider sind unterschiedlich, möglicherweise können Sie das Signaturzertifikat von Ihrem Identitätsprovider herunterladen. Das Zertifikat muss das Format .pemaufweisen.Optional: secondary-certificate-example-pem-formatDas von Ihrem SAML-Identitätsprovider ausgestellte Sicherungszertifikat. Es wird verwendet, wenn die Signaturvalidierung mit dem primären Zertifikat fehlschlägt. Hinweis: Falls der Signierschlüssel gleich bleibt, blockiert App ID die Authentifizierung für abgelaufene Zertifikate nicht. Optional: authnContextDer Authentifizierungskontext wird verwendet, um die Qualität der Authentifizierung und SAML-Zusicherungen zu überprüfen. Sie können einen Authentifizierungskontext hinzufügen, indem Sie ein Klassenarray und eine Vergleichszeichenfolge zu Ihrem Code hinzufügen. Sie müssen die Parameter classundcomparisonmit Ihren Werten aktualisieren. Der Parameterclasskann beispielsweise dem Wert fürurn:oasis:names:tc:SAML:2.0:ac:classes:YourChosenClassValueähneln.Optional: signRequestDas Flag signRequestgibt Ihnen die Möglichkeit, eine signierte SAML-Anforderung unter Anwendung des privaten SAML-Signierschlüssels des Tenants an einen Identitätsprovider zu senden. Um Ihren SAML-Identitätsprovider für den Empfang einer signierten Anforderung zu konfigurieren, benötigen Sie das Signaturzertifikat aus der Metadatendatei, die Sie im FeldKeyDescriptor use="signing"herunterladen können. Standardmäßig ist die Anforderungssignatur aufoffgesetzt.Optional: encryptResponseDas Flag encryptResponseermöglicht den Empfang einer verschlüsselten Antwort von Ihre, Identitätsprovider als Teil der Authentifizierungsanforderung. Zum Konfigurieren Ihres SAML-Identitätsproviders für das Senden einer verschlüsselten Antwort benötigen Sie das Verschlüsselungszertifikat, das Sie in der Metadatendatei im FeldKeyDescriptor use="encryption"finden. Standardmäßig ist die Antwortverschlüsselung aufoffgesetzt. -
Stellen Sie eine PUT-Anforderung an den API-Endpunkt
/saml, um die in Schritt 2 erstellte Konfiguration an App ID zu übermitteln. Überprüfen Sie das folgende Beispiel, um sich damit vertraut zu machen, wie Ihre Anforderung aussehen kann.curl --request PUT \ https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/config/idps/saml \ --header `Accept: application/json` \ --data \ { "isActive": true, "config": { "entityID": "https://example.com/saml2/metadata/706634", "signInUrl": "https://example.com/saml2/sso-redirect/706634", "certificates": [ "primary-certificate-example-pem-format" ], "displayName": "my saml example", } }
Konfigurieren der IdP-initiated Anmeldung mit der API
Führen Sie die folgenden Schritte aus, um IdP-initiated login zu konfigurieren.
-
Zeigen Sie Ihre aktuelle SAML Konfiguration an, einschließlich Ihres Authentifizierungskontexts und Ihrer Zertifikate, indem Sie eine GET-Anfrage an den
/samlAPI-Endpunkt stellen.Beispielcode:
curl --request GET \ https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/config/idps/saml \ --header `Accept: application/json`Beispielausgabe:
{ "isActive": true, "config": { "entityID": "https://example.com/saml2/metadata/706634", "signInUrl": "https://example.com/saml2/sso-redirect/706634", "certificates": [ "certificate-example-pem-format" ], "displayName": "my saml example", "authnContext": { "class": [ "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport" ], "comparison": "exact" } } } -
Erstellen Sie eine SAML-Konfiguration durch Ersetzen der Werte im folgenden Beispiel durch die Informationen von Ihrem Provider. Die im Beispiel gezeigten Werte sind erforderlich, Sie haben jedoch die Möglichkeit, weitere Informationen einzuschließen, wie in der Tabelle dargestellt.
"config": { "authnContext": { "class": [ "urn:oasis:names:tc:SAML:2.0:ac:classes:YourChosenClassValue", "urn:oasis:names:tc:SAML:2.0:ac:classes:YourOtherChosenClassValue" ], "comparison": "sampleComparisonValue" }, "idpInitEnabled": true, "idpRedirectUrl": "https://example.com/redirect/endpoint", "entityID": "https://example.com/saml2/metadata/706634", "signInUrl": "https://example.com/saml2/sso-redirect/706634", "certificates": [ "primary-certificate-example-pem-format" "secondary-certificate-example-pem-format" ], "displayName": "my saml example", "signRequest": true , "encryptResponse": true }SAML konfigurationsvariablen Variable Beschreibung signInUrlDie URL, an die der Benutzer zur Registrierung weitergeleitet wird. Diese URL ist bei Ihrem SAML-Identitätsprovider gehostet. entityIDDie Entitäts-ID ist der globale eindeutige Name für einen SAML-Identitätsprovider. displayNameDer Name, den Sie Ihrer SAML-Konfiguration zuordnen. primary-certificate-example-pem-formatDas Zertifikat, das vom SAML-Identitätsprovider ausgegeben wird. Es wird für die Registrierung und für die Überprüfung der SAML-Zusicherungen verwendet. Alle Provider sind unterschiedlich, möglicherweise können Sie das Signaturzertifikat von Ihrem Identitätsprovider herunterladen. Das Zertifikat muss das Format .pemaufweisen.DefaultRelayStateDer Anfangswert für RelayState. Diese Variable wird in den Einstellungen Ihres Identitätsproviders konfiguriert. Diese Variable kann für den Redirect URL anstelle vonidpRedirectUrlbei SAML Anfragen von Ihrem Identitätsanbieter verwendet werden. Wenn Sie beide Variablen festlegen, hat der Wert vonDefaultRelayStateVorrang. IdP-initiated die Anmeldung schlägt fehl, wenn Sie eine dieser Variablen nicht setzen.idpInitEnabledEin boolescher Wert, der angibt, ob die vom IdP initiierte Anmeldung aktiviert werden soll. idpRedirectUrlDer Wert dieses Feldes kann null, eine leere Zeichenfolge oder eine gültige http- oder https-Weiterleitung URL sein. Hinweis: Wenn der Wert dieses Feldes gleich Null ist, müssen SieDefaultRelayStateals Umleitung festlegen URL. Wenn Sie beide Variablen festlegen, hat der Wert vonDefaultRelayStateVorrang. IdP-initiated die Anmeldung schlägt fehl, wenn Sie eine dieser Variablen nicht setzen.Optional: secondary-certificate-example-pem-formatDas von Ihrem SAML-Identitätsprovider ausgestellte Sicherungszertifikat. Es wird verwendet, wenn die Signaturvalidierung mit dem primären Zertifikat fehlschlägt. Hinweis: Falls der Signierschlüssel gleich bleibt, blockiert App ID die Authentifizierung für abgelaufene Zertifikate nicht. Optional: authnContextDer Authentifizierungskontext wird verwendet, um die Qualität der Authentifizierung und SAML-Zusicherungen zu überprüfen. Sie können einen Authentifizierungskontext hinzufügen, indem Sie ein Klassenarray und eine Vergleichszeichenfolge zu Ihrem Code hinzufügen. Sie müssen die Parameter classundcomparisonmit Ihren Werten aktualisieren. Der Parameterclasskann beispielsweise dem Wert fürurn:oasis:names:tc:SAML:2.0:ac:classes:YourChosenClassValueähneln.Optional: signRequestDas Flag signRequestgibt Ihnen die Möglichkeit, eine signierte SAML-Anforderung unter Anwendung des privaten SAML-Signierschlüssels des Tenants an einen Identitätsprovider zu senden. Um Ihren SAML-Identitätsprovider für den Empfang einer signierten Anforderung zu konfigurieren, benötigen Sie das Signaturzertifikat aus der Metadatendatei, die Sie im FeldKeyDescriptor use="signing"herunterladen können. Standardmäßig ist die Anforderungssignatur aufoffgesetzt.Optional: encryptResponseDas Flag encryptResponseermöglicht den Empfang einer verschlüsselten Antwort von Ihre, Identitätsprovider als Teil der Authentifizierungsanforderung. Zum Konfigurieren Ihres SAML-Identitätsproviders für das Senden einer verschlüsselten Antwort benötigen Sie das Verschlüsselungszertifikat, das Sie in der Metadatendatei im FeldKeyDescriptor use="encryption"finden. Standardmäßig ist die Antwortverschlüsselung aufoffgesetzt. -
Stellen Sie eine PUT-Anforderung an den API-Endpunkt
/saml, um die in Schritt 2 erstellte Konfiguration an App ID zu übermitteln. Überprüfen Sie das folgende Beispiel, um sich damit vertraut zu machen, wie Ihre Anforderung aussehen kann.curl --request PUT \ https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/config/idps/saml \ --header `Accept: application/json` \ --data \ { "isActive": true, "config": { "entityID": "https://example.com/saml2/metadata/706634", "signInUrl": "https://example.com/saml2/sso-redirect/706634", "certificates": [ "certificate-example-pem-format" ], "displayName": "my saml example", "authnContext": { "class": [ "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport" ], "comparison": "exact" }, "idpInitEnabled": true, "idpRedirectUrl": "https://example.com/redirect/endpoint", } }
Konfiguration testen
Sie können die Konfiguration zwischen Ihrem SAML-Identitätsprovider und App ID testen.
- Stellen Sie sicher, dass Sie Ihre Konfiguration gespeichert haben.
- Navigieren Sie zur Registerkarte SAML 2.0 des App ID-Dashboards und klicken Sie auf Testen. Eine neue Registerkarte wird angezeigt.
- Melden Sie sich mit einem Benutzer an, den Ihr Identitätsprovider bereits authentifiziert hat.
- Nachdem Sie das Formular ausgefüllt haben, werden Sie auf eine andere Seite weitergeleitet.
- Erfolgreiche Authentifizierung: Die Verbindung zwischen App ID und dem Identitätsprovider funktioniert korrekt. Die Seite zeigt gültige Zugriffs- und Identitätstoken an.
- Fehlgeschlagene Authentifizierung: Die Verbindung ist unterbrochen. Die Seite zeigt die Fehler und die SAML-XML-Antwortdatei an.
Das SAML-Framework unterstützt mehrere Profile, Abläufe und Konfigurationen, was bedeutet, dass Ihr Identitätsprovider ordnungsgemäß konfiguriert werden muss. Wenn Sie auf Probleme stoßen, sehen Sie sich einige häufige Gründe an, warum Ihre Authentifizierungsanfrage fehlschlagen könnte, oder lesen Sie die SAML Spezifikation für detaillierte Fehlercodes.