Sicherheitskontext für Web-Service-Clients mit SAML-Sicherheitstoken einrichten

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

  1. Konfigurieren Sie eine Caller-Bindung für einen Richtliniensatz, und wählen Sie den SAML-Tokentyp für eine Web-Service-Clientanforderung aus.
    1. Klicken Sie auf WebSphere-Unternehmensanwendungen > Anwendungsname > Richtliniensätze und Bindungen für Service-Provider > Bindungsname > WS-Security > Caller.
    2. Klicken Sie auf Neu, um die Caller-Konfiguration zu erstellen.
    3. Geben Sie einen Namen an, z. B. Caller.
    4. 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.
    5. Klicken Sie auf Anwenden und Speichern.
  2. 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:
    1. Fügen Sie auf der Seite für die Konfiguration der Caller-Bindung den folgenden Callback-Handler hinzu: com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler.
    2. Fügen Sie die angepasste Eigenschaft crossDomainIdAssertion für den Callback-Handler hinzu, und legen Sie für sie den Wert false fest.
  3. Optional: Sichern Sie SAML-Sicherheitstoken basierend auf der Vertrauensbeziehung zu.
    1. Fügen Sie auf der Seite für die Konfiguration der Caller-Bindung den folgenden Callback-Handler hinzu: com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler.
    2. 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.

  4. 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.

  5. Konfigurieren Sie anerkannte Sicherheitsdomänen.
    1. Klicken Sie in der Anzeige "Globale Sicherheit" auf die Schaltfläche Konfigurieren neben Verfügbare Realmdefinitionen.
    2. Klicken Sie auf den Link Anerkannte Authentifizierungsrealms - eingehend.
    3. Wählen Sie die Option Im Folgenden aufgelistete Realms anerkennen aus.
    4. Klicken Sie auf die Schaltfläche Externen Realm hinzufügen.
    5. 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>

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_representclientbysaml
Dateiname:twbs_representclientbysaml.html