SharePoint FBA Authentifizierung

In diesem Artikel möchte ich euch zeigen, wie die SharePoint FBA Authentifizierung konfiguriert wird. Die Authentifizierung von Benutzern soll dabei nicht gegen das Active Directory gehen, sondern gegen eine SQL-Datenbank, in dem die Benutzer hinterlegt sind.

Dieses Szenario wird sehr gerne eingesetzt, wenn es z.B. darum geht externe Benutzern den Zugriff auf den SharePoint zu ermöglichen, die aber nicht im Active Directory des Unternehmens gepflegt werden sollen.

Für die SharePoint FBA Authentifizierung benötigt man zuerst eine entsprechende Datenbank, in der die Benutzerverwaltung stattfinden kann. Hierfür gibt es einen entsprechenden Wizard auf den SharePoint Servern, der genutzt werden kann. Die aspnet_regsql.exe ist unter dem Pfad C:\Windows\Microsoft.NET\Framework64\v4.0.30319 zu finden.

SharePoint FBA Authentifizierung

Danach kann man sich durch den Wizard klicken und eine entsprechende Datenbank erstellen.

SharePoint FBA Authentifizierung

Zuerst entscheidet man sich für die erste Option, um eine neue Datenbank zu erstellen.

SharePoint FBA Authentifizierung

Im nächsten Schritt wird die Datenbankverbindung konfiguriert und der Name der Datenbank festgelegt. Bei der Datenbankverbindung empfiehlt es sich wie immer einen entsprechenden SQL-Alias zu nutzen.

SharePoint FBA Authentifizierung

Danach wird noch einmal die Zusammenfassung der Konfiguration angezeigt und die Datenbank kann erstellt werden.

SharePoint FBA Authentifizierung

Wenn kein Fehler bei der Konfiguration (Meistens fehlerhafte Datenverbindung oder fehlende Berechtigung auf der SQL-Instanz) auftritt, sollten wir am Ende diese Meldung sehen.

SharePoint FBA Authentifizierung

Somit haben wir die notwendige Datenbank für die Authentifizierung erfolgreich angelegt. War gar nicht so schwer, oder? 🙂

Im nächsten Schritt müssen wir auf Datenbank-Ebene noch Berechtigungen setzten. Das Dienstkonto unter der die Webanwendung im SharePoint läuft, muss noch als db_owner  auf der gerade angelegten Datenbank eingetragen werden.

SharePoint FBA Authentifizierung

Nun haben wir alle Vorbereitungen getroffen, um die Datenbank zur Authentifizierung zu nutzen. Allerdings haben wir momentan noch das kleine Problem, wie man Benutzer anlegen kann. Es gibt dafür auch entsprechende Lösungen, wie z.B. das SharePoint 2013 FBA Pack auf Codeplex. Allerdings kann man dies auch mit „Boardmitteln“ erreichen, was ich euch in diesem Artikel zeigen möchte.

Zuerst legen wir dafür eine neue Webseite im IIS an.

SharePoint FBA Authentifizierung
SharePoint FBA Authentifizierung

Beim Port sollte man natürlich einen auswählen, den man bisher noch nicht verwendet. Nachdem wir die Seite angelegt haben, müssen wir noch das Konto des zugehörigen Anwendungspools ändern. Dieser muss auf das gleiche Dienstkonto gesetzt werden, wie auch die zugehörige SharePoint Webanwendung.

SharePoint FBA Authentifizierung

Danach müssen wir eine Datenbankverbindung für die neu angelegte Seite hinzufügen. Die neue Datenbankverbindung stellt die Verbindung zur anfänglich erstellten Datenbank her.

SharePoint FBA Authentifizierung

Auf der rechten Seite kann man nun eine Datenbankverbindung hinzufügen. Beim Server ist es wie immer empfehlenswert, einen entsprechenden SQL-Alias zu verwenden.

SharePoint FBA Authentifizierung

Danach können wir einen entsprechenden Provider zur Verwaltung der SharePoint FBA Authentifizierung hinzufügen. Zuerst muss man den Provider für die Benutzer selbst erstellen. Die Auswahl erfolgt über die Auswahlbox oben links (.NET Users).

SharePoint FBA Authentifizierung

Als Typ muss der SqlMembershipProvider gewählt werden. Der Name kann frei vergeben werden. Die Eigenschaften können entsprechend konfiguriert werden. Wichtig hierbei ist, dass man die Passwörter der Benutzer verschlüsselt in der Datenbank hinterlegt und die zuvor angelegte Datenbankverbindung nutzt.

Nun kann endlich ein neuer Benutzer angelegt werden. Dies funktioniert über die .NET Users Funktionalität. Man muss allerdings noch den standardmäßigen Provider auf den gerade erstellten Provider ändern.

SharePoint FBA Authentifizierung

Danach kann über den Hinzufügen Button auf der rechten Seite neue Benutzer angelegt werden.

SharePoint FBA Authentifizierung

Optional kann man auch noch entsprechende Rollen zur Verwaltung der Benutzer nutzen. Dazu muss wieder ein Provider erstellt werden, analog zu den Benutzern.

SharePoint FBA Authentifizierung

Um die Rollen verwalten zu können, nutzt man die .NET Roles Funktionalität. Auch hier muss zuerst der standardmäßige Provider ausgewählt werden.

SharePoint FBA Authentifizierung

Danach können analog zu den Benutzern neue Rollen definiert werden und einem Benutzer zugeordnet werden.

SharePoint FBA Authentifizierung

Nachdem wir nun die Benutzer und Rollen verwalten können, müssen wir noch den SharePoint entsprechend konfigurieren. Dazu muss die web.config der SharePoint Webanwendung um die notwendigen Informationen ergänzt werden. Es müssen hierfür die notwendigen Provider eingetragen werden und der People Picker von SharePoint konfiguriert werden.

Der People Picker Abschnitt muss um den neuen Provider ergänzt werden.

SharePoint FBA Authentifizierung

Danach müssen die Provider für die Benutzer und Rollen hinzugefügt werden. Die Namen können frei vergeben werden, müssen aber konsistent sein.

SharePoint FBA Authentifizierung

Und hier die beiden zusätzlichen Zeilen zum einfacheren kopieren. Die Sonderzeichen sind gewollt. 🙂

<add connectionStringName="fbaSQL_01" applicationName="/" name="SQL_Membership_01" type="System.Web.Security.SqlMembershipProvider, System.Web, &#xD;&#xA;Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" enablePasswordReset="true" passwordFormat="Hashed" requiresQuestionAndAnswer="false" />

<add connectionStringName="fbaSQL_01" applicationName="/" name="SQL_Role_01" type="System.Web.Security.SqlRoleProvider, System.Web, &#xD;&#xA;Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

Am Schluss muss noch die Datenbankverbindung am Ende der web.config hinzugefügt werden.

SharePoint FBA Authentifizierung

Danach muss nur noch der Authentifizierungsanbieter  für die SharePoint FBA Authentifizierung über die SharePoint Zentraladministration konfiguriert werden.

SharePoint FBA Authentifizierung

Bei der Authentifizierung muss FBA aktiviert werden und die Namen eingetragen werden, die auch in der web.config genutzt wurden. Hier kann auch ggf. eine eigene Login Seite definiert werden, wenn dies gewünscht ist.

SharePoint FBA Authentifizierung

Wurde FBA aktiviert, kommt beim Aufruf des SharePoints nun folgende Auswahlmaske, um die Art der Authentifizierung auszuwählen.

SharePoint FBA Authentifizierung

Beim ersten Login sollte man sich mit einem Windows Benutzer anmelden und dem FBA Benutzer entsprechende Rechte zuweisen. Danach kann sich auch dieser ganz normal anmelden.

 

In diesem Sinne, Happy SharePointing…

 

10 Kommentare

  1. Hallo Frank,
    ich kann keine .net User anlegen, da es immer wieder heißt „The specified password is invalid. Type a new password“
    Hast du eine Idee dazu?
    Danke

    • Hallo Arzu,
      für mich klingt es danach, dass das Passwort nicht komplex genug ist. Entweder mal ein Passwort mit „normaler Windows-Komplexität“ probieren oder Du kannst auch die Komplexität im SqlMembershipProvider noch zusätzlich definieren.

  2. HAllo Frank,
    ich habe mich der ganzen Sache nach einiger Zeit wieder angenommen.
    Habe mich jetzt als Windows user angemeldet, um den externen User Rechte zu vergeben. Wie mache ich das?
    Ich habe mal auf „Share“ geklickt und versucht den User einzutragen, wird aber nicht akzeptiert. Sowohl via Namen als auch via E-Mail-Adresse gibt es Fehlermeldungen.
    We couldn’t find an exact match.
    Sorry, you are not allowed to share this with external users. (Wo ist hier noch was einzustellen?)

    Herzlichen Dank für diese tolle Anleitung und auch deine Hilfe

    Viele Grüße

    • Hallo Arzu,

      also entweder ein Problem mit dem People Picker oder Du hast nicht beide Provider (FBA und Windows) aktiviert.
      Ansonsten müsste man im ULS Log eher ein Hinweis finden, was genau das Problem ist.

      Viele Grüße
      Frank

      • Hallo Frank, das Problem hat sich gelöst. Herzlichen Dank!
        Nun aber folgendes Problem:
        Wenn sich der externe User einloggen möchte, kommt die Fehlermeldung:
        The server could not sign you in. Make sure your user name and password are correct, and then try again.

        Müsste ich den IIS resetten bevor sich jeder neu angelegte User anmelden kann? Ansonsten sind Username und Password eigentlich richtig eingegeben.

        Vielen Dank

    • Die Zentraladministration nicht zwingend, außer Du benötigst die externen Benutzer dort auch.
      STS musst Du mittlerweile ebenfalls mit anpassen. Wenn das der Fehler ist, sollte dieser auch ganz klar im ULS Logs zu finden sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert