Kerberos kann mit der Administrationskonsole als Authentifizierungsverfahren für den Anwendungsserver konfiguriert werden.
Wenn Sie die erforderlichen Informationen für die Konfiguration eingegeben und angewendet haben, wird der Kerberos-SPN wie folgt geformt:
<Servicename>/<vollständig qualifizierter
Hostname>@KerberosRealm. Dieser Name wird verwendet, um eingehende Kerberos-Tokenanforderungen zu prüfen.
Vorbereitende Schritte
Lesen Sie den Artikel
Unterstützung des Authentifizierungsverfahrens Kerberos (KRB5) für die Sicherheit, um sich mit dem
Kerberos-Authentifizierungsverfahren in dieser Version von
WebSphere Application Server vertraut zu machen. Sie müssen
die folgenden Schritte ausgeführt haben, bevor Sie Kerberos als Authentifizierungsverfahren über die Administrationskonsole
konfigurieren:
- Wenn Sie noch keine Kerberos-Konfigurationsdatei krb5.ini oder krb5.conf haben,
verwenden Sie die Befehlstask createkrbConfigFile, um die Kerberos-Konfigurationsdatei zu erstellen.
Weitere Informationen hierzu enthält der Artikel Kerberos-Konfigurationsdatei erstellen.
- Sie müssen eine Kerberos-Chiffrierschlüsseldatei krb5.keytab haben, die
einen Kerberos-SPN (Service Principal Name), <Servicename>/<vollständig_qualifizierter_Hostname>@KerberosRealm,
für jede Maschine enthält, auf der WebSphere-Anwendungsserver ausgeführt werden.
Der Servicename kann beliebig gewählt werden. Der Standardwert ist
WAS.
Wenn Sie beispielsweise zwei Anwendungsservermaschinen, host1.austin.ibm.com und
host2.austin.ibm.com, haben, muss die Kerberos-Chiffrierschlüsseldatei die SPNs
<Servicename>/host1.austin.ibm.com und
<Servicename>/host2.austin.ibm.com sowie die zugehörigen Kerberos-Schlüssel enthalten.
Kerberos kann pro Sitzung nur eine Chiffrierschlüsseldatei laden und verwenden. Wenn Kerberos konfiguriert ist und Sie eine neue Chiffrierschlüsseldatei mit demselben Namen und derselben Position wie die bisherige Chiffrierschlüsseldatei
verwenden möchten, müssen Sie den Server neu starten.
Wenn Sie Kerberos zum ersten Mal konfigurieren und versehentlich eine falsche
Chiffrierschlüsseldatei verwenden, müssen Sie
Kerberos dekonfigurieren und den Server neu starten. Konfigurieren Sie dann
Kerberos erneut mit einer anderen Chiffrierschlüsseldatei. Dies gilt jedoch nicht, wenn das Java™ SE Development Kit (JDK) mit SP3 installiert ist.
Als erstes müssen Sie die globale Sicherheit und die Anwendungssicherheit aktivieren.
Wenn Kerberos in der globalen Sicherheit konfiguriert ist und Sie für eine Domäne
SPNEGO (Simple and Protected GSS-API Negotiation)
mit einem anderen Kerberos-Realm konfigurieren möchten, müssen Sie zunächst die vorhandenen Chiffrierschlüsseldateien mit dem
Java-Befehl ktab
-m zu einer Datei zusammenführen. Konfigurieren Sie dann Kerberos und SPNEGO mit der zusammengeführten Chiffrierschlüsseldatei für die globale Sicherheit und die Domänensicherheit.
Vorgehensweise
- Klicken Sie in der Administrationskonsole auf Sicherheit > Globale Sicherheit.
- Klicken Sie unter "Authentifizierung" auf Kerberos-Konfiguration.
- Geben Sie den Kerberos-Servicenamen ein. Gemäß der Konvention setzt sich ein
Kerberos-Service-Principal aus drei Komponenten zusammen: primäre Komponente, Instanz und Kerberos-Realmname.
Das Format des Kerberos-SPN ist <Servicename>/<vollständig_qualifizierter_Hostname>>@KERBEROS_REALM. Der Servicename ist der erste Teil des
Kerberos-SPN. So wird im Beispiel
WAS/test.austin.ibm.com@AUSTIN.IBM.COM der Servicename WAS verwendet.
In diesem Beispiel muss die Chiffrierschlüsseldatei den Kerberos-SPN
WAS/test.austin.ibm.com@AUSTIN.IBM.COM und die zugehörigen Schlüssel enthalten.
- Geben Sie den Namen der Kerberos-Konfigurationsdatei ein oder klicken Sie auf
Durchsuchen, um die Datei zu suchen. 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.
Anmerkung: Der Name der Kerberos-Konfigurationsdatei
und der Pfad der Kerberos-Chiffrierschlüsseldatei müssen keine absoluten Pfade sein.
Sie können stattdessen WebSphere-Variablen für die Pfade verwenden.
Wenn Sie eine heterogene Plattformumgebung haben, können Sie die Variable
${CONF_OR_INI} für die Kerberos-Konfigurationsdatei verwenden.
Die Sicherheitskonfiguration erweitert die Variable zu in "ini" für Windows-Plattformen und in "conf" für andere als Windows-Plattformen.
Beispiel:
${WAS_INSTALL_ROOT}\etc\krb5\krb5.${CFG_OR_INI}
- Optional: Geben Sie den Namen der Kerberos-Chiffrierschlüsseldatei ein oder klicken Sie auf
Durchsuchen, um die Datei zu suchen. 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 Standardchiffrierschlüssel aus der Kerberos-Konfigurationsdatei verwendet.
Anmerkung: Der Name der Kerberos-Konfigurationsdatei
und der Pfad der Kerberos-Chiffrierschlüsseldatei müssen keine absoluten Pfade sein.
Sie können stattdessen WebSphere-Variablen für die Pfade verwenden.
${WAS_INSTALL_ROOT}\etc\krb5\krb5.keytab
- Geben Sie im Feld
Name des Kerberos-Realms den Namen des Kerberos-Realms ein. In den meisten Fällen ist der Realm der Domänenname in Großbuchstaben.
Wenn Sie diesen Parameter nicht angeben, wird der Standardname des Kerberos-Realms aus der Kerberos-Konfigurationsdatei verwendet.
Beispielsweise verwendet eine Maschine mit dem Domänennamen
test.austin.ibm.com den Kerberos-Realmnamen AUSTIN.IBM.COM.
Anmerkung: Der Kerberos-Realmname für das KDC für Microsoft ist der
Domänencontrollername in Großbuchstaben.
- Optional: Standardmäßig ist Kerberos-Realm vom Namen des Principals abtrennen ausgewählt.
Sie können diese Option abwählen, wenn das Suffix des Kerberos-Principal-Namens beibehalten werden soll. Diese Option gibt an, ob das Kerberos-Anmeldemodul das
Suffix des Principal-Benutzernamens ab dem Zeichen "@" vor dem Kerberos-Realmnamen
entfernen soll.
Ist dieses Attribut auf
true gesetzt, wird das Suffix des Principal-Benutzernamens entfernt.
Das Suffix des Principal-Namens bleibt erhalten, wenn dieses Attribut auf false gesetzt ist. Der verwendete Standardwert ist true.
- Optional: Standardmäßig ist Übertragung der Kerberos-Berechtigungsnachweise aktivieren ausgewählt. Diese Option gibt an, ob die delegierten Kerberos-Berechtigungsnachweise aus der Clientanforderung extrahiert werden.
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.
Das KRBAuthnToken wird im Client-Subject-Objekt gespeichert.
Das KRBAuthnToken wird im Rahmen der Weitergabe der Sicherheitsattribute an den nachgeschalteten Server weitergegeben.
Wenn eine Kundenanwendung den 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.
Wenn Sie diese Option nicht auswählen, enthält das
KRBAuthnToken nur den Kerberos-Principal-Namen.
Anmerkung: Wenn dieser Parameter auf
true gesetzt ist und die Laufzeitumgebung keinen GSS-Delegierungsberechtigungsnachweis extrahieren kann, wird eine Warnung angezeigt.
- Klicken Sie auf OK.
Ergebnisse
Bei Auswahl von
Anwenden oder OK wird die
Kerberos-Authentifizierung automatisch getestet. Wenn die Kerberos-Konfiguration nicht vollständig ist, wird in einer Nachricht
angezeigt, dass die Authentifizierung fehlgeschlagen ist.
Kerberos sollte jetzt als Authentifizierungsverfahren für WebSphere Application Server konfiguriert und gespeichert sein.
Nächste Schritte
Wenn Sie SPNEGO aktivieren möchten, klicken Sie unter "Zugehörige Konfiguration" auf SPNEGO-Webauthentifizierung.
Die SPNEGO-Webauthentifizierung und die Kerberos-Authentifizierung verwenden
dieselbe Kerberos-Clientkonfigurationsdatei und Chiffrierschlüsseldatei.
Wenn Sie versuchen, sich bei der Administrationskonsole zu authentifizieren, verwenden
Sie eine Benutzer-ID mit Verwaltungsaufgaben, die im KDC existiert, das dem Anwendungsserver zugeordnet ist.
Wenn Sie eine Benutzer-ID mit Verwaltungsaufgaben verwenden, die in einem anderen KDC existiert, das der Administrationskonsole nicht zugeordnet ist,
schlägt der Anmeldeprozess fehl und die folgende Fehlernachricht wird der Protokolldatei hinzugefügt:
SECJ9200E: Es wurde kein Kerberos-Berechtigungsnachweis im Berechtigungsnachweissatz des Subjects gefunden.
Der Client kann einem anderen KDC als der
Anwendungsserver zugeordnet sein.