Wie in Teil 1 schon angesprochen, geht es im zweiten Teil der Blogreihe zum Thema ShareFile und SAML mit Microsoft ADFS um die Installation und Einrichtung der Authentifizierung mittels SAML über Microsoft ADFS 2.0.

ADFS 2.0 wird auf den Betriebssystemen Windows Server 2008 und Windows Server 2008 R2 unterstützt. Keine dieser beiden Servern hat eine entsprechende Rolle mit der ADFS 2.0 installiert werden würde, daher muss ADFS 2.0 von der Microsoft Webseite heruntergeladen werden:

http://www.microsoft.com/de-DE/download/details.aspx?id=10909

Nachdem die Software heruntergeladen wurde, kann sie installiert werden (ein auf den aktuellsten Stand gepatchten Windows Server, der Mitglied der Domäne ist vorausgesetzt). Die benötigten Rollen oder Features werden während der Installation automatisch installiert.

Starten Sie das Setup per Doppelklick. Es erscheint folgendes Dialogfeld. Hier klicken Sie auf Weiter.

Im nächsten Fenster stimmen Sie den Bedingungen zu und klicken auf Weiter.


Wählen Sie Verbundserver aus. Ein Verbundserver ist der interne ADFS Server, der auch Mitglied der Domäne ist. Möchten Sie einen Proxy Server in die DMZ integrieren, so müsste bei der Installation des Proxy Servers die entsprechende Auswahl getroffen werden.

Die Auflistung der erforderlichen Komponenten bestätigen Sie mit Weiter. ADFS installiert alle notwendigen Komponenten automatisch. Lediglich eine Sache: Möchten Sie zur Authentifizierung auch eine Basic Authentifizierung zulassen, so müsste dieses Feature für den IIS nachträglich installiert werden.

Nach der Installation können Sie im abschließend erscheinenden Fenster sofort die ADFS Management Konsole öffnen lassen. Klicken Sie auf Fertigstellen.

Es öffnet sich die ADFS Managementkonsole. Zunächst muss der Server konfiguriert und vorbereitet werden.

Im nächsten Fenster wählen Sie Neuen Verbunddienst erstellen aus (Haben Sie bereits einen ADFS Server installiert können Sie eine Farm erstellen und mehrere Server hinzufügen aus Gründen der Ausfallsicherheit).

Im nächsten Fenster wählen Sie Eigenständiger Verbundserver aus, falls Sie nur einen ADFS Server installieren möchten. Wie bereits erwähnt kann man auch eine Serverfarm erstellen. Hierzu ist dann eine zentrale Datenbank notwendig.

Da es sich bei ADFS um einen Webserver handelt und die Kommunikation ausschließlich verschlüsselt per SSL erfolgt, muss man im nächsten Schritt das passende SSL Webserverzertifikat auswählen. Ist vorher kein Zertifikat auf dem Server installiert oder importiert worden, so sieht das Fenster wie Folgt aus:

Um ein Webserverzertifikat zu installieren bzw. zu importieren öffnen Sie die Managementkonsole des IIS auf dem Server, klicken links auf den Server und wählen auf der rechten Seite Serverzertifikate aus.

Anschließend klicken Sie rechts n der Aktionsleiste auf Importieren… um ein Zertifikat zu importieren.

Öffnen Sie das Zertifikat und geben das Passwort für den privaten Schlüssel ein und klicken Sie dann auf OK.

Das Zertifikat ist anschließend importiert und wird nun in der Liste der Zertifikate angezeigt.

Testen Sie am besten die IIS Standardwebseite durch Aufruf in einem Browser und kontrollieren Sie, ob das Zertifikat gebunden ist.

Zurück zum ADFS Management. Ist das Zertifikat vorhanden wird dieses nun angezeigt und kann ausgewählt werden. Hier muss zudem ein Verbunddienstname angegeben werden anhand dessen Sie die Konfiguration in ADFS identifizieren können. Klicken Sie dann auf Weiter und in der anschließenden Zusammenfassung ebenfalls auf Weiter.

Zum Abschluss des Assistenten werden alle erforderlichen Konfigurationen vorgenommen und eine Zusammenfassung angezeigt. Klicken Sie auf Schließen.

Wie in Teil 1 erwähnt muss zwischen dem SAML IDP und dem externen Dienst (in dem Fall ShareFile) eine Verbindung aufgebaut werden und der SAML IDP und die Gegenseite entsprechend konfiguriert werden. Sie wählen daher als nächstes den Punkt Hinzufügen einer vertrauenden Seite aus.

Den Willkommesbildschirm bestätigen Sie mit der Schaltfläsche Start.

Als erstes müssen Sie die Metadaten über die SAML Konfiguration der Gegenseite (in dem Fall ShareFile) angeben. Dies geschieht am einfachsten durch die Angabe der ShareFile Account URL gefolgt von /saml/metadata – in diesem Fall lädt der ADFS Server die Konfiguration automatisch herunter.

Als nächstes wählen Sie einen sprechenden Namen für diese Vertrauensstellung aus.

Im nächsten Schritt geben Sie an, welcher Ihrer AD Benutzer diesen ADFS Server zur Authentifizierung verwenden kann – in diesem Beispiel gebe ich allen Benutzern aus dem Active Directory die Möglichkeit diesen ADFS Server zu nutzen.

Das letzte Fenster enthält noch eine Zusammenfassung der Konfiguration.

Bestätigen Sie den Abschluss der Einrichtung mit Schließen. Lassen Sie das Kontrollkästschen aktiviert um mit dem nächsten Schritt der Einrichtung fortzufahren.

Im nächsten Schritt müssen die sogenannten Anspruchsregeln bearbeitet werden.

Anspruchsregeln bestimmen welche Attribute zwischen dem externen Dienst und dem eigenen Directory ausgetauscht werden, bzw. umgesetzt werden, um so eine Verbindung zwischen einem externen Benutzer und einem internen Benutzer herzustellen. Um es einfacher zu erklären:

ShareFile ist ein externer Dienst und es wird nie eine direkte Verbindung zum internen Unternehmensnetzwerk und des Verzeichnisdienstes (z.B. Active Directory) geben – was gut ist aus Security Sicht. Also hat jeder Benutzer, der ShareFile benutzen möchte, ein Benutzerobjekt in dem externen Dienst ShareFile. Dieses Benutzerobjekt hat einen Benutzernamen und ein Passwort. In ShareFile ist der Benutzername immer eine E-Mail Adresse. Intern im eigenen Verzeichnisdienst hat der Benutzer ebenso ein Benutzerobjekt, jedoch sehr wahrscheinlich einen anderen Benutzernamen z.B. seinen Nachnamen. Wenn nun ein Benutzer den externen Dienst ShareFile nutzen möchte und sich via SAML anmeldet und gibt bei der Anmeldung seinen internen Benutzernamen und sein Passwort an, woher weiß dann der externe Dienst (hier ShareFile) welcher Benutzer sich gerade anmeldet? Die Antwort: Es muss einen gemeinsamen Nenner der beiden Benutzerobjekete geben, anhand dessen der externe Dienst erkennt um welchen Benutzer es sich hier handelt und genau hier kommen die Anspruchsregeln ins Spiel.

Anspruchsregeln übersetzen extern empfangene oder intern gesendete Informationen in eine Form, die von der Gegenseite versatnden werden und wo eine Beziehung zwischen den externen und internen Informationen hergestellt werden kann. Im Falle von ShareFile muss also der interne Benutzername (z.B. AD Benutzerobjekt) mit dem externen Benutzernamen (ShareFile Benutzerobjekt) in Beziehung zueinander gebracht werden. Da der Benutzername in ShareFile eine E-Mail Adresse ist, wird hier einfach das E-Mail Adresse Attribut aus dem Active Directory zusammen mit dem SAML Ticket versendet. Somit weiß dann die Gegenseite (ShareFile) um welchen Benutzer es sich hier handelt.

Um neue Regeln zu erstellen klicken sie auf Regel hinzufügen…

Zunächst erstellen Sie eine Regel die LDAP Attribute (z.B. Active Directory Attribute) aus dem Verzeichnisdienst ausliest und an den externen Dienst sendet. Wählen Sie als Anspruchsvorlage LDAP-Attribute als Ansprüche senden aus und klicken auf Weiter.

Als Anspruchsregelname geben Sie einen sprechenden Namen ein. Der Attributspeicher ist in diesem Falle Active Directory und das LDAP Attribut E-Mail-Adresses soll als ausgehender Anspruchstyp E-Mail-Adresse sein. Hiermit wird das Attribut E-Mail Adresse aus dem AD ausgelesen und zusammen it dem SAML Ticket nach erfolgreicher Anmeldung des Benutzers an ShareFile gesendet. Somit weiß dann ShareFile, dass der User sich erfolgreich authentifiziert hat (aufgrund des SAML Tickets) und weiß ebenso welcher ShareFile Benutzer es ist (aufgrund der E-Mail Adresse). Klicken Sie danach auf Fertigstellen.

Nun muss eine zweite Regel eingerichtet werden für den umgekehrten Fall. Klicken Sie wieder auf Regel hinzufügen.

Nun wählen Sie im Dropdown Menü Eingehenden Anspruch transformieren aus und klicken auf Weiter.

Vergeben Sie wieder einen sprechenden Namen für die Regel. Der eingehende Anspruchstyp ist die E-Mail-Adresse, da von ShareFile nur eine E-Mail-Adresse (Benutzername) gesendet werden kann. Als ausgehenden Anspruchstyp wählen Sie Namens-ID aus, da die Mailadresse in den Typ Namens-ID transformiert wird. Als ausgehendes Format des Namens wählen Sie E-Mail aus. Danach klicken Sie auf Fertigstellen.

Die zwei Regeln wurden nun erstellt. Mit diesen Regeln wird immer die Mailadresse des Benutzers in die Mailadresse des Benutzers übersetzt – in beide Richtungen. Somit wissen immer beide Stationen (Externer Dienst und der SAML IDP) um welchen Benutzer es sich handelt. Die Mailadresse ist immer eindeutig.

Natürlich könnte man auch andere Regeln erstellen. Z.B. könnte man den UPN des Benutzers in die Mailadresse einsetzen, allerdings birgt das die Gefahr, dass z.B. der UPN nicht gleich der E-Mail Adresse des Benutzers ist und man somit in Fehler laufen könnte.

Nun sollte zunächst der ADFS Server getestet werden. Dies kann man einfach durch Eingabe der URL des ADFS Servers gefolgt von /adfs/ls/IdpInitiatedSignOn.aspx durchführen. Z.B. https://ihradfsname.firma..de/adfs/ls/IdpInitiatedSignOn.aspx

Es erscheint folgende Webseite wo sie einfach Bei dieser Webseite anmelden auswählen und auf Anmelden fortsetzen klicken. Wählen sie hier NICHT Anmelden bei einer folgenden Webseite aus – dies wird erst funktionieren, wenn die Gegenseite (ShareFile) auch konfiguriert wurde. In diesem Test geht es lediglich darum, ob der ADFS Server eine Anmeldung durchführen kann.

Geben Sie im anschließendem Webpopup den Benutzernamen und das Passwort eines AD Benutzers ein.

Nun sollte das folgende Fenster erscheinen. Der ADFS Server funktioniert somit und eine Anmeldung über das AD ebenso. Nun muss noch die Gegenseite (ShareFile) konfiguriert werden.

Bevor Sie in Ihrem ShareFile Account die Konfiguration durchführen sollte man die folgenden Schritte durchführen. Hier werden Sie das Tokensignaturzertifikat (public) in eine Datei exportieren, damit man das Zertifikat als Text vorliegen hat. Dieses muss bei der Konfiguration in ShareFile eingefügt werden – somit macht es Sinn diesen Schritt vorher durchzuführen.

In der ADFS Managementkonsole klicken Sie links auf Zertifikate und sehen dann auf der rechten Seite Ihre Zertifikate in ADFS. Klicken Sie mit der rechten Maustatste das Tokensignaturzertifikat an.

Klicken Sie auf Zertifikat anzeigen…

Klicken Sie im nächsten Fenster auf die Registerkarte Details.

Nun klicken Sie auf In Datei kopieren…

Klicken Sie auf Weiter

Wählen Sie Base 64 coded aus und klicken Sie auf Weiter.

Wählen Sie einen Speicherort aus und geben Sie einen Namen für die Datei an und klicken auf Weiter.

Klicken Sie abschließend auf Fertigstellen.

Und zum Schluss auf OK.

Das Fenster des Zertifikates können Sie nun mit OK schließen.

Navigieren Sie dann in den Windows Explorer zum Speicherort Ihrer Datei und öffnen diese mit dem Editor.

Sie werden das exportierte Zertifikat nun als Text sehen können. Markieren Sie den gesamten Text und kopieren diesen in die Zwischenablage.

Rufen Sie anschließend Ihren ShareFile Account auf (z.B. https://ihrname.sharefile.eu) und melden sich als Administrator an. Klicken Sie in der Navigationsleiste oben auf Admin und dann links in der Leiste auf Single Sign-On konfigurieren.

Hier aktivieren Sie zunächst SAML.

Als ShareFile-Aussteller ID geben Sie die ID Ihres ADFS Servers an.

Als nächstes importieren Sie das in die Zwischenablage kopierte Zertifikat (siehe nächstes Bild). Klicken Sie bei X.509 Zertifikat auf Ändern und markieren dort den gesamten Text und ersetzen Sie ihn durch den von Ihnen in die Zwischenablage kopierten Text (Ihr Tokensignaturzertifikat).

Anschließend geben Sie die anmelde URL an. Hier müssen Sie die URL ihres ADFS Servers eingeben gefolgt von /adfs/ls – z.B. https://ihradfsname.Firma.de/adfs/ls

Möchten Sie, dass alle Mitarbeiter gezwungen sind SAML als Anmeldung zu nutzen, so aktivieren sie die Option SSO-Anmeldung erforderlich.

Je nach verwendetem SAML IDP macht es Sinn die Option SP-Initierter Authentifizierungskontext anzugeben. Hierbei kann man z.B. eine Windows integrierte Authentifizierung als Minimum voraussetzen.

Klicken sie abschließend auf Speichern um die Konfiguration zu speichern.

Geschafft!

Alle Komponenten sind nun konfiguriert und Sie können ShareFile in Verbindung mit Ihrem ADFS 2.0 Server als SAML IDP nun testen.

Zunächst wieder über den ADFS Server selbst mit der URL https://ihradfsname.firma.de/adfs/ls/IdpInitiatedSignOn.aspx

Klicken sie hier nun Anmelden bei einer der folgenden Websites an und wählen Ihre Konfiguration für ShareFile aus. Nutzen Sie den ADFS Server nicht nur für ShareFile sondern z.B auch für Office 365 können Sie diese Dienste hier auch auswählen.

Melden Sie sich mit Benutzername und Passwort aus ihrem AD an und klicken auf anmelden. Sie werden nun automatisch auf Ihren ShareFile Account umgeleitet (z.B. https://ihrname.sharefile.eu) und sind direkt angemeldet.

Diese Anmeldung nennt man IDP Initiated authentication – heißt der Identity Provider initiiert die Authentifizierung.

Natürlich können Sie auch den umgekehrten Weg testen:

Rufen Sie Ihre ShareFile Account URL mit dem Zusatz /saml/login auf – z.B. https://ihrname.sharefile.eu/saml/login

Nun wird ein Popup erscheinen und Sie auffordern sich mit Ihrem AD Benutzer und Passwort anzumelden. In der WebURL sehen Sie, dass ShareFile Sie auf Ihren eigenen ADFS Server umgeleitet hat (auf die Anmelde-URL) und die Authentifizierungsdaten somit niemals über den ShareFile Dienst laufen.

Diese Anmeldung nennt man SP Initiated authentication – heißt der Service Provider initiiert die Authentifizierung.

Die Anmeldung via SAML setzt ein Cookie im Browser. Wenn ein Benutzer auf in der Sharefile Weboberfläche auf Abmelden klickt gelangt er wieder zurück auf die Anmeldeseite. Klickt er nun wieder auf die SAML Anmeldung wird er aufgrund des Cookies wieder automatisch angemeldet. Erst wenn der Browser einmal geschlossen wurde wird das Cookie gelöscht. Aus diesem Grund empfiehlt sich die Konfiguration der SAML-Abmeldung in ADFS und ShareFile.

Hierzu öffnen Sie die ADFS Management Konsole, navigieren auf der rechten Seite zu Vertrauensstellungen – Vertrauensstellungen der vertrauten Seite und klicken die Konfiguration in der Mitte mit der rechten Maustaste an und wählen Eigenschaften aus.

Im folgenden Fenster deaktiviert Sie zunächst das automatische Update der vertrauenden Seite. Dies ist notwendig, da ansonsten die Abmeldeseite nicht konfiguriert werden kann. Klicken Sie dann auf Übernehmen.

Nun wechseln Sie zur Registerkarte Endpunkte. Hier klicken Sie auf Hinzufügen.

Im nun erscheinenden Fenster wählen Sie unter Endpunkttyp SAM-Abmeldung aus.

Die Bindung muss auf POST konfiguriert werden.

Unter URL und Antwort-URL geben sie die URL Ihres ADFS Servers ein, gefolgt von /adfs/ls/?wa=wsignout1.0

Beispiel: https://ihradfsname.firma.de/adfs/ls/?wa=wsignout1.0

Klicken sie anschließend auf OK.

Im nächsten Fenster klicken Sie wieder auf OK. Der ADFS Server ist nun für die Abmeldung konfiguriert, fehlt noch die Konfiguration in ShareFile.

Melden Sie sich als Administrator an Ihrem ShareFile Account an und wählen Sie in der oberen Navigation Admin und anschließend auf der linken Seite Single Sign-On konfigurieren aus.

Tragen sie die gleiche URL im Feld Abmelde-URL ein, die Sie bereits in der ADFS Konfiguration eingetragen haben – in unserem Beispiel https://ihradfsname.firma.de/adfs/ls/?wa=wsignout1.0

Klicken sie anschließend auf Speichern.

Die Abmeldeseite ist nun auf beiden Seiten konfiguriert. Meldet sich ein Benutzer nun über Abmelden ab so erscheint die Abmeldeseite vom ADFS Server die den Benutzer auffordert den Browser zu schließen, um das Cookie entsprechend zu löschen.

Im 3. Teil werde ich die Installation und Einrichtung der Authentifizierung mittels SAML über ADFS 3.0 vorstellen.

Bis dahin: Stay tuned