Kerberos-Konfigurationsdatei erstellen
Die Kerberos-Konfigurationsdatei enthält Clientkonfigurationsdaten, die unter anderem die Speicherpositionen für die KDCs (Key Distribution Center) des betreffenden Realms, die Standardwerte für den aktuellen Kerberos-Realm und die Zuordnung von Hostnamen und Kerberos-Realms angeben. Erstellen Sie mit dem Dienstprogramm wsadmin wie folgt eine Kerberos-Konfigurationsdatei für WebSphere Application Server.
Informationen zu diesem Vorgang
Kerberos-Konfigurationseinstellungen, der Name des Kerberos-KDC (Key Distribution Center) und die Realmeinstellungen für die einfache und die SPNEGO-Webauthentifizierung (Simple and Protected GSS-API Negotiation Mechanism) und die Kerberos-Authentifizierung sind in der Kerberos-Konfigurationsdatei oder in den JVM-Systemeigenschaften "java.security.krb5.kdc" und "java.security.krb5.realm" angegeben.
Die Standardposition ist c:\winnt\krb5.ini.
Anmerkung: Wenn sich die Datei krb5.ini nicht im Verzeichnis c:\winnt befindet, ist sie möglicherweise im Verzeichnis c:\windows enthalten.Die Standardposition ist /etc/krb5.conf.
Auf anderen UNIX-Plattformen ist die Standardposition /etc/krb5/krb5.conf.
Vorgehensweise
- Starten Sie das Befehlszeilendienstprogramm, indem Sie den Befehl wsadmin im Verzeichnis Stammverzeichnis_des_Anwendungsservers/bin ausführen.
- Geben Sie an der wsadmin-Eingabeaufforderung den folgenden Befehl ein:
$AdminTask help createKrbConfigFile
- Geben Sie Parameter für den Befehl "createKrbConfigFile" an.
Tabelle 1. Parameter für den Befehl "createKrbConfigFile". In dieser Tabelle sind die Parameter aufgelistet, die Sie mit dem Befehl createKrbConfigFile verwenden können:
Option Beschreibung <krbPath> Erforderlich. Gibt den vollständig qualifizierten Dateisystempfad der Kerberos-Konfigurationsdatei (krb5.ini oder krb5.conf) an. <realm> Erforderlich. Gibt den Kerberos-Realmnamen an. Der Wert dieses Attributs wird von SPNEGO verwendet, um den Principal-Namen des Kerberos-Service für jeden mit der Eigenschaft "com.ibm.ws.security.spnego.SPN<id>.hostName" definierten Host zu bilden. <kdcHost> Erforderlich. Gibt den Hostnamen des Kerberos-KDC (Key Distribution Center) an. <kdcPort> Optional. Gibt die Portnummer des Kerberos-KDC an. Wenn dieser Port fehlt, wird standardmäßig der Port 88 verwendet. <dns> Erforderlich. Gibt eine Liste von Standard-DNS (Domänennamensservices) an. Die einzelnen Einträge sind jeweils durch ein Pipe-Zeichen voneinander getrennt. Die Liste wird für die Erstellung eines vollständig qualifizierten Hostnamens verwendet. Der erste Eintrag der Liste gibt den Standarddomänennamensservice an. <keytabPath> Erforderlich. Gibt die Dateisystemposition (Pfad und Dateiname) für die Kerberos-Chiffrierschlüsseldatei an. <encryption> Optional. Gibt die Liste der unterstützten Verschlüsselungstypen mit Pipe-Zeichen als Trennzeichen an. Der Standardwert ist des-cbc-md5. - Geben Sie einen Verschlüsselungstyp an. Folgende Verschlüsselungsarten werden unterstützt:
- des-cbc-md5
- des-cbc-crc
- des3-cbc-sha1
- rc4-hmac
- arcfour-hmac
- arcfour-hmac-md5
- aes128-cts-hmac-sha1-96
- aes256-cts-hmac-sha1-96
Achtung: Nicht alle derzeit verfügbaren KDC-Lösungen unterstützen alle oben aufgelisteten Verschlüsselungsarten. Vergewissern Sie sich vor dem Auswählen einer Verschlüsselungsart, dass diese von Ihrem KDC unterstützt wird. Entsprechende Informationen enthält das Administrator- und Benutzerhandbuch zu Kerberos.Vergewissern Sie sich, dass für die Kerberos-Konfigurationsdatei, die Kerberos-Chiffrierschlüsseldatei, den Kerberos-SPN und den Kerberos-Client eine einheitliche Verschlüsselungsart ausgewählt ist. Wenn der Kerberos-Client beispielsweise die Verschlüsselungsart RC4-HMAC verwendet, muss der Zielserver ebenfalls RC4-HMAC unterstützen und in der Kerberos-Konfigurationsdatei muss RC4-HMAC in "default_tgt_enctypes" und "default_tkt_enctypes" als erstes aufgelistet sein.
- Geben Sie die Positionstypen "krbPath" und "krbKeytab" an. Nachfolgend sehen Sie ein Beispiel für den Befehl "createKrbConfigFile":
$AdminTask createKrbConfigFile {-krbPath c:/winnt/krb5.ini -realm WSSEC.AUSTIN.IBM.COM -kdcHost host1.austin.ibm.com -dns austin.ibm.com|raleigh.ibm.com -keytabPath c:/winnt/krb5.keytab}
Anmerkung: WebSphere-Variablen können auch verwendet werden, um krbPath- und krbKeytab-Positionspfade für den Befehl "createKrbConfigFile" anzugeben.Anhand des folgenden Beispiels können Sie die Datei c:/winnt/krb5.ini erstellen:[libdefaults] default_realm = WSSEC.AUSTIN.IBM.COM default_keytab_name = FILE:c:\winnt\krb5.keytab default_tkt_enctypes = rc4-hmac des-cbc-md5 default_tgs_enctypes = rc4-hmac des-cbc-md5 forwardable = true renewable = true noaddresses = true clockskew = 300 [realms] WSSEC.AUSTIN.IBM.COM = { kdc = host1.austin.ibm.com:88 default_domain = austin.ibm.com } [domain_realm] .austin.ibm.com = WSSEC.AUSTIN.IBM.COM .raleigh.ibm.com = WSSEC.AUSTIN.IBM.COM
Der Befehl createKrbConfigFile erstellt eine einfache Kerberos-Konfigurationsdatei. Sie können diese Datei bei Bedarf bearbeiten, um eine TCP- oder UDP-Einstellung anzugeben. Dies gilt insbesondere, wenn Sie eine realmübergreifende Umgebung oder eine vertrauenswürdige Realmumgebung haben.
Im Abschnitt [libdefaults] können Sie eine Einstellung für ein TCP- oder ein UDP-Protokoll angeben. Standardmäßig verwendet die Java™-Kerberos-Konfiguration das UDP-Protokoll. Java Kerberos unterstützt jedoch eine TCP- oder UDP-Protokollkonfiguration über den Parameter udp_preference_limit. Wenn Sie das TCP-Protokoll verwenden müssen, geben Sie für den Parameter udp_preference_limit den Wert "1" an. Beispiel:
Wenn Sie diesen Parameter nicht angeben, verwendet die Java-Kerberos-Bibliothek das TCP-Protokoll nur, falls die Anforderung des Kerberos-Tickets über das UDP-Protokoll fehlschlägt und das KDC den Fehlercode KRB_ERR_RESPONSE_TOO_BIG zurückgibt.udp_preference_limit =1
Fehler vermeiden: Wenn der Anwendungsserver eine Clientanforderung empfängt, gibt die im Server befindliche Kerberos-Konfiguration möglicherweise eine Ausnahmebedingung aufgrund einer Verbindungszurücksetzung, eine IOException oder eine Ausnahmebedingung aufgrund einer unterbrochenen Pipe zurück. Der Anwendungsserver versucht dreimal, das richtige Kerberos-Paket zu erfassen. Wenn als Folge eines der drei Versuche ein richtiges Kerberos-Paket zurückgegeben wird, wird die Clientanforderung erfolgreich verarbeitet und Sie können die Ausnahmebedingung ignorieren. Wenn der Anwendungsserver nach drei Versuchen nicht das richtige Kerberos-Paket abrufen kann, schlägt die Clientanforderung fehl. An diesem Punkt empfiehlt es sich, die KDC-, Netz- und Anwendungsserverkonfigurationen zu überprüfen, um die Ursache zu bestimmen. gotcha
- Füllen Sie den Abschnitt
[domain_realm] der Kerberos-Konfigurationsdatei für eine realmübergreifende Umgebung aus.
- [domain_realm]: Gibt eine Umsetzung von einem Domänen- oder Hostnamen in einen Realmnamen an. Der Tag-Name kann ein Host- oder Domänenname sein. Domänennamen wird ein Punkt
('.') als Präfix vorangestellt. Der Wert der Relation ist der Realmname für diesen speziellen Host bzw. diese spezielle Domäne. Hostnamen und Domänennamen sollten
in Kleinbuchstaben angegeben werden. Falls keine Umsetzung anzuwenden ist, wird der Realm des Hosts als Domänenabschnitt des Hostnamens (konvertiert in Großbuchstaben) verwendet. Der folgende Abschnitt [domain_realm] ordnet beispielsweise "tech.ibm.com" dem Realm TEST.AUSTIN.IBM.COM zu:
[domain_realm] .austin.ibm.com = WSSEC.AUSTIN.IBM.COM .raleigh.ibm.com = WSSEC.AUSTIN.IBM.COM
Alle anderen Hosts in den Domänen "austin.ibm.com" und ".raleigh.ibm.com" werden standardmäßig WSSEC.AUSTIN.IBM.COM zugeordnet.
Im folgenden Beispiel ist mehr als ein Kerberos-Realmname vorhanden:[domain_realm] .ibm.com =AUSTIN.IBM.COM ibm.com =AUSTIN.IBM.COM tech.ibm.com =TEST.AUSTIN.IBM.COM .fubar.org =FUBAR.ORG
Alle anderen Hosts in der Domäne ibm.com werden standardmäßig dem Realm AUSTIN.IBM.COM zugeordnet. Alle Hosts in der Domäne "fubar.org" werden standardmäßig dem Realm FUBAR.ORG zugeordnet.
Sehen Sie sich die Einträge für die Hosts ibm.com und "fubar.org" an. Ohne diese Einträge würden die Hosts jeweils den Realms COM und ORG zugeordnet werden.
Wie Sie im KDC die Authentifizierung mit realmübergreifender gegenseitiger Vertrauensbeziehung konfigurieren können, erfahren Sie im Administrator- und Benutzerhandbuch zu Kerberos.
- [domain_realm]: Gibt eine Umsetzung von einem Domänen- oder Hostnamen in einen Realmnamen an. Der Tag-Name kann ein Host- oder Domänenname sein. Domänennamen wird ein Punkt
('.') als Präfix vorangestellt. Der Wert der Relation ist der Realmname für diesen speziellen Host bzw. diese spezielle Domäne. Hostnamen und Domänennamen sollten
in Kleinbuchstaben angegeben werden.
- Sie müssen Informationen zum fremden Realm
zu den Abschnitten
"realms" und "domain_realm" der Kerberos-Konfigurationsdatei hinzufügen:
[realms] AUSTIN.IBM.COM = { kdc = kdc.austin.ibm.com:88 default_domain = austin.ibm.com } FUBAR.ORG = { kdc = kdc.fubar.org:88 default_domain = fubar.org } [domain_realm] austin.ibm.com = AUSTIN.IBM.COM .austin.ibm.com = AUSTIN.IBM.COM fubar.org = FUBAR.ORG .fubar.org = FUBAR.ORG
Bei einer mittelbaren Vertrauensbeziehung erkennen sich zwei Realms gegenseitig an, wenn sie den Zwischenrealms vertrauen, die an der Gewährung eines Tickets beteiligt sind. Wenn jeder an der Gewährung des Servicetickets beteiligte Realm im gesicherten Pfad enthalten ist, gilt das Ticket als vertrauenswürdig. Wie Sie im KDC die mittelbare Vertrauensbeziehung konfigurieren können, erfahren Sie im Administrator- und Benutzerhandbuch zu Kerberos.
Beim Konfigurieren einer mittelbaren Vertrauensbeziehung müssen gesonderte Realms mit realmübergreifender Authentifizierung zwischen A und B sowie zwischen B und C, jedoch nicht zwischen A und C, definiert werden. Bei der mittelbaren Vertrauensbeziehung können REALMA und REALMC miteinander kommunizieren. Dies ist jedoch nur über REALMB möglich.REALMA <-> REALMB <-> REALMC
- Fügen Sie Daten zu Zeilengruppen hinzu. Fügen Sie eine Zeilengruppe [capaths] zu jeder Datei krb5.conf hinzu. Die Datei krb5.conf auf allen Maschinen muss alle drei Realms in der Zeilengruppe [realms] auflisten. REALMA muss sich selbst sowie REALMB und REALMC auflisten. REALMB muss sich selbst sowie REALMA und REALMC auflisten. REALMC muss sich selbst sowie REALMA und REALMB auflisten. Listen Sie in der Zeilengruppe [domain_realm] der Dateien krb5.conf alle drei Hostnamen und Realmnamen auf, damit eine Ausführung von REALMA zu REALMC und von REALMC zu REALMA möglich ist.
[capaths] REALMA.AUSTIN.IBM.COM = { REALMB.AUSTIN.IBM.COM = . REALMC.AUSTIN.IBM.COM = REALMB.AUSTIN.IBM.COM } REALMB.AUSTIN.IBM.COM = { REALMC.AUSTIN.IBM.COM = . REALMA.AUSTIN.IBM.COM = . } REALMC.AUSTIN.IBM.COM = { REALMB.AUSTIN.IBM.COM = . REALMA.AUSTIN.IBM.COM = REALMB.AUSTIN.IBM.COM }
- Setzen Sie die Dateiberechtigung für krb5.conf auf "644".
Das bedeutet, dass Sie die Datei lesen und schreiben können. Mitglieder der Gruppe, zu der die Datei gehört, und alle anderen Benutzer können die Datei jedoch nur lesen.
Da die Kerberos-Konfigurationsdatei und die Chiffrierschlüsseldatei jeweils von der JVM-Systemeigenschaft "java.security.krb5.conf" bzw. "KRB5_KTNAME" festgelegt werden, müssen Sie für die SPNEGO-Webauthentifizierung und die Kerberos-Authentifizierung dieselbe Kerberos-Konfigurationsdatei und Chiffrierschlüsseldatei verwenden, wenn beide Authentifizierungstypen aktiviert sind.
Ergebnisse


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