SAML-SSO-Szenarien, -Features- und -Einschränkungen
SAML (Security Assertion Markup Language) ist ein offener OASIS-Standard für die Darstellung und den Austausch von Benutzeridentitäten, Autentifizierung und Attributinformationen. SAML entwickelt sich rasch zur führenden Technologie in der Bereitstellung herstellerübergreifender SSO-Interoperabilität (Single Sign-on).
- Der Benutzer greift auf eine Front-End-Webanwendung zu, die sich auf dem IdP, dem SP oder an einer anderen Position befinden kann.
- Die Front-End-Webanwendung leitet den Benutzer an den IdP um, und der Benutzer authentifiziert sich beim IdP.
- Der IdP leitet den Benutzer an den ACS (Assertion Consumer Service) im SP um, indem er eine SAML-Antwort über HTTP POST in einem verdecken Formular sendet.
- Der SP verarbeitet die SAML-Antwort und erstellt den WebSphere-Sicherheitskontext.
- Der SP fügt ein LTPA-Cookie in die HTTP-Antwort ein und leitet die Anforderung an eine Webressource oder Geschäftsanwendung um.
- WebSphere Application Server fängt die Anforderung ab und ordnet das LTPA-Cookie dem Sicherheitskontext zu und berechtigt den Benutzerzugriff auf die angegebene Webressource.
- WebSphere Application Server sendet eine HTTP-Antwort an den Benutzer zurück.
In den folgenden Bildern ist der SAML-SSO-Verarbeitungsablauf dargestellt:

- Der WebSphere-SAML-Service-Provider unterstützt Single Sign-on (SSO) mit mehreren Identitätsprovidern.
- Der WebSphere-SAML-Service-Provider unterstützt Optionen für die Identitätszusicherung und die Zuordnung der zugesicherten Identität zur Benutzerregistry des Service-Providers.
- Der WebSphere-SAML-Service-Provider kann dem Realm, dem Principal, der eindeutigen DI und der Gruppe SAML-Tokenattribute zuordnen oder zusichern und diese im Sicherheitskontext des Service-Providers festlegen.
- Der WebSphere-SAML-Service-Provider stellt einen Verbindungspunkt für angepasste Identitätszuordnung bereit.
- Der WebSphere-SAML-Service-Provider stellt eine Option bereit, mit der die Gruppenzugehörigkeit der Identität aus der Registry des Service-Providers abgerufen und der Sicherheitskontext gefüllt werden kann.
- Der WebSphere-SAML-Service-Provider stellt einen IdP-Auswahlfilter bereit, um die Anforderung zurück an den richtigen IdP zu leiten, wenn die Anforderung nicht vom IdP kommt.
- Der WebSphere-SAML-Service-Provider unterstützt die Signaturalgorithmen RSA-SHA1 und RSA-SHA256.
- Der WebSphere-SAML-Service-Provider behält das SAML-Token im Subjekt des Service-Providers für den Zugriff durch die Anwendung bei und stellt es für einen nachfolgenden authentifizierten EJB- (Enterprise JavaBean) oder Web-Service-Aufruf bereit.
- Der WebSphere-SAML-Service-Provider ermöglicht es einem Geschäftsanwendungs-URL als AssertionConsumerService-URL zu fungieren, sodass der IdP eine SAML-Antwort (SAMLResponse) direkt an den Geschäftsanwendungs-URL senden kann.
- Der WebSphere-SAML-TAI (Trust Association Interceptor) ermöglicht es, wichtige SAML-Zusicherungen, einschließlich Issuer (Aussteller) und NameID zu prüfen).
- Assertion Consumer Service (ACS) in WebSphere-SAML-Service-Provider:ACS ist ein gesichertes Servlet, das eine SAML-Protokollnachricht akzeptiert und den Sicherheitskontext aufbaut. Ein ACS-URL verfügt über das vordefinierte Kontextstammverzeichnis (ContextRoot) samlsps und einen URL im folgenden Format:
Die vom ACS empfangene SAML-Antwort (SAMLResponse) wird vom TAI abgefangen und bei erfolgreicher Validierung an den Zielanwendungsservice weitergeleitet.https://<Hostname>:<Port>/samlsps/<URI-Muster>
Jeder Geschäftsservice, der die POST-Methode implementiert, kann als ACS fungieren. Die Verwendung eines Zielgeschäftsservlets als ACS wird bevorzugt, weil dies die Umlaufzeit zwischen Browser und Service-Provider-Server reduziert.
- Unterstützung mehrerer Sicherheitsdomänen: Ein ACS wird in einer Anwendungssicherheitsdomäne implementiert und es wird erwartet, dass sich der ACS in derselben Sicherheitsdomäne befindet wie die Geschäftsanwendung. Wenn sich der ACS und die Zielgeschäftsanwendung (RelayState) in unterschiedlichen Sicherheitsdomänen befinden, gelten einige empfohlene Optionen:
- Verarbeiten Sie die SAML-Antwort (SAMLResponse) in der Sicherheitsdomäne des ACS.
- Rekonfigurieren Sie den ACS für dieselbe Domäne wie die Geschäftsanwendung.
- Verwenden Sie den Zielgeschäftsservice als ACS.
- Mehrere SSO-Partner:
Der WebSphere-SAML-TAI unterstützt mehrere ACS- und IdP-SSO-Partner (SingleSignOnService). Ein SSO-Partner ist als ein ACS-URL definiert und kann mehrere SingleSignOnService-Objekte haben. Wenn mehrere SSO-Partner existieren, wird jede SSO-Partnerschaft über einen ACS-URL eindeutig angegeben.
Jeder SSO-Partner kann eigene Prüfregeln verwenden, eine Zuordnungsregel zwischen Zusicherung und Subjekt oder eine Regel zum Starten von SSO mit einem eigenen IdP. Beispielsweise kann der eine SSO-Partner die Zusicherung der Identität ausführen, bei der ein Subjekt auf WebSphere-Plattform generiert wird, ohne die Benutzerregistry aufzurufen. Ein anderer SSO-Partner kann eine Suche in der lokalen Benutzerregistry ausführen. In einem weiteren Beispiel kann ein SSO-Partner SSO mit einem IdP ausführen und ein anderer SSO-Parnter kann SSO mit einem anderen IdP ausführen.
- SSO im Bookmark-Stil und TAI-Filter:
Erwägen Sie die Verwendung eines SSO im Bookmark-Stil, das herkömmlicherweise in ein vom Service-Provider (SP) gestartetes SSO passt. Der Benutzer greift auf die Geschäftsanwendung zu, ohne sich zuerst beim IdP zu authentifizieren. Der WebSphere-SAML-TAI kann zum Starten eines SSO konfiguriert werden. Jede SSO-Partnerkonfiguration enthält eine IdP-Anmeldeanwendung und einen Routingfilter. Jeder Filter definiert eine Liste mit Auswahlregeln, die Bedingungen darstellen. Diese Bedingungen werden mit der HTTP-Anforderung abgeglichen, um festzustellen, ob die HTTP-Anforderung für einen SSO-Partner ausgewählt wird. Die Filterregel ist eine Kombination aus HTTP-Anforderungsheader, Referrerdaten und Zielanwendungsname. Die WebSphere-SAML-TAI-Laufzeitumgebung prüft die Benutzeranforderung anhand aller Filterregeln, um den SSO-Partner eindeutig zu ermitteln, und leitet die Anforderung an die ausgewählte IdP-Anmeldeanwendung um. Mit Hilfe des TAI-Filters kann das von einem IdP gestartete SSO eine ähnliche Funktionalität bereitstellen wie die Kombination aus dem von einem Service-Provider (SP) eingeleiteten SSO und einem IdP-Erkennungsservice.
- Identitätszuordnung und Sicherheitskontextverwaltung: Der WebSphere-SAML-TAI stellt eine umfangreiche und flexible Identitätszuordnung bereit und kann wie folgt klassifiziert werden:
- Identitätszusicherung: Die SAML-Zusicherung kann dem Subjekt der WebSphere-Plattform ohne lokale Registry zugeordnet werden.
Typische Szenarien der Identitätszusicherung:
- Standard: NameID wird als Principal verwendet, Issuer (Aussteller) als Realm, ausgewähltes Attribut als Gruppenmitglieder.
- Angepasst: Konfiguration des SAML-Attributs als Principal, Realm, Zugriffs-ID (accessID) und Gruppenmitglieder.
- Ordnen Sie die NameID aus dem IdP der Benutzerregistry des Service-Providers zu,
und erstellen Sie das Subjekt aus der Registry.
Die folgenden Szenarien werden unterstützt:
- Ordnen Sie die SAML-NameId direkt der loaklen Registry zu.
- Legen Sie einen Plug-in-Punkt für die angepasste Zuordnung fest, und verwenden Sie anschließend einen neuen Benutzer, um das Subjekt zu erstellen.
- Ordnen Sie die NameID der Benutzerregistry zu, und kehren Sie zur Identitätszusicherung zurück.
- Kombination aus Identitätszusicherung und lokaler Registry:
Zusätzlich zur Identitätszusicherung durchsucht TAI übergeordnete Gruppen der zusgesicherten Gruppen in der Benutzerregistry des Service-Providers und schließt die übergeordnete Gruppen in das Subjekt ein. Beispielsweise wird den übergeordneten Gruppen die Berechtigung erteilt, aber der Identitätsprovider kennt die Namen der übergeordneten Gruppen nicht.
- Identitätszusicherung: Die SAML-Zusicherung kann dem Subjekt der WebSphere-Plattform ohne lokale Registry zugeordnet werden.
Typische Szenarien der Identitätszusicherung:
WebSphere Application Server unterstützt nur das vom IdP gestartete SAML-Web-SSO.
- Enhanced Client or Proxy (ECP) Profile
- Identity Provider Discovery Profile
- Single Logout Profile
- Name Identifier Management Profile
- Artifact Resolution Profile
- Assertion Query/Request Profile
- Name Identifier Mapping Profile
- SAML Attribute Profiles