Das Web-SSO-Szenario

01.04.2006 von Martin Kuppinger
Web SSO steht für Web Single Sign-On. Die Idee ist, dass ein Benutzer mit einer Authentifizierung auf mehrere Systeme zugreifen kann. In den meisten Fällen werden die Web-SSO-Anforderungen mit Hilfe spezialisierter Systeme gelöst, die die Authentifizierung unterschiedlicher Webanwendungen durchführen können. Die ADFS-Lösung ist dagegen weniger flexibel.

Für viele Szenarien ist eine ADFS-Lösung vollkommen ausreichend. Solange als Backend nur mit Anwendungen auf Basis des IIS gearbeitet wird, braucht man keine Web SSO-Lösung mit Unterstützung heterogener Umgebungen.

Das Szenario

Das Szenario für Web-SSO ist relativ einfach (Bild 1): Für den Verzeichnisdienst für die Authentifizierung von Benutzern kann das Active Directory oder ADAM eingesetzt werden. Über einen Client wird auf einen oder mehrere Webserver zugegriffen. Und es gibt einen Federation-Server, der sowohl für die Authentifizierung als auch die Autorisierung des Ressourcenzugriffs verwendet wird.

Bild 1: Der Aufbau einer Web-SSO-Lösung mit den ADFS.

Im einfachsten Szenario stehen alle Systeme bis auf den Client innerhalb eines Netzwerks, also entweder im internen Netzwerk oder in der DMZ (Demilitarisierte Zone der Firewall-Infrastruk tur). Komplexer wird es, wenn die Authentifizierung über Active Directory-Systeme innerhalb des lokalen Netzwerks erfolgen soll, weil hier ein Forest Trust aufgebaut werden muss. Darauf wird in diesem Artikel nicht eingegangen. Das Thema wird gesondert behandelt.

Die ADFS übernehmen in dieser Struktur die Authentifizierung des Benutzers und die Erstellung von Cookies sowie die Authentifizierung für Ressourcenzugriffe.

Die Infrastruktur

Die Infrastruktur für den Test der ADFS besteht aus insgesamt sechs Systemen. Als Minimallösung kann auch mit vier Systemen gearbeitet werden, während für den Aufbau komplexerer Infrastrukturen auch weitere Systeme erforderlich werden können, insbesondere wenn auch Firewalls und Router emuliert werden sollen. Die für den Test dieser und weiterer Federation-Strukturen verwendeten Systeme sind:

Wenn man das vollständige Federation-Szenario für B2B-Umgebungen vor Augen hat, dann befinden sich der Client, der ISP und der ADFSServer für die Identitäten-Domäne innerhalb eines Forests. Die anderen drei Systeme gehören zur Ressourcendomäne.

In diesem Beispiel übernimmt der Domänencontroller der Ressourcendomäne allerdings die Aufgabe des Identity Provider, so dass die Struktur sich etwas unterscheidet.

Die Systemvoraussetzungen sind der Windows Server 2003 R2 für alle ADFS-Server sowie die Webserver. Für die Domänencontroller ist auch die Verwendung des R2 wegen der erforderlichen Schema-Erweiterungen empfehlenswert, aber nicht zwingend. In der Testumgebung wird mit dem Windows Server 2003 mit Service Pack 1 gearbeitet. Der Client muss Windows XP mit Service Pack 2 verwenden.

Zertifikate

In der Testinfrastruktur kommen selbst-signierte Zertifikate zum Einsatz. Dadurch ist es nicht erforderlich, die Zertifikatsdienste zu konfigurieren. Auf deren Einsatz im Zusammenspiel mit den ADFS werden wir in einer späteren Ausgabe von Expert’s inside Windows NT/2000 eingehen.

Die vorbereitenden Schritte

Neben der Konfiguration der Rechner, die sich für den Test in einem Subnetz befinden können, muss das Resource Kit für die IIS 6.0 heruntergeladen und auf allen Server mit den ADFS sowie auf dem Webserver installiert werden. Das Resource Kit enthält die Anwendung SelfSSL.exe, mit der selbstsignierte Zertifikate für den Test der ADFS erstellt werden können.

Außerdem müssen Benutzer und Gruppen eingerichtet werden. Da im beschriebenen Beispiel nur ein Forest und eine Domäne verwendet wird, die sowohl die Überprüfung der Identitäten als auch die Zugriffe auf die Ressourcen übernimmt, müssen alle Benutzer und Ressourcen in dieser Domäne erstellt werden. Minimal sind folgende Benutzer, Gruppen und Strukturen erforderlich:

Die Verwendung einer eigenen OU ist natürlich keineswegs zwingend, schafft aber Klarheit in der Struktur. Der Webserver muss außerdem zu der Ressourcendomäne zugeordnet werden. In späteren Federation-Szenarien muss außerdem der Client der Domäne des Identity Provider zugewiesen werden.

Bild 2: Für den Test werden mehrere Benutzer und Benutzergruppen benötigt.

Die Zertifikate

Der nächste Schritt ist die Erstellung der selbstsignierten Zertifikate und ihre Zuordnung zu den jeweiligen Standardwebsites. Dazu müssen die IIS zunächst auf dem Webserver und dem ADFSServer eingerichtet werden. Das geschieht wie immer über den Bereich Software in der Systemsteuerung und dort über Windows-Komponenten hinzufügen/entfernen. Die IIS werden im Bereich Anwendungsserver aktiviert. Microsoft empfiehlt, die Auswahl Anwendungsserver komplett zu wählen.

Für die Erstellung der Zertifikate muss in das Unterverzeichnis SelfSSL des Installationsverzeichnisses des IIS Resource Kit gewechselt werden. Dort kann das Programm selfssl.exe mit der Syntax

selfssl /t /n:cn=<fullyqualifieddomainname> /v:365

ausgeführt werden. Als Name ist der vollständige Hostname anzugeben (Bild 3). Der Parameter /v gibt die Gültigkeit des Zertifikats in Tagen an. Bei der Abfrage muss angegeben werden, dass das Zertifikat gleich der Standardwebsite der IISInstallation zugewiesen wird.

Bild 3: Für jeden ADFS- und Webserver muss ein selbstsigniertes Zertifikat erstellt werden.

Zusätzlich ist es erforderlich, das Zertifikat des ADFS-Service Provider (Ressourcen-Server) zu exportieren und beim Webserver zu importieren, damit eine Vertrauensstellung auf der Ebene der Zertifikate besteht. Dazu starten Sie den Internetinformationsdienste-Manager, um die Eigenschaften der Standardwebsite zu öffnen. Das erstellte Zertifikat lässt sich hier bei Verzeichnissicherheit mit Zertifikat anzeigen öffnen. Im Register Details findet sich die Schaltfläche In Datei kopieren, mit der Sie den Kopiervorgang starten (Bild 4). Ein Assistent leitet durch diesen Prozess. Der private Schlüssel darf nicht exportiert werden. Als Dateityp muss DER-codiert-binär X.509(.CER) ausgewählt werden. Anschließend muss noch ein Dateiname angegeben werden, bevor der eigentliche Export erfolgen kann.

Bild 4: Die Informationen zu dem selbstsignierten Zertifikat.

Im nächsten Schritt erfolgt der Import über die Anwendung Zertifikate. Dazu muss zunächst über das Startmenü mit mmc.exe eine neue MMC-Konsole gestartet werden, in welche das Snap-In Zertifikate aufgenommen wird, wobei die Zertifikate für das Computerkonto (!) auf dem lokalen Computer verwaltet werden.

In der Anwendung wählt man nun den Bereich Vertrauenswürdige Stammzertifizierungsstellen/Zertifikate. Anschließend lässt sich im Kontextmenü über Alle Aufgaben/Importieren der Importvorgang starten. Er wird durch einen Assistenten unterstützt (Bild 5). Das Zertifikat soll in den Ordner Vertrauenswürdige Stammzertifizierungsstellen gelegt werden, Damit ist der Import abgeschlossen und der ADFS-Server wird als vertrauenswürdig akzeptiert.

Bild 5: Das Zertifikat muss beim Web-Server importiert werden.

Der ADFS-Web-Agent

Nun geht es mit der Einrichtung der ADFS-Komponenten überhaupt erst los. Der erste Schritt ist die Einrichtung der ADFS-Web-Agents auf dem oder den Webservern, die verwendet werden. Dieser Installationsschritt erfolgt über den Bereich Software in der Systemsteuerung. Bei Windows-Komponenten hinzufügen/entfernen kann die Option Active Directory-Dienste und dort wiederum ADFS (Active Directory-Verbunddienste) gewählt werden. Bei den Optionen finden sich die ADFSWeb-Agents als die zu installierende Komponente. Dort können erneut Details eingestellt werden. Hier müssen beide Varianten von Anwendungen (Bild 6) ausgewählt werden. Nach der Auswahl von Weiter beginnt der eigentliche Installationsprozess. In diesem Rahmen wird auch das Microsoft .NET Framework 2.0 installiert, soweit das noch nicht geschehen ist. Da dieses sehr groß ist, dauert der Vorgang einige Minuten.

Bild 6. Die Auswahl der Anwendungstypen bei der Einrichtung des ADFS-Web-Agents.

Federation Services

Weiter geht es mit der Einrichtung des Federation Service auf dem Service Provider. Hier muss die Option Verbunddienst beim Hinzufügen des ADFS ausgewählt werden. Es wird eine Warnung angezeigt, weil das Microsoft .NET Framework 2.0 installiert werden muss. Nach der Auswahl des Dienstes wird zu Beginn der Installation ein Dialogfeld angezeigt, in dem man festlegt, mit welcher Form eines Tokensignaturzertifikats gearbeitet und ob eine neue Vertrauensrichtlinie erstellt werden soll. In beiden Fällen müssen die Standardoptionen gewählt bleiben (Bild 7).

Bild 7: Die Festlegungen zum Zertifikat und zur Vertrauensrichtlinie.

Da nicht mit Zertifikatsdiensten gearbeitet wird, muss ein selbstsignierendes Tokenzertifikat verwendet werden. Die Vertrauensrichtlinie kann nur übernommen werden, wenn nicht der erste Federation Server eingerichtet wird. Nach dem Kopieren der Dateien ist auch dieser Server vorbereitet.

Nun muss noch eine Zuordnung des lokalen Systemkontos auf den Federation-Servern zur Identität ADFSAppPool erfolgen, falls die Systeme auch als Domänencontroller konfiguriert sind. Da im Beispiel getrennte Systeme zum Einsatz kommen, ist das aber nicht erforderlich.

Konfiguration des Federation-Servers

Der nächste Schritt ist die Konfiguration des Federation-Servers. Dazu wird die Anwendung Active Directory-Verbunddienste im Menü Verwaltung auf dem Federation-Server verwendet. Hier ein erster Überblick, den wir im zweiten Teil der Serie vertiefen. Zu der Konfiguration gehören mehrere Schritte:

Alle diese Festlegungen lassen sich über die Anwendung Active Directory-Verbunddienste vornehmen.

Der erste Schritt ist die Konfiguration der Vertrauensrichtlinie oder Trust Policy. Die Vertrauensrichtlinie wird unterhalb von Verbunddienst angezeigt. Bei den Eigenschaften können die Festlegungen gesetzt werden. Der erste Schritt ist die Konfiguration der Verbunddienst-URI und des URLs für die Federation. Die URI sollte den Namen der Domäne enthalten, in der sich die Ressourcen befinden. Der URL sollte den vollständigen Servernamen enthalten (Bild 8).

Bild 8: Die Konfiguration der Vertrauensrichtlinie (WS-Trust) erfolgt über die Anwendung Active Directory-Verbunddienste.

Im Register Anzeigenamen sollte der Anzeigename auf den Namen der Domäne geändert werden. Weitere Einstellungen betreffen unter anderem die Zertifikate. In diesem Schritt sind noch keine Anpassungen erforderlich.

Der nächste Schritt ist die Konfiguration der Claims oder Ansprüche. Dazu wird im Bereich Organisationsansprüche ein neuer Claim erstellt. Geben Sie diesem einen eindeutigen, leicht nachvollziehbaren Namen. Der Anspruch wird in der Regel als Gruppenanspruch definiert, der die Zuordnung einer Gruppe steuert. Diese Zuordnung kann zu einer Gruppe erfolgen, die aus dem Active Directory ausgewählt wird.

Ein weiterer wichtiger Schritt ist die Festlegung des Kontospeichers. Das ist der Verzeichnisdienst, der für die Authentifizierung verwendet wird. Hier haben Sie die Wahl zwischen dem Active Directory und ADAM (Bild 9).

Bild 9: Bei der Konfiguration des Kontospeichertyps wird zwischen dem Active Directory und ADAM unterschieden.

Ein weiterer Schritt ist die Festlegung der Anwendungen, die bei der Federation verwendet werden. Hier müssen alle Anwendungen angegeben werden, auf die zugegriffen wird und für die Zugriffe verwaltet werden. Für die Anwendung wird ein Name und ein URL festgelegt. Der URL muss bekannt sein, weshalb in der Regel vorher die Anwendungen auf den Webservern eingerichtet werden.

An dieser Stelle wird das Konzept noch einmal deutlich, weil die beiden unterstützten Arten von Anwendungen Webanwendungen sind, die über den Browser genutzt werden können. Da die ADFS derzeit nur das passive Requestor-Profile unterstützen, ist diese Einschränkung auch logisch.

An diesen verschiedenen Komponenten wird außerdem deutlich, dass das Konzept der Federation nicht trivial ist – man muss vorher genau planen, welche Systeme und Anwendungen in welcher Form zusammenarbeiten sollen.

Wie geht es weiter?

Im zweiten Teil der Serie wird die Konfiguration der Federation Services fortgesetzt. Dabei geht es darum, einerseits den Federation-Server und andererseits die Webanwendungen zu konfigurieren. Außerdem wird auf die Nutzung der Federation-Funktionalität eingegangen.