Kerberos-Service-Principal-Namen und eine Chiffrierschlüsseldatei erstellen

Diese Task ist für die Verarbeitung von SPNEGO-Web- oder Kerberos-Authentifizierungsanforderungen an WebSphere Application Server erforderlich. Für die Erstellung eines Kerberos-Service-Principal-Namens und einer Chiffrierschlüsseldatei können Sie die KDCs (Key Distribution Center) der Betriebssysteme von Microsoft Windows, IBM i, Linux, Solaris, Massachusetts Institute of Technology (MIT) und z/OS verwenden.

Informationen zu diesem Vorgang

Kerberos-Service-Principal-Namen und Chiffrierschlüsseldatei mit dem KDC von Microsoft Windows erstellen

Diese Task wird auf der Domänencontrollermaschine mit Active Directory ausgeführt. Führen Sie die folgenden Schritte aus, um sicherzustellen, dass Microsoft Windows 2000 oder Windows 2003 Server mit dem aktiven Active Directory-Domänencontroller ordnungsgemäß für das zugehörige Key Distribution Center (KDC) konfiguriert ist.

  1. Erstellen Sie ein Benutzerkonto in Microsoft Active Directory für WebSphere Application Server.

    Klicken Sie auf Start > Programme > Verwaltung > Active Directory-Benutzer und -Computer.

    Verwenden Sie den Namen für WebSphere Application Server. Wenn der Anwendungsserver, den Sie auf der WebSphere Application Server-Maschine ausführen, beispielsweise den Namen myappserver.austin.ibm.com hat, erstellen Sie in Active Directory einen neuen Benutzer mit dem Namen myappserver.

    Stellen Sie sicher, dass unter "Computer und Domänencontroller" nicht der Computername myappserver aufgelistet ist. Wenn Sie bereits einen Computer mit dem Namen myappserver haben, müssen Sie ein anderes Benutzerkonto erstellen.
    • Klicken Sie auf Start > Programme > Verwaltung > Active Directory-Benutzer und -Computer > Computer.
    • Klicken Sie auf Programme > Verwaltung > Active Directory-Benutzer und -Computer > Domänencontroller.
  2. Verwenden Sie den Befehl setspn, um dem Namen des Kerberos-Service-Principals <Servicename>/<vollständig qualifizierter Hostname> einem Microsoft-Benutzerkonto zuzuordnen.

    Der Servicename für die SPNEGO-Webauthentifizierung muss HTTP sein. Für die Kerberos-Authentifizierung kann jedoch jede Zeichenfolge, die vom KDC unterstützt wird, als Servicename angegeben werden.

    Nachfolgend sehen Sie ein Beispiel für die Verwendung des Befehls setspn für die SPNEGO-Webauthentifizierung:

    C:\Program Files\Support Tools>
    setspn -A HTTP/myappserver.austin.ibm.com myappserver
    Anmerkung: Der Hostname muss ein vollständig qualifizierter Hostname sein.
    Wichtig: Stellen Sie sicher, dass nicht mehreren Microsoft-Benutzerkonten dieselben SPNs (Service Principal Names) zugeordnet sind. Wenn Sie einen SPN mehreren Benutzerkonten zuordnen, kann der Web-Browser-Client WebSphere Application Server ein NTLM-Token (NT LAN Manager) anstelle eines SPNEGO-Tokens zuordnen.
  3. Erstellen Sie die Kerberos-Chiffrierschlüsseldatei und stellen Sie sie für WebSphere Application Server zur Verfügung. Verwenden Sie das Tool ktpass aus dem Windows-Server-Toolkit, um die Kerberos-Chiffrierschlüsseldatei (krb5.keytab) für den SPN zu erstellen.
    Anmerkung: Eine Kerberos-Chiffrierschlüsseldatei enthält eine Liste von Schlüsseln, die zu Benutzerkennwörtern analog sind. Hosts müssen ihre Kerberos-Chiffrierschlüsseldateien unbedingt schützen. Dazu werden sie auf der lokalen Festplatte gespeichert.

    Verwenden Sie das Tool ktpass aus dem Windows-Server-Toolkit, um die Kerberos-Chiffrierschlüsseldatei für den Service Principal Name (SPN) zu erstellen. Verwenden Sie die aktuelle Version des Tools ktpass für die von Ihnen verwendete Version von Windows Server. Verwenden Sie beispielsweise die Windows-2003-Version des Tools für Windows 2003.

    Führen Sie den Befehl ktpass -? über die Befehlszeile aus, um die richtigen Parameterwerte für das Tool ktpass zu bestimmen. Dieser Befehl zeigt an, ob das Tool ktpass für das jeweilige Betriebssystem den Parameterwert -crypto RC4-HMAC oder -crypto RC4-HMAC-NT verwendet. Damit keine Warnungen vom Toolkit ausgegeben werden, müssen Sie den Parameterwert -ptype KRB5_NT_PRINCIPAL angeben.

    Die Version des Tools ktpass für Windows 2003 Server unterstützt den Verschlüsselungstyp RC4-HMAC und single Data Encryption Standard (DES). Weitere Informationen zum Tool ktpass finden Sie unter Windows 2003 Technical Reference - Ktpass overview.

    Der folgende Code zeigt die Funktionen, die verfügbar sind, wenn Sie den Befehl ktpass -? über die Befehlszeile eingeben. Diese Informationen können je nach verwendeter Version des Toolkit unterschiedlich sein:
    C:\Program Files\Support Tools>ktpass -?                                  
    Command line options:
                                                                              
    ---------------------most useful args
    [- /]          out : Keytab to produce
    [- /]        princ : Principal name (user@REALM)
    [- /]         pass : password to use
                         use "*" to prompt for password.
    [- +]      rndPass : ... or use +rndPass to generate a random password    
    [- /]      minPass : minimum length for random password (def:15)          
    [- /]      maxPass : maximum length for random password (def:256)         
    ---------------------less useful stuff
    [- /]      mapuser : map princ to this user account (default: don't)
    [- /]        mapOp : how to set the mapping attribute (default: add it)
    [- /]        mapOp :  is one of:
    [- /]        mapOp :        add : add value (default)
    [- /]        mapOp :        set : set value
    [- +]      DesOnly : Set account for des-only encryption (default:don't)  
    [- /]           in : Keytab to read/digest
    ---------------------options for key generation
    [- /]       crypto : Cryptosystem to use
    [- /]       crypto :  is one of:
    [- /]       crypto : DES-CBC-CRC : for compatibility
    [- /]       crypto : DES-CBC-MD5 : for compatibliity                      
    [- /]       crypto : RC4-HMAC-NT : default 128-bit encryption             
    [- /]        ptype : principal type in question
    [- /]        ptype :  is one of:
    [- /]        ptype : KRB5_NT_PRINCIPAL : The general ptype-- recommended
    [- /]        ptype : KRB5_NT_SRV_INST : user service instance
    [- /]        ptype : KRB5_NT_SRV_HST : host service instance
    [- /]         kvno : Override Key Version Number
                         Default: query DC for kvno.  Use /kvno 1 for Win2K compat.
    [- +]       Answer : +Answer answers YES to prompts.  -Answer answers NO.
    [- /]       Target : Which DC to use.  Default:detect
    ---------------------options for trust attributes (Windows Server 2003    
    Sp1 Only                                                                  
    [- /] MitRealmName : MIT Realm which we want to enable RC4 trust on. [- /]  TrustEncryp : Trust Encryption to use; DES is default              
    [- /]  TrustEncryp :  is one of:                                          
    [- /]  TrustEncryp :        RC4 : RC4 Realm Trusts (default)              
    [- /]  TrustEncryp :        DES : go back to DES
    Wichtig: Verwenden Sie zum Zurücksetzen eines Kennworts für ein Microsoft Windows-Serverkonto nicht den Schalter -pass mit dem Befehl ktpass.
    Weitere Informationen finden Sie unter Windows 2003 Technical Reference - Ktpass overview.
    Je nach Verschlüsselungstyp verwenden Sie das Tool ktpass auf eine der folgenden Arten, um die Kerberos-Chiffrierschlüsseldatei zu erstellen. Im folgenden Abschnitt werden die verschiedenen Verschlüsselungstypen beschrieben, die vom Tool "ktpass" verwendet werden. Es ist wichtig, dass Sie den Befehl "ktpass -?" ausführen, um zu bestimmen, welcher Wert für den Parameter "-crypto" von der jeweiligen Version des Toolkits für Ihre Microsoft Windows-Umgebung erwartet wird.
    • Gehen Sie für den Verschlüsselungstyp Single DES wie folgt vor:
      Führen Sie in einer Eingabeaufforderung den Befehl ktpass aus:
      ktpass -out c:\temp\myappserver.keytab
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 
      -mapUser myappserv 
      -mapOp set 
      -pass was1edu
      -crypto DES-CBC-MD5 
      -pType KRB5_NT_PRINCIPAL
      +DesOnly
      Tabelle 1. ktpass für Verschlüsselungstyp Single DES verwenden .

      In dieser Tabelle wird beschrieben, wie Sie "ktpass" für den Verschlüsselungstyp "Single DES" verwenden.

      Option Erläuterung
      -out c:\temp\myappserver.keytab Der Schlüssel wird in diese Ausgabedatei geschrieben.
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM Die Verknüpfung des Benutzeranmeldenamens und des Realms muss in Großbuchstaben angegeben werden.
      -mapUser Der Schlüssel wird dem Benutzer "myappserver" zugeordnet.
      -mapOp Diese Option legt die Zuordnung fest.
      -pass was1edu Diese Option gibt das Kennwort für die Benutzer-ID an.
      -crypto DES-CBC-MD5 Diese Option verwendet den Verschlüsselungstyp Single DES.
      -pType KRB5_NT_PRINCIPAL Diese Option gibt den KRB5_NT_PRINCIPAL-Principal-Wert an. Geben Sie diese Option an, um die Ausgabe von Warnungen durch das Toolkit zu verhindern.
      +DesOnly Diese Option generiert nur DES-Verschlüsselungen.
    • Geben Sie für den Verschlüsselungstyp RC4-HMAC Folgendes ein:
      Wichtig: Die Verschlüsselung RC4-HMAC wird nur unterstützt, wenn Sie Windows 2003 Server als KDC verwenden.
      Führen Sie in einer Eingabeaufforderung den Befehl ktpass aus:
      ktpass -out c:\temp\myappserver.keytab 
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 
      -mapUser myappserver
      -mapOp set 
      –pass was1edu 
      -crypto RC4-HMAC
      -pType KRB5_NT_PRINCIPAL
      Tabelle 2. ktpass für Verschlüsselungstyp RC4-HMAC verwenden
      Option Erläuterung
      -out c:\temp\myappserver.keytab Der Schlüssel wird in diese Ausgabedatei geschrieben.
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM Die Verknüpfung des Benutzeranmeldenamens und des Realms muss in Großbuchstaben angegeben werden.
      -mapUser Der Schlüssel wird dem Benutzer "myappserver" zugeordnet.
      -mapOp Diese Option legt die Zuordnung fest.
      -pass was1edu Diese Option gibt das Kennwort für die Benutzer-ID an.
      -crypto RC4-HMAC Mit dieser Option wird der Verschlüsselungstyp RC4-HMAC ausgewählt.
      -pType KRB5_NT_PRINCIPAL Diese Option gibt den KRB5_NT_PRINCIPAL-Principal-Wert an. Geben Sie diese Option an, um die Ausgabe von Warnungen durch das Toolkit zu verhindern.
    • Für den Verschlüsselungstyp RC4-HMAC-NT:
      Führen Sie in einer Eingabeaufforderung den Befehl ktpass aus:
      ktpass -out c:\temp\myappserver.keytab 
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 
      -mapUser myappserver
      -mapOp set 
      -pass was1edu 
      -crypto RC4-HMAC-NT
      -pType KRB5_NT_PRINCIPAL
      Tabelle 3. Für den Verschlüsselungstyp RC4-HMAC-NT:
      Option Erläuterung
      -out c:\temp\myappserver.keytab Der Schlüssel wird in diese Ausgabedatei geschrieben.
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM Die Verknüpfung des Benutzeranmeldenamens und des Realms muss in Großbuchstaben angegeben werden.
      -mapUser Der Schlüssel wird dem Benutzer "myappserver" zugeordnet.
      -mapOp Diese Option legt die Zuordnung fest.
      -pass was1edu Diese Option gibt das Kennwort für die Benutzer-ID an.
      -crypto RC4-HMAC-NT Diese Option wählt den Verschlüsselungstyp RC4-HMAC-NT aus.
      -pType KRB5_NT_PRINCIPAL Diese Option gibt den KRB5_NT_PRINCIPAL-Principal-Wert an. Geben Sie diese Option an, um die Ausgabe von Warnungen durch das Toolkit zu verhindern.
      Die Kerberos-Chiffrierschlüsseldatei für SPNEGO ist erstellt.

Kerberos-Service-Principal-Namen und eine Chiffrierschlüsseldatei mit den KDCs von iSeries, Linux, Solaris und MIT erstellen

Informieren Sie sich in den Dokumenten zu Ihrer Kerberos-Implementierung über die Befehle kadmin, kadmin.local addprinc und ktadd.

Diese Task wird auf einer Maschine mit dem KDC von Linux, Solaris oder MIT ausgeführt.

  1. Erstellen Sie einen Kerberos-Service-Principal für die Kerberos-Authentifizierung, z. B.:
    WAS/testmach.austin.ibm.com 
    kadmin.local: addprinc WAS/testmach.austin.ibm.com 
  2. Fügen Sie den neu erstellten Kerberos-Service-Principal WAS/testmach.austin.ibm.com zu einer Standarddatei krb5.keytab hinzu, z. B.:
    kadmin.local: ktadd WAS/testmach.austin.ibm.com 

Kerberos-Service-Principal-Namen und eine Chiffrierschlüsseldatei mit dem KDC von z/OS erstellen

Vor Verwendung der SPNEGO-Webauthentifizierung (Simple and Protected GSS-API Negotiation) und der Kerberos-Authentifizierung muss der WebSphere Application Server-Administrator auf dem Host, auf dem WebSphere Application Server ausgeführt wird, eine Kerberos-Chiffrierschlüsseldatei erstellen.

Gehen Sie wie folgt vor, um einen SPN (Service-Principal-Namen) zu erstellen:

  1. Die Kerberos-ID (KERBNAME) muss das Format <Service>/<vollständig qualifizierter Systemname> haben.
  2. Im folgenden Beispiel wird der Kerberos-SPN für die SPNEGO-Webauthentifizierung (HTTP/host1.pok.ibm.com) erstellt:
    ALTUSER ASCR1 KERB(KERBNAME(HTTP/host1.pok.ibm.com))
    Fehler vermeiden Fehler vermeiden: Sie müssen sicherstellen, dass die Liste der unterstützten Verschlüsselungstypen, die mit dem Befehl ALTUSER angegeben wird, mit den Angaben konsistent ist, die in der Kerberos-Konfigurationsdatei "krb5.conf" angegeben sind. Wenn in der Konfigurationsdatei "krb5.conf" beispielsweise angegeben ist, dass nur aes256-cts-hmac-sha1-96 unterstützt wird, muss im Operanden ENCRYPT alle Verschlüsseltypen mit Ausnahme von AES256 als nicht unterstützt gekennzeichnet sein.gotcha
  3. Generieren Sie den Kerberos-Schlüssel für diesen Benutzer. Zu diesem Zweck müssen Sie der ID ein Kennwort zuordnen. Verwenden Sie diese ID nicht für die Anmeldung am System. Geben Sie die beiden folgenden Zeilen ein, sobald ein neuer Kerberos-Schlüssel erforderlich ist.
    Anmerkung: Der WebSphere- oder KDC-Administrator muss dieses Kennwort kennen, um in der Chiffrierschlüsseldatei einen Eintrag erstellen zu können.
    ALTUSER ASCR1 PASSWORD(was1krb) NOEXPIRED
    ALTUSER ASCR1 NOPASSWORD
  4. Prüfen Sie, ob dieser Benutzer ein gültiges Kerberos-Segment und einen Schlüssel hat, z. B.:
    LISTUSER ASCR1 KERB NORACF
     USER=ASCR1                            
     KERB INFORMATION                      
     ----------------                      
     KERBNAME= HTTP/host1.pok.ibm.com        
     KEY VERSION= 001                      
     KEY ENCRYPTION TYPE= DES NODES3 NODESD

    Verwenden Sie den Java-Kerberos-Befehl ktab (<$WAS_HOME>/java/bin/ktab), um eine Kerberos-Chiffrierschlüsseldatei (krb5.keytab) zu erstellen. Gehen Sie dazu wie folgt vor:

  5. Geben Sie in einer Befehlszeile den Befehl ktab –help ein, um die Syntax für diesen Befehl abzurufen. Beispiel:
    (host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(189):>ktab -help
    Syntax: java com.ibm.security.krb5.internal.tools.Ktab [Optionen]
    Verfügbare Optionen:
            -l     Namen und Einträge der Chiffrierschlüsseldatei auflisten
            -a <Principalname> [Kennwort]  Eintrag zur Chiffrierschlüsseldatei hinzufügen
            -d <Principalname> Eintrag aus der Chiffrierschlüsseldatei löschen
            -k <Name_des_Chiffrierschlüssels>    Namen und Pfad der Chiffrierschlüsseldatei mit Präfix "FILE:" angeben
            -m <Name_der_Quellenchiffrierschlüsseldatei>  <Name_der_Zielchiffrierschlüsseldatei>       Namen der Quellen- und Zielchiffrierschlüsseldateien für die Zusammenführung angeben   
  6. Geben Sie in einer Befehlszeile den Befehl ktab ein, um den SPN einer Standardchiffrierschlüsseldatei zuzuordnen, z. B.:
    (host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(201):>ktab -a
    HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM ot56prod
    Done!
    Service key for principal HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM saved
  7. Prüfen Sie, ob die Standardchiffrierschlüsseldatei den richtigen SPN enthält, z. B.:
    (host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(202):>ktab
    1 entries in keytab, name: /etc/skrb/krb5.keytab
            KVNO    Principal
            ----    ---------
            1       HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM
Machen Sie die Chiffrierschlüsseldatei für WebSphere Application Server verfügbar. Kopieren Sie die Datei krb5.keytab vom KDC auf die Maschine mit WebSphere Application Server. Kopieren Sie sie an die Position, die in der Kerberos-Konfigurationsdatei (krb5.ini oder krb5.conf) angegeben ist. Beispiel:
ftp> bin
ftp> put c:\temp\KRB5_NT_SEV_HST\krb5.keytab
Anmerkung: Eine Kerberos-Konfigurationsdatei für Chiffrierschlüssel enthält eine Liste von Schlüsseln, die zu Benutzerkennwörtern analog sind. 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.
Verwenden Sie den Befehl "validateKrbConfig", um die Dateien "krb5.conf" und "krb5.keytab" zu validieren, z. B.:
wsadmin>$AdminTask help validateKrbConfig 
Anmerkung: Die Kerberos-Chiffrierschlüsseldatei wird für die Kerberos-Authentifizierung als auch für die SPNEGO-Webauthentifizierung verwendet. Sie wird einmal geladen und kann nicht aktualisiert werden.

Die gilt jedoch nicht, wenn JDK 1.6 mit SR3 installiert ist.

Anmerkung: Wenn Sie Ihre Chiffrierschlüsseldateien zusammenführen müssen, wird empfohlen, den Befehl ktab mit der Option -m zu verwenden.

Ergebnisse

Sie haben einen Kerberos-Service-Principal-Namen und eine Chiffrierschlüsseldatei in dem KDC erstellt, das WebSphere Application Server für die Verarbeitung von SPNEGO- und/oder Kerberos-Authentifizierungsanforderungen verwendet.


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=tsec_kerb_create_spn
Dateiname:tsec_kerb_create_spn.html