Konfigurieren der formularbasierten Authentifizierung (FBA) mit SharePoint 2010
Entnommen aus http://blogs.technet.com/b/mahesm/
SharePoint 2010 unterstützt FBA wie WSS 3.0 oder MOSS 2007. Es ist eine Funktion von ASP .Net, die wir mit SharePoint verwenden. SharePoint 2010 Sie können Webanwendungen mithilfe der klassischen Authentifizierung oder der anspruchsbasierten Authentifizierung erstellen. FBA kann jedoch nur mit Webanwendungen konfiguriert werden, die mit anspruchsbasierter Authentifizierung erstellt wurden.
Was sind die Unterschiede zwischen der Authentifizierung im klassischen Modus und der anspruchsbasierten Authentifizierung?
Authentifizierung im klassischen Modus: Bezieht sich auf die integrierte Windows-Authentifizierung. Sie können die formularbasierte Authentifizierung nicht konfigurieren, wenn Ihre Webanwendung die Authentifizierung im klassischen Modus verwendet. Sie können eine Webanwendung von der Authentifizierung im klassischen Modus in die anspruchsbasierte Authentifizierung konvertieren. Dies kann jedoch nur mit PowerShell-Befehlen und einem irreversiblen Prozess erfolgen. Ich habe detaillierte Schritte zum Konvertieren der Webanwendung von der Authentifizierung im klassischen Modus in die anspruchsbasierte Authentifizierung.
Anspruchsbasierte Authentifizierung: SharePoint 2010 basiert auf Windows Identity Foundation. Es ermöglicht die Authentifizierung von Windows sowie nicht-Windows-basierten Systemen. Dies bietet auch die Möglichkeit, mehrere Authentifizierungen in einer einzigen URL durchzuführen.
Die Konfiguration von FBA mit SharePoint 2010 umfasst 4 Hauptschritte. Die Schritte zum Konfigurieren des FBA mit SQL Membership Provider sind unten aufgeführt:
I> Erstellen oder Konvertieren Sie vorhandene Webanwendungen, um die anspruchsbasierte Authentifizierung zu verwenden
II> Erstellen Sie Benutzer-IDs in der SQL-Datenbank
III> Web ändern.konfigurationsdatei
IV> Erteilen Sie Benutzern, die in der SQL-Datenbank vorhanden sind, Berechtigungen
Hinweis: Wenn Sie FBA mit dem LDAP-Mitgliedschaftsanbieter konfigurieren möchten, lesen Sie den TechNet-Artikel.
Nachfolgend finden Sie die detaillierten Schritte:
I> Erstellen oder Konvertieren vorhandener Webanwendungen zur Verwendung der anspruchsbasierten Authentifizierung
Hinweis: – Die Webanwendung muss über die zentrale Verwaltungskonsole oder PowerShell erstellt werden, sollte jedoch eine anspruchsbasierte Authentifizierung verwenden.
A. Erstellen einer Webanwendung mithilfe der Zentraladministration
-
-
- Öffnen Sie die zentrale Verwaltungskonsole.
- Klicken Sie unter Anwendungsverwaltung auf Webanwendung verwalten.
- Klicken Sie im Menüband auf Neu.
- Wählen Sie oben auf der Seite Anspruchsbasierte Authentifizierung aus.
- Wählen Sie die Portnummer für die Webanwendung.
- Klicken Sie unter Anspruchsauthentifizierungstypen auf Formularbasierte Authentifizierung (FBA) aktivieren. Wenn Sie keine Windows-Authentifizierung benötigen, müssen Sie das Kontrollkästchen entfernen.
- Mitgliedschaftsanbieter hinzufügen & Name des Rollenmanagers
- Sobald die Webanwendung erstellt wurde, überprüfen Sie bitte die Einstellungen des Authentifizierungsanbieters für die Webanwendung. Ich habe den Screenshot unten:
-
Hinweis:- Wenn Sie die Windows-Authentifizierung und die formularbasierte Authentifizierung in einer einzelnen URL verwenden möchten, müssen Sie Windows-Authentifizierung aktivieren und formularbasierte Authentifizierung aktivieren auswählen.
Hinweis: – Nur zum Verständnis verwende ich den Mitgliedschaftsanbieter als „SQL-MembershipProvider“ und den Rollenmanager als „SQL-RoleManager“. Sie können verschiedene Namen verwenden, müssen sich jedoch den Namen merken, damit Sie sie im Web referenzieren können.konfigurationsdateien. Bei diesen Namen wird zwischen Groß- und Kleinschreibung unterschieden.
B. Was ist, wenn Sie bereits eine Webanwendung mit der Authentifizierung im klassischen Modus erstellt haben oder wie Sie die Webanwendung von der Authentifizierung im klassischen Modus in die anspruchsbasierte Authentifizierung konvertieren?
Sie müssen diese Webanwendung nicht löschen. Sie können diese Webanwendung von der Authentifizierung im klassischen Modus in die anspruchsbasierte Authentifizierung konvertieren. Dies kann jedoch nur mit PowerShell erfolgen und ist ein irreversibler Prozess. Befolgen Sie die PowerShell-Befehle, um die Webanwendung von der Authentifizierung im klassischen Modus in die anspruchsbasierte Authentifizierung zu konvertieren:
$App = get-spwebapplication „URL“
$app.useclaimsauthentication = „Wahr“
$app.Update()
Beispiel:-
$App = get-spwebapplication „http://sp1:8000”
$ app.useclaimsauthentication = „Wahr“
$app.Update()
Sobald die Webanwendung die anspruchsbasierte Authentifizierung verwendet, können Sie eine Websitesammlung erstellen. Wenn Sie nun auf die Webanwendung zugreifen, können Sie auf die Site zugreifen und die Windows-Authentifizierung oder die formularbasierte Authentifizierung auswählen, wie in der folgenden Abbildung gezeigt.
Wählen Sie Windows-Authentifizierung und melden Sie sich bei der Site an. Wenn Sie sich anmelden, werden Ihre aktuell angemeldeten Anmeldeinformationen verwendet. Stellen Sie sicher, dass das Konto, mit dem Sie angemeldet sind, Zugriff auf die SharePoint-Website hat.
II> Konfigurieren Sie den Mitgliedschaftsanbieter und den Rollenmanager.
- Öffnen Sie auf SharePoint 2010 Server die Eingabeaufforderung.
- Navigieren Sie zu C:WindowsMicrsooft .NetFramework64v2.0.50727
- Führen Sie „aspnet_regsql.exe“. Dadurch wird der ASP .Net SQL Server Setup Wizard geöffnet. Klicken Sie dazu auf WEITER.
- Klicken Sie auf „SQL Server für Anwendungsdienste konfigurieren“.
- Geben Sie den Datenbanknamen an. Wenn Sie den Datenbanknamen nicht angeben, wird ein Datenbankaufruf aspnetdb erstellt.
- Verwenden Sie das Membershipseeder-Tool, um die Benutzer in der SQL-Datenbank zu erstellen. Das Tool und Informationen dazu finden Sie bei codeplex.
Hinweis: – Ich habe den Datenbanknamen als „SQL-Auth“ angegeben.
III> Ändern Sie das Web.konfigurationsdatei für Mitgliedschaftsanbieter und Rollenmanager.
Wir müssen ändern 3 verschiedene web.konfigurationsdateien für FBA zu arbeiten. Web.konfiguration der FBA-Webanwendung, web.konfiguration der zentralen Administrationsseite & Web.konfiguration von STS.
A. Web ändern.konfiguration der FBA-Webanwendung.
- Verbindungszeichenfolge hinzufügen:
< connectionStrings>
< add name=“SQLConnectionString“ ConnectionString =“Datenquelle = SQL; Integrierte Sicherheit = SSPI;Initialer Katalog = SQL-Auth“ />
</ connectionStrings>
Verbindungszeichenfolge muss nach </SharePoint> und vor <System hinzugefügt werden.webseite>
- Mitgliedschaftsanbieter und Rollenmanager hinzufügen:
< RoleManager defaultProvider = „c“ aktiviert = „wahr“ cacheRolesInCookie = „falsch“>
< anbieter>
< hinzufügen name = „c“ Typ =“Microsoft.SharePoint.Verwaltung.Schadensersatzansprüche.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c“ />
<add connectionStringName=“SQLConnectionString“ applicationName=“/“ description=“Stores and retrieves roles from SQL Server“ name=“SQL-RoleManager“ type=“System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a“ />
</providers>
</roleManager>
<membership defaultProvider=“i“>
<providers>
<add name=“i“ type=“Microsoft.SharePoint.Administration.Schadensersatzansprüche.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Kultur=neutral, PublicKeyToken=71e9bce111e9429c“ />
< add connectionStringName=“SQLConnectionString“ Passwordattemp Window=“5″ enablePasswordRetrieval=“false“ enablePasswordReset=“false“ requiresQuestionAndAnswer=“true“ ApplicationName=“/“ requiresUniqueEmail =“true“ passwordFormat =“Gehasht“ description =“Speichert und ruft Mitgliedschaftsdaten vom SQL Server ab“ name =“SQL-MembershipProvider“ type=“System.Web.Sicherheit.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Kultur=neutral, PublicKeyToken=b03f5f7f11d50a3a“ />
</ anbieter>
</ mitgliedschaft>
</ system.web>
B. Ändern Sie web.konfiguration der Webanwendung der Zentraladministration.
- Verbindungszeichenfolge hinzufügen:
< connectionStrings>
< add name=“SQLConnectionString“ ConnectionString =“Datenquelle = SQL; Integrierte Sicherheit = SSPI;Initialer Katalog = SQL-Auth“ />
</ connectionStrings>
Verbindungszeichenfolge muss nach </SharePoint> und vor <System hinzugefügt werden.webseite>
- Mitgliedschaftsanbieter und Rollenmanager hinzufügen:
< RoleManager defaultProvider = „AspNetWindowsTokenRoleProvider“ aktiviert = „wahr“ cacheRolesInCookie = „falsch“>
< anbieter>
< add connectionStringName=“SQLConnectionString“ ApplicationName=“/“ description=“Speichert und ruft Rollen vom SQL Server ab“ name=“SQL-RoleManager“ type=“System.Web.Sicherheit.SqlRoleProvider, System.Web, Version=2.0.3600.0, Kultur=neutral, PublicKeyToken=b03f5f7f11d50a3a“ />
</ anbieter>
</ RoleManager>
< mitgliedschaft defaultProvider =“SQL-MembershipProvider“>
< anbieter>
< add connectionStringName = „SQLConnectionString“ Passwordattemp Window = „5“ enablePasswordRetrieval = „false“ enablePasswordReset =“false“ requiresQuestionAndAnswer =“true“ ApplicationName =“/“ requiresUniqueEmail =“true“ passwordFormat =“Hashed“ description = „Speichert und ruft Mitgliedsdaten von SQL Server ab“ name=“SQL-MembershipProvider“ Typ=“System.Web.Sicherheit.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Kultur=neutral, PublicKeyToken=b03f5f7f11d50a3a“ />
</ anbieter>
</ mitgliedschaft>
C. Ändern web.konfiguration von STS. Sie können das STS Web finden.config von %programfiles%gemeinsame Dateienmicrosoft Sharedweb server extensions14WebServicesSecurityToken
<connectionStrings>
< add name=“SQLConnectionString“ ConnectionString =“Datenquelle = SQL; Integrierte Sicherheit = SSPI;Initial Catalog=SQL-Auth“ />
</connectionStrings>
<system.web>
<roleManager defaultProvider=“c“ enabled=“true“ cacheRolesInCookie=“false“>
<providers>
<add name=“c“ type=“Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c“ />
<add connectionStringName=“SQLConnectionString“ applicationName=“/“ description=“Stores and retrieves roles from SQL Server“ name=“SQL-RoleManager“ type=“System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a“ />
</providers>
</roleManager>
<membership defaultProvider=“i“>
<providers>
<add name=“i“ type=“Microsoft.SharePoint.Administration.Schadensersatzansprüche.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Kultur=neutral, PublicKeyToken=71e9bce111e9429c“ />
< add connectionStringName=“SQLConnectionString“ Passwordattemp Window=“5″ enablePasswordRetrieval=“false“ enablePasswordReset=“false“ requiresQuestionAndAnswer=“true“ ApplicationName=“/“ requiresUniqueEmail =“true“ passwordFormat =“Gehasht“ description =“Speichert und ruft Mitgliedschaftsdaten vom SQL Server ab“ name =“SQL-MembershipProvider“ type=“System.Web.Sicherheit.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Kultur=neutral, PublicKeyToken=b03f5f7f11d50a3a“ />
</ anbieter>
</ mitgliedschaft>
</ system.web>
Oben muss vor </configuration hinzugefügt werden>
IV> Geben Sie Benutzern in der SQL-Datenbank Berechtigungen.
- Rufen Sie die zentrale Verwaltungskonsole auf und klicken Sie unter Anwendungsverwaltung auf Webanwendungen verwalten.
- Wählen Sie die Webanwendung aus und klicken Sie im Menüband auf Benutzerrichtlinie.
- Klicken Sie auf Benutzer hinzufügen und wählen Sie Standardzone.
- Geben Sie nun den Benutzernamen ein und fügen Sie den Benutzer zur Webanwendung hinzu, indem Sie die entsprechende Berechtigung definieren.
Häufige Probleme:
Wenn Sie mehrere Dienstkonten gemäß TechNet-Artikel Für die Erstbereitstellung erforderliche Verwaltungs- und Dienstkonten (SharePoint Server 2010) verwenden, können Sie die Benutzernamen möglicherweise nicht auflösen oder die Benutzer nicht zur Webanwendung hinzufügen. Wenn Sie 3 verschiedene Konten verwenden (Farmadministratorkonto, Anwendungspoolkonto für Webanwendung und Dienstanwendungskonto), müssen Sie sicherstellen, dass Sie Zugriff auf die SQL-Mitgliedschaftsdatenbank (SQL-Auth) haben.
Wichtig:
Was passiert mit FBA, wenn wir WSS 3.0 / MOSS 2007 auf SharePoint 2010 aktualisieren?
Vor dem Upgrade auf SharePoint 2010 müssen Sie die Änderungen, die Sie im Web vorgenommen haben, entfernen.konfigurationsdatei. Sobald das Upgrade abgeschlossen ist, werden alle Webanwendungen aktualisiert; diese verwenden jedoch die Authentifizierung im klassischen Modus. Sie können diese Webanwendungen von der Authentifizierung im klassischen Modus in die anspruchsbasierte Authentifizierung konvertieren.
3rd Party Tools: FBA Manager SP2010 (Formularbasierte Authentifizierung) Entwickler-IT