Single Sign-on mit SPNEGO in einer Active Directory-Domäne implementieren

Es steht ein SPNEGO-Mechanismus (Simple and Protected GSS-API Negotiation) für die Implementierung von Single Sign-on in Active Directory-Domänen zur Verfügung.

Vorbereitende Schritte

Für diese Aufgabe sind folgende Elemente im Netzwerk erforderlich:

Die folgenden Verfahren enthalten Beispiele, die auf folgender Konfiguration basieren:
  • mycompany.com ist der Name der TCP/IP-Domäne, die von allen Hosts in der Domäne verwendet wird.
  • ITDEV.COM ist der Name der Active Directory-Domäne.
  • it_directory.mycompany.com ist der Host, auf dem der Verzeichnisserver aktiv ist. Das Kerberos-KDC wird ebenfalls auf diesem Host ausgeführt.
  • it_domain.mycompany.com ist der Host, auf dem der Active Directory-Domänencontroller aktiv ist.
  • it_buildforge.mycompany.com ist der Host, auf dem Build Forge installiert ist.
  • bfuser ist der Domänenbenutzername für das Build Forge-System.
  • happy_user ist der Domänenbenutzername eines Beispielbenutzers, der SSO in einem Web-Browser für den Zugriff auf Build Forge verwendet.

Informationen zu diesem Vorgang

Führen Sie die folgenden Aufgaben aus, um SPNEGO SSO in einer Active Directory-Domäne und einem Active Directory-KDC zu implementieren. Jede Aufgabe wird in einem separaten Abschnitt detailliert erläutert.
Anmerkung: Der SPNEGO-Abfangprozess kann mit anderen KDCs als Active Directory verwendet werden.

Vorgehensweise

  1. Richten Sie Active Directory-Benutzer und Dienstprinzipale ein.
  2. Richten Sie Kerberos-Dateien ein.
  3. Konfigurieren Sie Build Forge für die Verwendung von Active Directory und SPNEGO.
  4. Konfigurieren Sie Browser-Clients für den sicheren Zugriff.
  5. Greifen Sie über SSO auf Build Forge zu.

Active Directory-Benutzer und Dienstprinzipale einrichten

Der Build Forge-Server und die Build Forge-Clients müssen in einer Active Directory-Domäne eingerichtet werden.

Vorbereitende Schritte

Für das folgende Verfahren sind die Supporttools für Windows Server 2003 SP2 erforderlich. Diese enthalten den Befehl setspn, der zum Festlegen eines Dienstprinzipals in Active Directory erforderlich ist. Installieren Sie die Supporttools von der Windows Server 2003-Produkt-CD oder aus dem Microsoft Download Center.

Informationen zu diesem Vorgang

Wenn sich der Build Forge-Client und -Server in einer Active Directory-Domäne befinden, generiert ein Benutzer bei der Anmeldung an einem Windows-Host ein Token mit den Kerberos-Berechtigungsnachweisen. Versucht der Benutzer dann, auf den Build Forge-Server zuzugreifen, empfängt der SPNEGO-Abfangprozess das Benutzertoken und validiert dieses. Die validierte Identität wird an Build Forge übergeben, damit die Anmeldung über den konfigurierten Microsoft Active Directory-LDAP-Server erfolgt.

Vorgehensweise

  1. Melden Sie sich am Domänencontroller-Host an. Im vorliegenden Beispiel ist dies der Host it_example.mycompany.com.
  2. Fügen Sie den Build Forge-Host zur Active Directory-Domäne hinzu, falls er nicht bereits Mitglied ist. In diesem Beispiel wird der Host it_buildforge zur Domäne ITDEV.COM hinzugefügt. Der Host weist nun einen vollständig qualifizierten Namen in der Domäne auf: it_buildforge.ITDEV.COM
  3. Fügen Sie einen Build Forge-Benutzer zur Active Directory-Domäne hinzu. Im vorliegenden Beispiel wird der Benutzer bfuser erstellt.
    Wichtig:
    • Wählen Sie Kennwort läuft nie ab aus. Sie können auch eine andere Option für das Kennwortmanagement auswählen. Allerdings müssen Sie dann jedes Mal, wenn das Kennwort abläuft, ein neues Kennwort für den Build Forge-Server eingeben.
    • Wählen Sie auf der Registerkarte Konten die Option Konto wird für Delegierungszwecke vertraut aus.
  4. Erstellen Sie in Microsoft Active Directory Benutzerkonten für alle Clients, sofern sie noch nicht vorhanden sind. Im vorliegenden Beispiel muss nur der Benutzer happy_user erstellt werden.
  5. Erstellen Sie einen Dienstprinzipalnamen (SPN) für Build Forge. Im vorliegenden Beispiel wird der Active Directory-Benutzer bfuser dem Dienstnamen HTTP/it_buildforge.mycompany.com zugeordnet, um den SPN für den Build Forge-Server it_buildforge zu erstellen.
    setspn -A HTTP/it_buildforge.mycompany.com bfuser

    HTTP ist der Dienstname für den Build Forge-Service.

Dateien für die Kerberos-Authentifizierung einrichten

Auf dem Build Forge-Host müssen eine Startdatei (Kerberos-Clientkonfigurationsdatei) und eine Chiffrierschlüsseldatei eingerichtet werden.

Vorgehensweise

  1. Richten Sie die Startdatei auf dem Host ein, auf dem Build Forge ausgeführt wird.
    • Windows-Systeme:
      • Weisen Sie der Datei den Namen krb.ini zu und legen Sie sie im Verzeichnis C:\winnt ab. Falls C:\winnt nicht vorhanden ist, erstellen Sie das Verzeichnis.
      • Setzen Sie default_keytab_name auf FILE:C:\winnt\krb5.keytab.
    • UNIX- und Linux-Systeme:
      • Weisen Sie der Datei den Namen krb.conf zu und legen Sie sie im Verzeichnis C:\winnt ab.
      Setzen Sie default_keytab_name auf FILE:/etc/krb5.keytab.

    Die Datei im folgenden Beispiel wird für Windows mit den Domänen- und Realmeinstellungen der Beispielsysteme eingerichtet.

    [libdefaults]
    	default_realm = ITDEV.COM
    	default_keytab_name = FILE:C:\winnt\krb5.keytab
    	default_tkt_enctypes = rc4_hmac
    	default_tgs_enctypes = rc4_hmac
    #	kdc_default_options = 0x40800000
    	forwardable  = true
    	renewable  = true
    	noaddresses = true
    	clockskew  = 300
    [realms]
    	ITDEV.COM = {
    		kdc = it_directory.itdev.com:88
    		default_domain = mycompany.com
    [domain_realm]
    	.mycompany.com = ITDEV.COM
    Anmerkung: Token funktionieren nicht, wenn die Zeitabweichung zwischen Client-Hosts und dem Build Forge-Server mehr als 300 Sekunden beträgt. Setzen Sie Zeit, Datum und Zeitzone auf den Client- und Server-Hosts auf Werte innerhalb der Abweichungsgrenzen.
  2. Richten Sie eine Kerberos-Chiffrierschlüsseldatei ein. Die Chiffrierschlüsseldatei wird vom Build Forge-Server zum Validieren von Kerberos-Token verwendet, wenn ein Client versucht, auf die Build Forge-Server-URL zuzugreifen. Verwenden Sie zum Erstellen der Datei den Befehl ktpass auf dem Domänencontroller-Host. Der Befehl ktpass ist im erforderlichen Windows Resource Toolkit enthalten. Im folgenden Beispiel werden der Prinzipalname des Build Forge-Service und der Active Directory-Benutzername verwendet, die im Beispielszenario für Build Forge eingerichtet wurden. Ersetzen Sie -pass Rat1onal durch Ihr eigenes Kennwort. Im Beispiel wurden zur Verdeutlichung Zeilenumbrüche eingefügt. Verwenden Sie diese im Befehl "ktpass" nicht.
    ktpass -out C:\it_buildforge.keytab 
    -princ HTTP/it_buildforge.mycompany.com@ITDEV.COM 
    -mapuser bfuser -mapop set 
    -pass Rat1onal /crypto RC4-HMAC-NT /rndpass /ptype KRB5_NT_SRV_HST
    Benennen Sie "it_buildforge.keytab" in "krb5.keytab" um und legen Sie die Datei auf dem Build Forge-Host in dem Verzeichnis ab, das die Kerberos-Startdatei enthält.
    • Windows: C:\winnt\
    • UNIX und Linux: /etc

Build Forge für die Verwendung von Active Directory und SPNEGO konfigurieren

Vorgehensweise

  1. Konfigurieren Sie in Build Forge LDAP so, dass auf den Active Directory-Domänencontroller verwiesen wird.
    1. Klicken Sie in Build Forge auf Verwaltung > LDAP.
    2. Konfigurieren Sie den Zugriff auf den Domänencontroller, indem Sie eine neue LDAP-Konfiguration erstellen und die Eigenschaften wie folgt festlegen.
      • Name: Legen Sie hier den Namen der Active Directory-Domäne fest. In der Beispielumgebung lautet dieser itdev.
      • Definierter Name des Administrators: Legen Sie hier einen Benutzer mit Administratorberechtigung in der Domäne fest.
      • Zugriffsgruppen zuordnen: Nein
      • Host: Legen Sie hier die IP-Adresse des Domänencontroller-Hosts fest.
      • Benutzerkonto binden: Ja
      • Protokoll: LDAP
      • Name anzeigen: displayname
      • Definierter Name: distinguishedname
      • Gruppenname: memberof
      • E-Mail-Name: displayname
      • Suchbasis: on=users,do=domänenname,do=domänenerweiterung. In der Beispielumgebung lautet die Einstellung on=users,do=itdev,do=.com.
      • Eindeutige Kennung: sAMAccountNames=%
    3. Klicken Sie auf Als Standard definieren. Diese Konfiguration muss die LDAP-Standardkonfiguration sein.
  2. Setzen Sie Build Forge-Umgebungsvariablen für SPNEGO.
    1. Wechseln Sie in Build Forge zu Umgebungen > Umgebung für SPNEGO SSO.
    2. Setzen Sie bf_spnego_service_name auf "HTTP". Dies stimmt mit dem Dienstprinzipalnamen überein.
    3. Setzen Sie bf_spnego_server_name auf it_buildforge.mycompany.com, den vollständig qualifizierten Hostnamen für den Build Forge-Server-Host. Wenn diese Variable nicht gesetzt ist, versuchen INetAddress-APIs, den Hostnamen zu finden.
    4. Setzen Sie bf_spnego_realm auf "ITDEV.COM", den Kerberos-Realmnamen. Wenn diese Variable nicht gesetzt ist, wird der Wert in der Kerberos-Startdatei verwendet.
  3. Aktivieren Sie den SPNEGO-Abfangprozess.
    1. Wechseln Sie in Build Forge zu Verwaltung > Sicherheit > SSO > SPNEGO SSO-Abfangprozess.
    2. Setzen Sie die Eigenschaft "Aktiv" auf "Ja" und klicken Sie dann auf Speichern.
    3. Verschieben Sie unter Verwaltung > Sicherheit > SSO den Eintrag SPNEGO SSO-Abfangprozess an den Anfang der Liste. Verwenden Sie die Option An den Anfang verschieben im Menü "SSO-Optionen" für "SPNEGO SSO-Abfangprozess" und klicken Sie dann auf Speichern.

Client-Browser für SSO konfigurieren

In Client-Browsern müssen die Sicherheitseinstellungen für die Verwendung von SPNEGO konfiguriert werden.

Informationen zu diesem Vorgang

Gehen Sie bei der Clientkonfiguration nach den Anweisungen für den jeweils für den Zugriff auf Build Forge verwendeten Browser, also Microsoft Internet Explorer oder Mozilla Firefox, vor.

Vorgehensweise

Über SSO auf Build Forge zugreifen

Geben Sie die Server-URL ein, um die Anmeldung über SSO zu testen.

Vorgehensweise

  1. Melden sich an einem Host an, der sich in der Active Directory-Domäne befindet. Verwenden Sie dazu einen Benutzernamen aus der Active Directory-Benutzerliste.
  2. Öffnen Sie den Browser.
  3. Geben Sie die URL für den Build Forge-Server-Host ein. In der Beispielkonfiguration lautet diese http://it_buildforge.mycompany.com. Wenn SSO ordnungsgemäß konfiguriert ist, wird die Build Forge-Managementkonsole angezeigt.
  4. Stellen Sie sicher, dass der oben rechts in der Build Forge-Konsole angezeigte Benutzername mit dem Windows-Anmeldenamen des Clients übereinstimmt.

Feedback