WebSphere Application Server unterstützt zwei Konfigurationsoptionen
für das Binden des Richtliniensatz-Callers, um den Sicherheitskontext des Clients mit SAML-Sicherheitstoken
in Web-Service-SOAP-Anforderungsnachrichten einzurichten. Die zwei Konfigurationsoptionen ordnen SAML-Token einem Benutzereintrag
in einem lokalen Benutzerrepository zu und führen die SAML-Tokenzusicherung auf der Basis einer Vertrauensbeziehung durch.
Vorbereitende Schritte
Diese Task setzt voraus, dass Sie mit der SAML-Technologie von
WebSphere Application Server vertraut sind.
Informationen zu diesem Vorgang
Diese Task beschreibt, wie die Konfigurationsoption für das Binden des Richtliniensatz-Callers festgelegt wird,
um den Sicherheitskontext des Clients mit SAML-Sicherheitstoken
in Web-Service-SOAP-Anforderungsnachrichten einzurichten. Sie können SAML-Token einem Benutzereintrag
in einem lokalen Benutzerrepository zuordnen oder SAML-Token basierend auf einer Vertrauensbeziehung zusichern. Die zweite Konfigurationsoption
erfordert keinen Zugriff auf das lokale Benutzerrepository. Stattdessen füllt die
WS-Security-Laufzeitumgebung den Clientsicherheitskontext vollständig mit dem Inhalt von SAML-Sicherheitstoken. Dieser Prozess basiert auf einer Vertrauensbeziehung zum
Aussteller des SAML-Tokens.
Wenn ein SAML-Token die Subjektbestätigungsmethode "sender-vouches" angibt, basiert dieser Prozess auf einer Vertrauensbeziehung zum Nachrichtensender.
Vorgehensweise
- Konfigurieren Sie eine Caller-Bindung für einen Richtliniensatz,
und wählen Sie den SAML-Tokentyp für eine Web-Service-Clientanforderung aus.
- Klicken Sie auf
.
- Klicken Sie auf Neu, um die Caller-Konfiguration zu erstellen.
- Geben Sie einen
Namen an, z. B.
Caller.
- Geben Sie für Lokaler Abschnitt der Caller-Identität einen Wert ein,
z. B. http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0. Dies ist der lokale Abschnitt
des Elements CustomToken in der zugeordneten WS-Security-Richtlinie.
- Klicken Sie auf Anwenden und Speichern.
- Optional: Ordnen Sie SAML-Sicherheitstoken einem Benutzereintrag
in einem lokalen Benutzerrepository zu. Wenn Sie eine Caller-Bindung konfigurieren, ohne eine Konfigurationsoption anzugeben, erfolgt standardmäßig die Zuordnung
zu einem Benutzereintrag. Alternativ dazu können Sie diese Konfigurationsoption explizit auswählen, indem Sie die folgenden Schritte ausführen:
- Fügen Sie auf der Seite für die Konfiguration der Caller-Bindung den folgenden Callback-Handler hinzu:
com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler.
- Fügen Sie die angepasste Eigenschaft crossDomainIdAssertion für den Callback-Handler hinzu, und legen Sie für sie den Wert
false fest.
- Optional: Sichern Sie SAML-Sicherheitstoken basierend auf der Vertrauensbeziehung zu.
- Fügen Sie auf der Seite für die Konfiguration der Caller-Bindung den folgenden Callback-Handler hinzu:
com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler.
- Fügen Sie die angepasste Eigenschaft crossDomainIdAssertion für den Callback-Handler hinzu, und legen Sie für sie den Wert
true fest.
In WebSphere Application Server Version 7.0 Fix
Pack 7 und späteren Releases verwendet die WS-Security-Laufzeitumgebung den Namen des Ausstellers des SAML-Tokens, um
den Namen des fremden Sicherheitsrealms darzustellen.
Werden zur Darstellung des Sicherheitsnamens des Benutzers SAML-2.0-Sicherheitstoken verwendet,
verwendet WS-Security das Element NameID. Im Falle von SAML-1.1-Sicherheitstoken
verwendet WS-Security das Element NameIdentifier. Alternativ dazu können Sie explizit angeben, welches SAML-Tokenattribut
verwendet werden soll, um den Sicherheitsnamen des Benutzers darzustellen. Ferner können Sie explizit angeben, welches SAML-Tokenattribut
verwendet werden soll, um die Gruppenzugehörigkeit des Benutzers darzustellen. In dem Artikel, der sich mit SAML-Zusicherungen
in verschiedenen Sicherheitsdomänen von WebSphere Application Server befasst, werden das Trust-Modell und die Bindungskonfiguration
für die SAML-Tokenzusicherung detailliert beschrieben.
Version 8.x kann den Inhalt von
com.ibm.websphere.security.cred.WSCredential in einem SAML-Token replizieren.
Sie müssen die angepasste Eigenschaft
tokenRequest mit dem Eigenschaftswert issueByWSCredential in der WS-Security-Bindungskonfiguration des Web-Service-Clients
festlegen. Der Abschnitt zur Weitergabe von SAML-Token enthält eine detaillierte Beschreibung dieser Bindungsoption. Wenn in Version 8.x für die Eigenschaft
crossDomainIdAssertion der Wert true festgelegt ist, überprüft WS-Security, ob ein SAML-Token ein SAML-Attribut vom Typ
UniqueSecurityName enthält, das ein Element NameFormat mit dem Wert com.ibm.websphere.security.cred.WSCredential hat.
Falls ja, verwendet WS-Security den Wert des Attributs NameQualifier des Elements
NameID oder NameIdentifier, um den Namen des Sicherheitsrealms darzustellen. WS-Security verwendet auch
den Wert des Attributs UniqueSecurityName und den Wert des Attributs GroupIds, um einen eindeutigen Benutzernamen
sowie die Gruppenzugehörigkeit darzustellen. Dieses Standardverhalten ist bei Version 7 und Version 8.x des Produkts unterschiedlich. Sie können eine
Eigenschaft vom Typ CallbackHandler, IssuerNameForRealm, hinzufügen, und ihren Wert auf true setzen,
um Version 8.x so zu konfigurieren, dass sie das Verhalten von Version 7 beibehält. Alternativ dazu können Sie eine
Eigenschaft vom Typ CallbackHandler, NameQualifierForRealm, hinzufügen, und ihren Wert auf true setzen,
um Version 8.x so zu konfigurieren, dass sie immer das Attribut NameQualifier verwendet, um den Namen des Sicherheitsrealms des Benutzers
darzustellen.
- Aktivieren und konfigurieren Sie die globale Sicherheit von WebSphere Application Server.
Sie können den Sicherheitskonfigurationsassistenten verwenden, um die Verwaltungssicherheit zu aktivieren. Außerdem müssen Sie die Anwendungssicherheit
aktivieren, damit die Beispielanwendung das authentifizierte Benutzersubjekt
im Sicherheitskontext dazu verwenden kann, ein SAML-Token zu erstellen.
Dieser Schritt umfasst die Konfiguration eine dritten Prüfpunkts für die Vertrauensbeziehung auf der Seite des Web-Service-Providers.
Dieser Schritt ist erforderlich, damit der Anwendungsserver
den Web-Service-Provider der Zielsicherheitsdomäne simulieren kann.
Das Authentifizierungssubsystem von WebSphere Application Server V8.0
unterstützt die Zusicherung der Benutzeridentität mit einem fremden Realnamen
und gleicht den fremden Realnamen mit einer Liste von eingehenden anerkannten Authentifizierungsrealms ab.
Nach Ausführung dieses Konfigurationsschritts kann WebSphere
Application Server ein Client-Caller-Subjekt mit einer Benutzeridentität in einem fremden Sicherheitsrealm erstellen.
- Konfigurieren Sie anerkannte Sicherheitsdomänen.
- Klicken Sie in der Anzeige "Globale Sicherheit" auf die Schaltfläche
Konfigurieren neben
Verfügbare Realmdefinitionen.
- Klicken Sie auf den Link
Anerkannte Authentifizierungsrealms - eingehend.
- Wählen Sie die Option
Im Folgenden aufgelistete Realms anerkennen aus.
- Klicken Sie auf die Schaltfläche
Externen Realm hinzufügen.
- Fügen Sie den Namen des Ausstellers der SAML-Zusicherung unter Name des externen Realms hinzu.
Der Name des Ausstellers der SAML-Zusicherung gibt Informationen zum Aussteller der SAML-Zusicherung an und ist
entweder im Element "Issuer"
in der SAML 2.0-Zusicherung oder im
Attribut "Issuer" in der
SAML-Zusicherung enthalten.
Ergebnisse
Sie haben einen Web-Service so konfiguriert, dass mit dem SAML-Sicherheitstoken in den Web-Service-SOAP-Anforderungsnachrichten
ein Clientsicherheitskontext eingerichtet wird.
Beispiel
Das folgende Beispiel veranschaulicht die Elemente
NameIdentifier und
Attribute in einer selbst ausgestellten, auf
WSCredential basierenden
Zusicherung gemäß SAML 1.1:
<saml:AttributeStatement>
<saml:Subject>
<saml:NameIdentifier NameQualifier="ldap.example.com:9080">uid=alice,dc=example,dc=com</saml:NameIdentifier>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Attribute AttributeName="UniqueSecurityName" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
<saml:AttributeValue>uid=alice,dc=example,dc=com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute AttributeName="GroupIds" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
<saml:AttributeValue>cn=development,dc=example,dc=com</saml:AttributeValue>
<saml:AttributeValue>cn=deployment,dc=example,dc=com</saml:AttributeValue>
<saml:AttributeValue>cn=test,dc=example,dc=com</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
Das folgende Beispiel veranschaulicht die Elemente
NameID und
Attribute in einer selbst ausgestellten, auf
WSCredential basierenden
Zusicherung gemäß SAML 2.0:
<saml2:AttributeStatement>
<saml2:Attribute Name="UniqueSecurityName" NameFormat="com.ibm.websphere.security.cred.WSCredential" />
<saml2:AttributeValue>uid=alice,dc=example,dc=com</saml2:AttributeValue>
<saml2:Attribute>
<saml2:Attribute AttributeName="GroupIds" NameFormat="com.ibm.websphere.security.cred.WSCredential" />
<saml2:AttributeValue>cn=development,dc=example,dc=com</saml2:AttributeValue>
<saml2:AttributeValue>cn=deployment,dc=example,dc=com</saml2:AttributeValue>
<saml2:AttributeValue>cn=test,dc=example,dc=com</saml2:AttributeValue>
</saml2:Attribute>
<saml2:AttributeStatement>
<saml2:NameID NameQualifier="ldap.example.com:9060">alice</saml2:NameID>