SharePoint 2010 配置基于MemberShip的身份验证

 

场景:一般须要为sharepoint打通其余的系统整合到sharepoint认证,ad一般是为内部域用户,外网访问的可使用membership来登陆,那么这个既能够内部用户访问,外部用户也能够访问 ,另外也能够把其余的用户加到membership里面.web

目录:sql

  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 ,这里须要选一个可用的端口.windows

向下滑动一点,配置基于forms的认证,选择开启基于forms认证,而且配置membership提供者命名为FBAMembership,接着配置角色提供者FBARoles安全

 

最后一步配置应用程序池为网络服务网络

 

滑倒底部点击OK,这个须要10-15秒建立一个新的application. 建立完成后出现以下画面;app

 

除了使用基于windows认证以外仍是用了基于forms认证,点击ok建立一个site collection而且把windows 账号设置为主要的管理员(primary)asp.net

 

 

 

  1. 建立membership存储而且添加用户
    • 建立数据库

打开visual studio 2010窗口命令工具,输入aspnet_sqlreg,回车后弹出一个向导配置数据库.按照默认将数据库命名为membershipdb,结构以下:
ide

接下来的事情将是要添加一些用户和角色到数据库中,别且使用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组里面.

 

而后用其余的各类角色的账号测试一下. 权限低的角色将限制了一部分权限.

相关文章
相关标签/搜索