SharePoint 2010 配置基於MemberShip的身份驗證


 

場景:通常需要為sharepoint打通其他的系統整合到sharepoint認證,ad通常是為內部域用戶,外網訪問的可以使用membership來登錄,那么這個既可以內部用戶訪問,外部用戶也可以訪問 ,另外也可以把其他的用戶加到membership里面.

目錄:

  1. 用aspnet_sqlreg創建memebership數據庫
  2. 用網站管理工具添加用戶和角色
  3. 為以下添加連接字符串:
    • 你的應用程序(application)
    • 管理中心(central administration)
    • 令牌服務程序(secure token service application)
  4. 為以下添加memebership和providers
    • 你的應用程序(application)
    • 管理中心(central administration)
    • 令牌服務程序(secure token service application)

 

 

  1. 創建一個新的應用程序

    打開管理中心,找到管理web應用程序 

 

點擊后彈出一個界面,點擊ribbon工具欄新建一個application

在彈出的窗口中選擇基於身份的驗證(Claims Based Authentication),完成后IIS將創建一個新的IIS站點,如果需要你可以修改這個站點名字,如Sharepoint --FBA Test ,這里需要選一個可用的端口.

向下滑動一點,配置基於forms的認證,選擇開啟基於forms認證,並且配置membership提供者命名為FBAMembership,接着配置角色提供者FBARoles

 

最后一步配置應用程序池為網絡服務

 

滑倒底部點擊OK,這個需要10-15秒創建一個新的application. 創建完成后出現如下畫面;

 

除了使用基於windows認證之外還是用了基於forms認證,點擊ok創建一個site collection並且把windows 帳號設置為主要的管理員(primary)

 

 

 

  1. 創建membership存儲並且添加用戶
    • 創建數據庫

打開visual studio 2010窗口命令工具,輸入aspnet_sqlreg,回車后彈出一個向導配置數據庫.按照默認將數據庫命名為membershipdb,結構如下:

接下來的事情將是要添加一些用戶和角色到數據庫中,別且使用vs修改web配置文件中的連接字符串.在“<connectionStrings/>” 節點里面

<connectionStrings>
    <clear/>
    <add name="AspNetSqlProvider"
         connectionString="data source=xxx; Integrated Security=SSPI;Initial Catalog=membershipdb;"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

然后在</system.web> 標記結束的地方,添加下面的節點,這里用AspNetSqlMembershipProvider和AspNetSqlRoleProvider來命名比較好記,等之后配置的時候使用FBAMembership和FBARoles,這個命名是次要的,主要是數據庫指向的字符串名字和應用程序的名字要正確.

   1:  <membership defaultProvider="AspNetSqlMembershipProvider">
   2:    <providers>
   3:      <clear />
   4:      <add name="AspNetSqlMembershipProvider"
   5:            connectionStringName="AspNetSqlProvider"               
   6:            applicationName="/"
   7:            type="System.Web.Security.SqlMembershipProvider, System.Web, 
   8:            Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   9:    </providers>
  10:  </membership>
  11:  <roleManager defaultProvider="AspNetSqlRoleProvider">
  12:    <providers>
  13:      <clear/>
  14:      <add name="AspNetSqlRoleProvider"
  15:            connectionStringName="AspNetSqlProvider"
  16:            applicationName="/"
  17:            description="Stores and retrieves roles data from the local Microsoft SQL Server database"               
  18:            type="System.Web.Security.SqlRoleProvider, System.Web, 
  19:            Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  20:   
  21:    </providers>
  22:  </roleManager>

 

 

  1. 使用web site管理工具添加用戶

默認情況下程序配置為windows認證,需要改成forms認證,切換到安全選項卡,點擊來自網絡並且保存.

保存后web.config會默認已經被修改成forms認證.在安全選項卡啟用角色,點擊管理或創建角色,選擇FBAAdministrators,FBAOwners和FBAUsers

 

點擊創建用戶鏈接創建一個adminfba,並且分配角色為FBAAdministrators

 

你還可以創建其他的用戶並且分配到不同的角色里面,如ownerfbs分配到FBAOwners角色中,userfbs分配到FBAUsers角色中

 

另外創建用戶的時候密碼有一些要求.

具體參見memebership默認設置

 

 

  1. 給SQL Server加權限

當我們創建了sharepoint的application,我們需要在IIS的應用程序池里面設置為網絡服務帳號.這個可以連通sql認證.或許你需要在真實的環境中使用其他的帳號.

需要為應用程式池添加一個登陸賬號.

 

下一步為他們添加適當的權限,把帳號添加到

aspnet_Membership_BasicAccess 和 aspnet_Roles_BasicAccess 角色中

 

千萬要記住必須做這些設置,不然回報安全錯誤.

 

  1. 給sharepoint加基於form的認證

添加的方法同asp.net站點一樣,不過我們可以使用IIS 管理工具來添加.

    • 添加連接字符串

打開站點名字為SharePoint – FBA Test

雙擊連接字符串選項,並且添加一個名為AspNetSqlProvider 然后點擊確定.

然后到sharepoint的web.config檢查如下:

1: <connectionStrings> 2: <add name="AspNetSqlProvider" 3: connectionString="data source=xxx; Integrated Security=SSPI;Initial Catalog=memebershipdb;" 4: providerName="System.Data.SqlClient" /> 5: </connectionStrings>

然后到管理中心作如上操作.

再到web service里面找到節點SecurityTokenServiceApplication添加連接字符串同上.

添加memebership和role的角色

打開IIS管理工具,展開SharePoint – FBA Demo,點擊provider,創建一個FBARoles角色並且類型為SqlRoleProvider,應用程序輸入“/”  連接字符串選擇AspNetSqlProvider

再添加一個FBAMembership角色,類型是SqlMembershipProvider,連接字符串為AspNetSqlProvider,application是“/”

所有添加完了之后打開配置文件就是這樣:

<membership defaultProvider="i"> <providers> <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <add name="FBAMembership" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="AspNetSqlProvider" enablePasswordReset="false" enablePasswordRetrieval="false" passwordFormat="Clear" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" /> </providers> </membership> <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 name="FBARoles" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="AspNetSqlProvider" /> </providers> </roleManager>

點擊SharePoint Central Administration v4” 做如上操作,添加FBAMembership 和FBARoles 像之前描述得那樣.展開SharePoint Web Services做法雷同.

    • 為管理中心修改web.config
    •  為令牌服務(secure token service)修改web.config
  1. 驗證是否已經修改成功

然后到管理中心去打開添加用戶,如果在彈出的對話框中可以看到在membership中配置的用戶和角色,那么說明已經正常了,

用戶的字符串像這個樣子:“i:0#.f|fbamembership|adminfba”.

然后把用戶設為full control

在新站點上可能看到如下錯誤,

 

選擇forms認證並且登錄為adminfbs即可.

登錄進去你將擁有管理員的權限.

 

現在這個用戶有完全控制,可以把之前在memebership中的角色配置到sharepoint組里面.

 

然后用其他的各種角色的帳號測試一下. 權限低的角色將限制了一部分權限.

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM