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

场景:通常需要为sharepoint打通其他的系统整合到sharepoint认证,ad通常是为内部域用户,外网访问的可以使用membership来登录,那么这个既可以内部用户访问,外部用户也可以访问 ,另外也可以把其他的用户加到membership里面.

目录:

  1. 用aspnet_sqlreg创建memebership数据库
  2. 用网站管理工具添加用户和角色
  3. 为以下添加连接字符串:
  4. 你的应用程序(application)
  5. 管理中心(central administration)
  6. 令牌服务程序(secure token service application)
  7. 为以下添加memebership和providers
  8. 你的应用程序(application)
  9. 管理中心(central administration)
  10. 令牌服务程序(secure token service application)

  11. 创建一个新的应用程序

打开 管理中心,找到 管理web应用程序

点击后弹出一个界面,点击ribbon工具栏新建一个application

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

在弹出的窗口中选择基于身份的验证(Claims Based Authentication),完成后IIS将创建一个新的IIS站点,如果需要你可以修改这个站点名字,如Sharepoint –FBA Test ,这里需要选一个可用的端口.

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

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

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

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

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

除了使用基于windows认证之外还是用了基于forms认证,点击ok创建一个site collection并且把windows 帐号设置为主要的管理员(primary)

  1. 创建membership存储并且添加用户
  2. 创建数据库

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

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

接下来的事情将是要添加一些用户和角色到数据库中,别且使用vs修改web配置文件中的连接字符串.在”

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

然后在 标记结束的地方,添加下面的节点,这里用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认证,切换到安全选项卡,点击来自网络并且保存.

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

保存后web.config会默认已经被修改成forms认证.在安全选项卡启用角色,点击管理或创建角色,选择FBAAdministrators,FBAOwners和FBAUsers

点击创建用户链接创建一个adminfba,并且分配角色为FBAAdministrators

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

你还可以创建其他的用户并且分配到不同的角色里面,如ownerfbs分配到FBAOwners角色中,userfbs分配到FBAUsers角色中

另外创建用户的时候密码有一些要求.

具体参见memebership默认设置

SharePoint 2010 配置基于MemberShip的身份验证
  1. 给SQL Server加权限

当我们创建了sharepoint的application,我们需要在IIS的应用程序池里面设置为网络服务帐号.这个可以连通sql认证.或许你需要在真实的环境中使用其他的帐号.

需要为应用程式池添加一个登陆账号.

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

下一步为他们添加适当的权限,把帐号添加到

aspnet_Membership_BasicAccess 和 aspnet_Roles_BasicAccess 角色中

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

千万要记住必须做这些设置,不然回报安全错误.

  1. 给sharepoint加基于form的认证

添加的方法同asp.net站点一样,不过我们可以使用IIS 管理工具来添加.

1.

  • 添加连接字符串

打开站点名字为SharePoint – FBA Test

双击连接字符串选项,并且添加一个名为AspNetSqlProvider 然后点击确定.

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

1: 2:5:connectionStrings >

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

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

再到web service里面找到节点SecurityTokenServiceApplication添加连接字符串同上.

添加memebership和role的角色

打开IIS管理工具,展开SharePoint – FBA Demo,点击provider,创建一个FBARoles角色并且类型为SqlRoleProvider,应用程序输入”/” 连接字符串选择AspNetSqlProvider

再添加一个FBAMembership角色,类型是SqlMembershipProvider,连接字符串为AspNetSqlProvider,application是”/”

所有添加完了之后打开配置文件就是这样:

providers > membership > providers > roleManager >

点击SharePoint Central Administration v4″ 做如上操作,添加FBAMembership 和FBARoles 像之前描述得那样.展开SharePoint Web Services做法雷同.

1.

  • 为管理中心修改web.config
  • 为令牌服务(secure token service)修改web.config
  • 验证是否已经修改成功

然后到管理中心去打开添加用户,如果在弹出的对话框中可以看到在membership中配置的用户和角色,那么说明已经正常了,

用户的字符串像这个样子:”i:0#.f|fbamembership|adminfba”.

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

然后把用户设为full control

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

在新站点上可能看到如下错误,

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

选择forms认证并且登录为adminfbs即可.

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

登录进去你将拥有管理员的权限.

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

现在这个用户有完全控制,可以把之前在memebership中的角色配置到sharepoint组里面.

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

然后用其他的各种角色的帐号测试一下. 权限低的角色将限制了一部分权限.

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

Original: https://www.cnblogs.com/fengqingyangNo1/p/3454468.html
Author: 风清扬 No.1
Title: SharePoint 2010 配置基于MemberShip的身份验证

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/580164/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java中this和super关键字小结

    package com.itheima.test; /** * @author Pzi * @create 2022-09-26 16:23 */ public class A {…

    Java 2023年6月15日
    078
  • vs 2005 thread 无法调试

    两种办法: 1、打开项目属性,在”Debug”一项里,把”Enable the Visual Studio hosting process&#8…

    Java 2023年6月14日
    089
  • NoSQL,关系型数据库,行列数据库对比、类比

    数据库对比、类比 关系型数据库、NoSQL 关系型数据库 表与表之间有关系。表存储一些格式化的数据结构,每个元组字段的组成都一样,这样便于表之间的联结操作。不过也限制了其性能瓶颈。…

    Java 2023年6月8日
    078
  • Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)

    原文:Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn) – Stars-One的杂货小窝 经过前面的学习,…

    Java 2023年6月13日
    088
  • 解读ASP.NET 5 & MVC6系列(8):Session与Caching

    在之前的版本中,Session存在于System.Web中,新版ASP.NET 5中由于不在依赖于System.Web.dll库了,所以相应的,Session也就成了ASP.NET…

    Java 2023年5月30日
    074
  • Java实现URL参数拼接案例

    一、获取url中某个key的参数 Uri uri = Uri.parse(url); String value = uri.getQueryParameter("参数的k…

    Java 2023年5月29日
    092
  • 转载:多核平台下的JAVA优化

    现在多核CPU是主流。利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于Java程序,可以实现并发垃圾收集。但是Java利用多核技术也带来了一些问题,主要是多线程共享内存引起了…

    Java 2023年5月29日
    074
  • SpringCloud中利用OAuth2实现客户端单设备登录

    在OAuth2生成Token的地方,源码里面会判断Token是否已经存在,如果存在且未过期直接返回旧的Token,如果不存在或已过期,则重新生成一个新的Token 这里做一个改动:…

    Java 2023年6月5日
    0105
  • int和String的相互转化

    int和String的相互转化 将int转化为String 通过valueof( )方法进行转化 int a=100; String num1=String.valueOf(a);…

    Java 2023年6月5日
    072
  • springboot源码分析——自动配置流程

    一:ConfigurationClassPostProcessor类的埋点 自动配置解析的核心功能都在这个类里面,这是一个BeanDefinitionRegistryPostPro…

    Java 2023年5月30日
    088
  • Springboot学习

    具体内容: 包含核心基础、Web原理、单元测试、数据访问、指标监控等章节 SpringBoot 官方文档 https://www.cnblogs.com/youcoding/p/1…

    Java 2023年5月30日
    0108
  • Java多线程

    进程是程序的依次执行过程,线程是比进程更小的执行单位,一个进程在其执行的过程中可以产生多个线程,多个线程共享进程的堆和方法区内存资源。 1.进程和线程 程序是含有指令和数据的文件,…

    Java 2023年6月9日
    076
  • [PostgreSql]生产级别数据库安装要考虑哪些问题?

    大家好,我是字母哥(coder)! 我让公司的小伙伴写一个生产级别的PostgreSQL的安装文档,结果他和我说:”不是用一个命令就能安装好么?还用写文档么?&#822…

    Java 2023年6月15日
    079
  • Docker(一):初识

    1、什么是Docker Docker 是一个基于Go 语言并遵从Apache2.0协议开源的、轻量级的容器引擎,主要运行于 Linux 和 Windows,用于创建、管理和编排容器…

    Java 2023年6月16日
    077
  • java动态代理实现与原理详细分析

    关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式–代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。 一、代理模式 代理模式是…

    Java 2023年5月29日
    085
  • Kafka 生产者解析

    一、消息发送 1.1 数据生产流程 数据生产流程图解: Producer创建时,会创建⼀个Sender线程并设置为守护线程 ⽣产消息时,内部其实是异步流程;⽣产的消息先经过 拦截器…

    Java 2023年6月5日
    088
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球