SPNEGO-Webauthentifizierung über die Administrationskonsole aktivieren und konfigurieren
Über die Administrationskonsole können Sie SPNEGO (Simple and Protected GSS-API Negotiation) als Webauthentifikator für den Anwendungsserver aktivieren und konfigurieren.
Vorbereitende Schritte
Für jeden WebSphere Application Server, der eine HTTP-Anforderung verarbeiten soll, muss es eine Kerberos-Chiffrierschlüsseldatei (krb5.keytab) geben, die den Kerberos-SPN HTTP/<vollständig qualifizierter Hostname>@KerberosRealm enthält.
Vorgehensweise
- Klicken Sie in der Administrationskonsole auf Sicherheit > Globale Sicherheit.
- Klicken Sie unter "Authentifizierung" auf "Web- und SIP-Sicherheit", und klicken Sie
auf SPNEGO-Webauthentifizierung. Anmerkung: Sie müssen den Filter konfigurieren, bevor Sie die SPNEGO-Webauthentifizierung aktivieren.
- Optional: Wenn die SPNEGO-Laufzeit dynamisch aktualisiert soll, sobald eine SPNEGO-Änderung ohne Neustart des Anwendungsservers eintritt, wählen Sie die Option SPNEGO dynamisch aktualisieren aus.
- Wählen Sie SPNEGO aktivieren aus, um SPNEGO (Simple and Protected GSS-API Negotiation Mechanism) als Webauthentifikator für WebSphere Application Server zu aktivieren. Die Optionen SPNEGO dynamisch aktualisieren und Zurücksetzen auf das Authentifizierungsverfahren der Anwendung zulassen sind inaktiviert, wenn Sie SPNEGO aktivieren nicht auswählen.
- Optional: Wenn Sie Zurücksetzen auf das Authentifizierungsverfahren der Anwendung zulassen ausgewählt haben und die SPNEGO-Authentifizierung scheitert, wird das Authentifizierungsverfahren verwendet, dass während der Anwendungsassemblierung definiert wurde.
- Geben Sie den Dateinamen der Kerberos-Konfigurationsdatei mit dem vollständigen Pfad an, oder klicken Sie auf Durchsuchen, um den Namen zu lokalisieren. Die Kerberos-Clientkonfigurationsdatei krb5.conf oder krb5.ini enthält Kerberos-Konfigurationsdaten, die unter anderem die Speicherpositionen für die KDCs (Key Distribution Center) des betreffenden Realms angeben. Der Dateiname krb5.conf ist der Standardname für alle Plattformen mit Ausnahme des Betriebssystems Windows, das die Datei krb5.ini verwendet.
- Optional: Geben Sie den Namen der Kerberos-Chiffrierschlüsseldatei mit dem vollständigen Pfad an, oder klicken Sie auf Durchsuchen, um den Namen zu lokalisieren. Die Kerberos-Chiffrierschlüsseldatei enthält einen oder mehrere Kerberos-SPNs oder -Schlüssel. Die Standardchiffrierschlüsseldatei ist krb5.keytab. Hosts müssen ihre Kerberos-Chiffrierschlüsseldateien unbedingt schützen. Dazu werden sie auf der lokalen Festplatte gespeichert, wo sie nur von berechtigten Benutzern gelesen werden können. Weitere Informationen hierzu enthält der Artikel Kerberos-Service-Principal-Namen und eine Chiffrierschlüsseldatei erstellen. Wenn Sie diesen Parameter nicht angeben, wird der Standard-Kerberos-Realmname aus der Kerberos-Konfigurationsdatei verwendet.
- Wählen Sie unter "SPNEGO-Filter:" einen vorhandenen Hostnamen aus, der editiert werden soll, oder wählen Sie
Neu aus, um einen neuen Hostnamen zu erstellen. Gemäß der Konvention setzt sich ein
Kerberos-SPN (Service Principal Name) aus drei Komponenten zusammen: primäre Komponente, Instanz und Kerberos-Realmname. Der SPNEGO-Servicename muss HTTP sein, und deshalb ist der Name des Kerberos-service-Principals für die
SPNEGO-Webauthentifizierung HTTP/<vollständig qualifizierter Hostname>@KERBEROS_REALM.
Der SPN wird verwendet, um das eingehende SPNEGO-Token auszuwerten und einen Sicherheitskontext mit einem Requester zu erstellen.
- Erforderlich: Geben Sie auf der nächsten Seite im Feld Hostname einen vollständig qualifizierten Hostnamen ein. Der Hostname ist Teil des Kerberos-Service-Principal-Name (SPN) (HTTP/<vollständig qualifizierter Hostname>), den SPNEGO verwendet, um einen gesicherten Kerberos-Kontext herzustellen. Der Konfigurationscode erstellt für jeden Filtereintrag den Kerberos-Service-Principal im Format HTTP/<vollständig qualifizierter Hostname>@KERBEROS_REALM mit dem Kerberos-Realm, den Sie im nächsten Schritt angeben müssen. Der Kerberos-Chiffrierschlüssel muss diesen Kerberos-Service-Principal sowie dessen Schlüssel enthalten.
- Optional: Geben Sie im Feld Name des Kerberos-Realms den Namen des Kerberos-Realms an. In den meisten Fällen ist der Realm der Domänenname in Großbuchstaben. Beispielsweise verwendet eine Maschine mit dem Domänennamen test.austin.ibm.com in der Regel den Kerberos-Realmnamen AUSTIN.IBM.COM. Wenn Sie diesen Parameter nicht angeben, wird der Standard-Kerberos-Realmname aus der Kerberos-Konfigurationsdatei verwendet.
- Geben Sie im Feld Filterbedingungen Ihre Filterbedingung ein. Die Filterbedingungen sind der Filterparameter, den die von SPNEGO verwendete
Java™-Klasse verwendet. Sie definiert beliebige Bedingungen, die für die verwendete Implementierungsklasse
aussagefähig sind.
Die Standardimplementierungsklasse "com.ibm.ws.security.spnego.HTTPHeaderFilter" definiert mit dieser Eigenschaft eine Liste von Auswahlregeln, deren Bedingungen mit den Headern von HTTP-Anforderungen abgeglichen werden, um festzustellen, ob die HTTP-Anforderung für die SPNEGO-Authentifizierung ausgewählt wurde.
Jede Bedingung wird durch ein Schlüssel-Wert-Paar angegeben. Die einzelnen Bedingungen sind jeweils durch ein Semikolon voneinander getrennt. Die Bedingungen werden in der Reihenfolge, in der sie in der angegebenen Eigenschaft erscheinen, von links nach rechts ausgewertet. Falls alle Bedingungen erfüllt sind, wird die HTTP-Anforderung für die SPNEGO-Authentifizierung ausgewählt.
Der Schlüssel und der Wert im Schlüssel-Wert-Paar sind durch einen Operator getrennt, der die zu überprüfende Bedingung definiert. Der Schlüssel bezeichnet einen HTTP-Anforderungsheader, der aus der Anforderung zu extrahieren ist und dessen Wert gemäß der Operatorspezifikation mit dem Wert des Schlüssels im Schlüssel-Wert-Paar verglichen wird. Falls es den vom Schlüssel bezeichneten Header nicht in der HTTP-Anforderung gibt, wird die Bedingung als nicht erfüllt angesehen.
Als Schlüssel in den Schlüssel-Wert-Paaren können alle Standard-HTTP-Anforderungsheader verwendet werden. In der HTTP-Spezifikation finden Sie eine Liste gültiger Header. Zusätzlich wurden zwei Schlüssel definiert, um Informationen aus der Anforderung zu extrahieren. Diese Schlüssel sind auch als ein Auswahlkriterium hilfreich, das von den Standard-HTTP-Anforderungsheadern nicht bereitgestellt wird. Der Schlüssel remote-address wird als Pseudoheader verwendet, um die ferne TCP/IP-Adresse der Clientanwendung abzurufen, die die HTTP-Anforderung gesendet hat. Der Schlüssel request-URL wird als ein Pseudoheader verwendet, um den URL abzurufen, den die Clientanwendung für die Anforderung benutzt hat. Der Interceptor konstruiert mit dem Ergebnis der Operation "getRequestURL" in der Schnittstelle "javax.servlet.http.HttpServletRequest" die Webadresse. Falls es eine Abfragezeichenfolge gibt, wird in derselben Schnittstelle auch das Ergebnis der Operation "getQueryString" verwendet. In diesem Fall wird wie folgt der vollständige URL konstruiert:String url = request.getRequestURL() + ‘?' + request.getQueryString();
Tabelle 1. Filterbedingungen und Operatoren. In dieser Tabelle werden die Bedingungen und Operationen für Filterkriterien beschrieben.
Bedingung Operator Beispiel Exakte Übereinstimmung == Es wird überprüft, ob die Argumente gleich sind.
host==host.my.company.com Teilweise Übereinstimmung (ist enthalten) %= Es wird überprüft, ob die Argumente übereinstimmen, wobei eine teilweise Übereinstimmung bereits gültig ist.
user-agent%=IE 6 Teilweise Übereinstimmung (eines von mehreren ist enthalten) ^= Es wird überprüft, ob die Argumente übereinstimmen, wobei eine teilweise Übereinstimmung für eines von mehreren angegebenen Argumenten gültig ist.
request-url^=webApp1|webApp2|webApp3 Keine Übereinstimmung != Es wird überprüft, ob die Argumente ungleich sind.
request-url!=noSPNEGO Größer als > Es wird überprüft, ob die Argumente lexikografisch größer sind.
remote-address>192.168.255.130 Kleiner als < Es wird überprüft, ob die Argumente lexikografisch kleiner sind.
remote-address<192.168.255.135 - Geben Sie im Feld Filterklasse den Namen der Java-Klasse ein, den SPNEGO zur Auswahl der HTTP-Anforderungen, die der SPNEGO-Webauthentifizierung unterliegen, verwendet. Wenn Sie diesen Parameter nicht angeben, wird die Standardfilterklasse com.ibm.ws.security.spnego.HTTPHeaderFilter verwendet.
- Optional: Im Feld
URL der Fehlerseite für "SPNEGO nicht unterstützt" können Sie wahlweise den URL einer Ressource eingeben, die den Inhalt enthält, den
SPNEGO in die HTTP-Antwort einfügt, die von der (Browser-)Clientanwendung angezeigt wird, wenn die SPNEGO-Authentifizierung nicht unterstützt wird. Diese Eigenschaft kann eine Webressource
(http://) oder eine Dateiressource (file://) angeben. Wenn das Feld URL der Fehlerseite für "SPNEGO nicht unterstützt" keine Angabe enthält oder die SPNEGO-Authentifizierung die angegebene Ressource nicht finden kann, wird der folgende Inhalt verwendet:
<html><head><title>SPNEGO-Authentifizierung wird nicht unterstützt</title></head> <body>SPNEGO-Authentifizierung wird auf diesem Client nicht unterstützt</body></html>;
- Optional: Im Feld
URL der Fehlerseite "NTLM-Token empfangen" können Sie wahlweise den URL einer Ressource eingeben, die den Inhalt enthält, den
SPNEGO in die HTTP-Antwort einfügt, die von der Browserclientanwendung angezeigt wird. Die Browserclientanwendung
zeigt diese HTTP-Antwort an, wenn der Browserclient während des Handshake mit Anforderung/Antwortaustausch ein NTLM-Token (NT LAN Manager)
anstelle des erwarteten SPNEGO-Token sendet.Wenn das Feld URL der Fehlerseite "NTLM-Token empfangen" keine Angabe enthält oder die SPNEGO-Authentifizierung die angegebene Ressource nicht finden kann, wird der folgende Inhalt verwendet:
<html><head><title>Es wurde ein NTLM-Token empfangen.</title></head> <body>Ihre Browser-Konfiguration ist zwar korrekt, aber Sie haben sich nicht an der unterstützten Microsoft(R) Windows(R)-Domäne angemeldet. <p>Melden Sie sich über die normale Anmeldeseite an der Anwendung an.</html>
- Optional: Wählen Sie Kerberos-Realm vom Namen des Principals abtrennen aus, um festzulegen, ob SPNEGO das Suffix des Principal-Benutzernamens ab dem Zeichen "@" vor dem Kerberos-Realmnamen entfernen soll. Ist diese Option ausgewählt, wird das Suffix des Principal-Benutzernamens entfernt. Das Suffix des Principal-Namens bleibt erhalten, wenn diese Option nicht ausgewählt ist. Diese Option ist standardmäßig nicht ausgewählt.
- Optional: Wählen Sie Übertragung der Kerberos-Berechtigungsnachweise aktivieren aus, um festzulegen, ob die
übertragenen Kerberos-Berechtigungsnachweise von SPNEGO gespeichert werden sollen. Wenn der Kerberos-Berechtigungsnachweis für Delegierung an den Client gesendet wird, extrahiert SPNEGO den
GSSCredential und speichert ihn im Subject-Objekt. Das Kerberos-Authentifizierungstoken (KRBAuthnToken)
wird mit dem Client-Principal-Namen und dem delegierten Client-Kerberos-Ticket erstellt, wenn
dem Client der Kerberos-Delegierungsberechtigungsnachweis im Rahmen der Anforderung gesendet wird. Der Berechtigungsnachweis GSSCredential ist nicht serialisierbar, d. h., er kann nicht an einen nachgeschalteten Server weitergegeben
werden, und geht während der Serialisierung bzw. Entserialisierung verloren. Das KRBAuthnToken ist serialisierbar und kann an einen nachgeschalteten (Downstream-)Server
weitergegeben werden. Wenn eine Kundenanwendung den Berechtigungsnachweis GSSCredential für die Authentifizierung bei einer Back-End-Ressource oder einem
nachgeschalteten Server benötigt, müssen Sie den GSSCredential mit der Methode com.ibm.wsspi.wssecurity.platform.token.KRBAuthnToken.getGSSCredential()
aus dem KRBAuthnToken extrahieren und in das Subject-Objekt einfügen.Anmerkung: Wenn Sie diese Option nicht auswählen, enthält das KRBAuthnToken nur den Kerberos-Principal-Namen.
- Klicken Sie auf Anwenden. Die Filterkriterien und Filterklassen werden - soweit angegeben - ausgewertet.
- Klicken Sie auf OK. Damit sind die Schritte für die SPNEGO-Webauthentifizierung abgeschlossen.
Ergebnisse
SPNEGO ist jetzt als Webauthentifikator für den Anwendungsserver aktiviert.
Unterartikel
Filter für die SPNEGO-Webauthentifizierung über die Administrationskonsole hinzufügen oder modifizieren
Die SPNEGO-Filterwerte (Protected GSS-API Negotiation Mechanism) steuern verschiedene Aspekte von SPNEGO. In der Administrationskonsole können Sie für jeden Anwendungsserver andere Filterwerte angeben.Aktivierung der SPNEGO-Webauthentifizierung
Sie können Simple and Protected GSS-API Negotiation (SPNEGO) als Webauthentifikator für WebSphere Application Server aktivieren.Filterwerte für SPNEGO-Webauthentifizierung
Die Filterwerte für die SPNEGO-Webauthentifizierung (Simple and Protected GSS-API Negotiation Mechanism) steuern verschiedene Aspekte von SPNEGO. Verwenden Sie diese Seite, um unterschiedliche Filterwerte für jeden Anwendungsserver anzugeben.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_SPNEGO_config
Dateiname:tsec_SPNEGO_config.html