Einrichten der formularbasierten Authentifizierung (FBA)
Dieser Beitrag stammt aus einem Blog, den ich für die oberste Behörde für die FBA–Konfiguration halte, geschrieben von Chris Coulson,
Lesen Sie die oberste Behörde hier für 2016 und hier für 2013
2010 – Siehe die Schritte für 2013, stellen Sie sicher, dass die 2010-Webanwendung die anspruchsbasierte Authentifizierung verwendet, und danach ist das gleiche, Sie können keine klassische Webanwendung verwenden.
Hinweis: Mit dieser Methode müssen Sie das Web nicht ändern.konfiguration des zentralen Administrators oder einer der gegenwärtigen oder zukünftigen Webanwendungen. Sie müssen nur die Maschine ändern.config und das Web.konfiguration der SecurityTokenServiceApplication-Webdienste.
Also; Dies ist die bevorzugte Methode. Es gibt andere Methoden, mit denen Sie das Web des zentralen Administrators ändern können.config, das Web.config jeder Web-Anwendung, und die Sicherheitstoken-Service-Anwendung Web.config; aber, wer will, um all die Mühe zu gehen. Und müssen für jede neue Webanwendung wiederholen, nicht weniger. Ich bin faul und würde es vorziehen, wenn der FBA für jede zukünftige und gegenwärtige Webanwendung eine Möglichkeit wäre. Ich werde auch sehr skizzenhaft, wenn ich darüber nachdenke, das zentrale Admin-Web zu ändern.deshalb ist die Methode, die im Blog von Chris Coulson ausführlich beschrieben wird, optimal.
Hi-Level-Schritte
- Erstellen Sie die Datenbank, indem Sie aspnet_regsql ausführen.exe gefunden bei c:\windows\Microsoft.NET\Framework64\v4.0.30319 \
- Erstellen Sie Backups aller Dateien, die Sie ändern möchten, z. B. der Maschine.config, das Web.konfiguration der SecurityTokenServiceApplication
- Nehmen Sie die Änderungen vor und achten Sie dabei genau auf die Abschnitte, in denen Sie sich befinden. Stellen Sie beim Ändern des Abschnitts Mitgliedschaftsanbieter und des Abschnitts Rollenanbieter sicher, dass Sie den Abschnitt Profilanbieter nicht ändern
- Aktualisieren Sie den Authentifizierungsanbieter der Webanwendung
- Installieren Sie die entsprechende FBAPack-Lösung, um die Benutzerverwaltung zu vereinfachen
- 2016 – https://www.visigo.com/products/sharepoint-fba-pack/download/
- 2013 – auf der visigo-Website finden Sie die neueste stabile Version dieses kostenlosen Downloads
- 2010 – Auf der visigo-Website finden Sie die neueste stabile Version dieses kostenlosen Downloads
- Melden Sie sich mit Windows Creds an und fügen Sie einen FBA-Benutzer hinzu. Testen Sie dann, ob die verschiedenen sie sich mit dem FBA-Benutzer anmelden können
Detailliertere Schritte
Erstellen Sie die Datenbank, indem Sie aspnet_regsql ausführen.exe
- Anmelden bei Ihrem SharePoint Server
- Navigieren zu c:\windows\Microsoft.NET\Framework64\v4.0.30319 \
- Führen Sie aspnet_reqsql aus.als Administrator registrieren
- Nach dem ASP.NET SQL Setup Wizard öffnet sich, lesen Sie die Informationen und klicken Sie dann auf Weiter, wie ein Chef!
- Verwenden Sie auf dem Bildschirm Setup-Option auswählen die Standardauswahl „SQL Server für Anwendungsdienste konfigurieren“ und klicken Sie auf Weiter.Klicken Sie erneut wie ein Chef darauf!
- Geben Sie auf dem Bildschirm „Server und Datenbank auswählen“ den Alias für Ihren SQL Server oder den SQL Server-Namen ein, wenn Sie beim Einrichten der Farm keinen Alias verwendet haben, und
- Akzeptieren Sie den < Standard > Datenbankname. Wenn Sie den Datenbanknamen ändern, stellen Sie sicher, dass Sie den Namen im Eintrag für die Maschine aktualisieren.config Verbindungszeichenfolge in den nächsten Schritten. In diesem Beitrag wird davon ausgegangen, dass Sie den < -Standardnamen> wie im nächsten Screenshot gezeigt belassen haben. Wenn Sie den Standardnamen beibehalten, wird eine Datenbank mit dem Namen aspnetdb erstellt.
- Klicken Sie auf Weiter
Hinweis: Im obigen Beispiel wurde der Standardname belassen und der SQL-Alias < verwendet – dieser letzte Satz wurde in „SharePoint Nerd“ gesprochen und bedeutet übersetzt „Ich habe einen SQL-Alias verwendet und die Datenbank ist portabel“
Nach dem Klicken auf Weiter wird der folgende Bildschirm angezeigt, und Sie sollten auf Weiter klicken, wenn Sie mit den Informationen einverstanden sind. Es tut nicht weh, es zu lesen, denn wenn es einen Tippfehler gibt, ist dies Ihre Chance, es zu ändern.
Klicken Sie dann auf dem nächsten Bildschirm auf Fertig stellen.
- Melden Sie sich bei Ihrem SQL Server an
- Öffnen Sie das SQL Server Management Studio (SSMS.exe) und geben Sie Ihr SharePoint-Farmkonto, das Dienstkonto, das die freigegebenen Dienste und den Such-Anwendungspool ausführt, und die Dienstkonten für Webinhalte oder Websiteanwendungspools db_owner in der aspnetdb an.
Hinweis: wenn Sie eine Art Fehlermeldung erhalten, dass keine Verbindung zur SQL Server-Instanz hergestellt werden kann, stellen Sie sicher, dass die Dienste für SQL Server und SQL Server Agent gestartet sind. Machen Sie sich keine Sorgen um den SQL Server-Browser
- Klicken Sie auf den Ordner Sicherheit, um ihn zu erweitern
- Klicken Sie auf den Ordner Anmeldungen, um ihn zu erweitern
- Klicken Sie mit der rechten Maustaste auf die Benutzerkonten, auf denen der Anwendungspool für den Sicherheitstoken-Dienst ausgeführt wird (Sie können dies anhand von inetmgr ermitteln.exe auf Ihrem SharePoint-Server)
- Klicken Sie auf Eigenschaften
- Klicken Sie auf Benutzerzuordnung
- Wählen Sie die aspnetdb im Fenster Benutzer, die diesem Anmeldefenster zugeordnet sind
- Weisen Sie den dbo in der Datenbankrolle zu Mitgliedschaft für: Mit welchem Konto Sie arbeiten
- Klicken Sie auf OK
die Sie ändern möchten, z.B. die Maschine.config, das Web.konfiguration der SecurityTokenServiceApplication
- Navigieren Sie zu C:\Windows\Microsoft.Net\Framework64\v4.0.30319\Config
- Erstellen Sie ein Backup der Maschine.config und speichern Sie es mit einem .bak-Erweiterung
- Bearbeiten Sie die Maschine.config
- Scrollen Sie zu den <connectionStrings>
Der Abschnitt Verbindungszeichenfolgen sieht wie im obigen Bild aus
- Fügen Sie den folgenden Code hinzu
1
|
< hinzufügen ConnectionString =“Server = SharePointSQL; Datenbank = aspnetdb; Integrierte Sicherheit = true“ name =“FBADB“ />
|
Hinweis: möglicherweise müssen Sie den Namen des SQL Servers aus dem von mir verwendeten Alias ändern. Möglicherweise haben Sie keinen Alias und können dies anhand von cliconfg feststellen.exe. Stellen Sie sicher, dass die Codezeile, die lautet „Server=SharePointSQL….is aktualisiert für was auch immer Ihr Servername ist, oder vorzugsweise Ihr Alias (zB „Server = SPAlias ….oder „Server=MDCP15SQL … oder was auch immer)
Nachdem die Verbindungszeichenfolgen aktualisiert wurden, sieht es ungefähr so aus:
Suchen Sie den Abschnitt <Mitgliedschaft> < Anbieter>, der folgendermaßen aussieht
Hinweis: Sie fügen einen Abschnitt zu den <membership> <providers> und zu den <Role> <Providers> nicht zu den Profilanbietern hinzu
Stellen Sie sicher, dass Sie die richtigen Abschnitte aktualisieren
- Fügen Sie dies den Mitgliedschaftsanbietern hinzu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
< hinzufügen name=“FBAMembershipProvider“
Typ =“System.Web.Sicherheit.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a“
connectionStringName=“FBADB“
enablePasswordRetrieval=“false“
enablePasswordReset=“true“
requiresQuestionAndAnswer=“false“
Anwendungsname=“/“
requiresUniqueEmail=“true“
passwordFormat=“Gehasht“
maxInvalidPasswordAttempts=“5″
minRequiredPasswordLength=“7″
minrequirednonalphanumerichezeichen=“1″
Passwordattemptfenster=“10″
passwordStrengthRegularExpression=““ />
|
- Fügen Sie dies nun den Rollenanbietern hinzu
1
2
|
< hinzufügen name = „FBARoleProvider“ connectionStringName = „FBADB“ ApplicationName=“/“
typ=“System.Web.Sicherheit.SqlRoleProvider, System.Web, Version=4.0.0.0, Kultur=neutral, PublicKeyToken=b03f5f7f11d50a3a“ />
|
Das fertige Produkt sollte so aussehen
Beachten Sie, dass die Änderungen nicht an den Profilanbietern vorgenommen wurden. Achten Sie darauf, es ist leicht zu übersehen.
Öffnen Sie nun die Security Token Service App web.config
- Öffnen Sie den IIS-Manager (inetmgr.exe)
- Erweitern Sie sites
- Erweitern Sie SharePoint Web Services
- Klicken Sie mit der rechten Maustaste auf SecurityTokenServiceApplication
- Klicken Sie auf Explore
- Erstellen Sie eine Kopie des Webs.config als Backup und speichern Sie es mit einem .bak-Erweiterung
- Fügen Sie Folgendes direkt über dem allerletzten schließenden Konfigurationstag hinzu </configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<system.webseite>
< mitgliedschaft>
< anbieter>
< hinzufügen name=“FBAMembershipProvider“
Typ =“System.Web.Sicherheit.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a“
connectionStringName=“FBADB“
enablePasswordRetrieval=“false“
enablePasswordReset=“true“
requiresQuestionAndAnswer=“false“
Anwendungsname=“/“
requiresUniqueEmail=“true“
passwordFormat=“Gehasht“
maxInvalidPasswordAttempts=“5″
minRequiredPasswordLength=“7″
minrequirednonalphanumerichezeichen=“1″
Passwordattemptfenster=“10″
passwordStrengthRegularExpression=““ />
</Anbieter>
</ mitgliedschaft>
< RoleManager>
< anbieter>
< hinzufügen name = „FBARoleProvider“ connectionStringName = „FBADB“ ApplicationName=“/“
typ=“System.Web.Sicherheit.SqlRoleProvider, System.Web, Version=4.0.0.0, Kultur=neutral, PublicKeyToken=b03f5f7f11d50a3a“ />
</ anbieter>
</ RoleManager>
</ system.webseite>
|
Wenn du fertig bist, sollte es so aussehen, nur wird es nicht den gelben Fleck darauf haben.
Stellen Sie sicher, dass Sie sie auf allen Servern in der Farm vornehmen, wenn Sie über mehr als einen SharePoint-Server verfügen. Nicht auf SQL benötigt. Öffnen Sie die zentrale Verwaltung, um sicherzustellen, dass Sie Ihre Farm nicht vernichtet haben. Öffnen Sie einige Websitesammlungen in der Webanwendung, auf die der FBA angewendet wird.
Sie könnten IIS für ein gutes Maß zurücksetzen, aber es sollte wirklich nicht benötigt werden, da Änderungen an diesen Dateien dazu führen, dass dies automatisch geschieht oder zumindest sollte.
Aktualisieren Sie den Authentifizierungsanbieter der Webanwendung
- Öffnen Sie Central Admin und navigieren Sie zu Webanwendungen verwalten
- Wenn Sie die Webanwendung nicht auf eine andere Zone erweitern und die doppelte Authentifizierung verwenden, wählen Sie die Webanwendung aus und klicken Sie im Menüband auf Authentifizierungsanbieter. Andernfalls erweitern Sie die Webanwendung und legen Sie in der erweiterten Zone den FBA fest.
Um den FBA festzulegen, führen Sie die folgenden Schritte aus:
- Gehen Sie zu Webanwendungen verwalten
- Wählen Sie die Webanwendung aus, in der Sie die formularbasierte Authentifizierung konfigurieren möchten
- Klicken Sie auf Authentifizierungsanbieter
- Wählen Sie die Zone aus, die Sie konfigurieren möchten, in diesem Beispiel richten wir die doppelte Authentifizierung ein (Windows integriert und FBA)
Sobald der Zonenkonfigurationsbildschirm geöffnet wird,
- scrollen Sie nach unten zu dem Abschnitt, der sich auf FBA bezieht, und fügen Sie die Namen hinzu, die Sie in den Abschnitten Mitgliedschaftsanbieter und Rollenanbieter des verwendet haben.konfigurationsdatei ändert. Wenn Sie die Namen der Mitgliedschafts- und Rollenanbieter in den Codeabschnitten < nicht geändert haben, fügen Sie name=“FBAMembershipProvider“ hinzu ….und <add name=“FBARoleProvider ….. dann können Sie diese Namen verwenden, sonst verwenden, was auch immer Sie sie geändert haben.
- Sie aktivieren das Kontrollkästchen Formularbasierte Authentifizierung (FBA) aktivieren und geben dann die von Ihnen verwendeten Namen ein
- Klicken Sie auf Speichern, um die Änderungen zu speichern
Wenn Sie nun versuchen, eine Webanwendung oder Websitesammlung zu öffnen, wird die Standardanmeldeaufforderung für FBA angezeigt, mit der Sie zwischen integrierter Windows- oder formularbasierter Authentifizierung wählen können
Sie können FBA jedoch immer noch nicht verwenden, selbst wenn Sie es auswählen und versuchen, es zu verwenden, da derzeit keine FBA-Benutzer in der aspnetdb vorhanden sind. Mit dem FBA-Paket können Sie Benutzer zur Datenbank hinzufügen. Die 2013 Post auf Chris Coulson Blog für 2013 SharePoint erklärt eine andere Methode.
FBA Pack-Lösung
Mit der FBA Pack-Lösung können Sie Benutzer hinzufügen und verwalten
Laden Sie die Lösung herunter und stellen Sie sie auf Ihrem SharePoint-Server bereit. Es wird mit einem wirklich großartigen Bereitstellungsskript geliefert, mit dem Sie auf eine Webanwendung oder die gesamte Farm abzielen können.
Nachdem Sie die Lösung in c:\deploy Öffnen Sie dann beispielsweise eine administrative SharePoint-Verwaltungsshell und führen Sie sie wie unten gezeigt aus, wenn Sie sie für die gesamte Farm bereitstellen möchten
Wenn Sie möchten, dass es für eine bestimmte Webanwendung bereitgestellt wird, geben Sie anstelle von .\deploy.ps1 .\deploy.ps1 http://urlToThatSpecificWebApplication.Domain.com wo .\deploy.ps1 domain.com ist Ihr Domain- und Top-Level-Domain-Suffix (z. B. sharepoint.lokal, Springfield.lokal, bdbsa.org, ssa.gov , oder spt.lokal oder whatevs)