Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8351036
  • 博文数量: 444
  • 博客积分: 10593
  • 博客等级: 上将
  • 技术积分: 3852
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-09 15:26
文章分类

全部博文(444)

文章存档

2014年(1)

2013年(10)

2012年(18)

2011年(35)

2010年(125)

2009年(108)

2008年(52)

2007年(72)

2006年(23)

分类: WINDOWS

2009-10-22 14:27:49

如何实现基于AD的MOSS的FORM认证方式

首先,想先讲讲MOSS的认证方式。

默认MOSS安装完是采用AD的认证方式,首先AD的认证方式比较适合于内部网络,不建议在外部网络使用,因为开启AD认证要开启相应不必要的端口,并且目前代理服务器通常设置只允许80端口访问,这样将不能访问基于AD的MOSS系统。因此,很多人想到了FORM表单认证,早在2003年前,大家都会对SHAREPOINT只能支持AD认证报有遗憾,那么随着MOSS2007的推出,网上已经有很多人学会了如何配置一个FORM认证的MOSS系统。

但是网上的文章基本上都是基于ASPNET数据库的,而我们现实的生产环境中要求实现一个基于AD的用户数据,但是又提供FORM认证的系统。

可能网上也有一小部分人有简单介绍过相关的文章,那么,我现在就将完整的步骤以及相关的原理重新解释一下,希望能够帮助一部分人。

1。首先配置“验证提供程序”

进入管理中心应用程序管理界面,点击应用程序安全性节中的验证提供程序

验证提供程序配置管理界面中,我们可以发现列表中有默认的提供程序,如果你扩展了应用程序,可能还多了一个区域叫“Intranet”的提供程序。如下图

点击“默认”,将进入编辑验证设置界面。在验证类型一节中,选择表单选项,并在匿名访问一节中,勾选启用匿名访问复选框。

然后向下拉动页面滚动条,在成员身份提供程序名称设置节中,输入“AspNetActiveDirectoryMembershipProvider”

这个名称必须和下面的WEB。CONfig里的配置一致。

 

再向下拉动页面滚动条,点击确定按钮。

 

之后,在返回的验证提供程序界面,将可以看到其“默认”提供程序的成员身份提供程序名称一列的值,从“Windows”变成了“AspNetActiveDirectoryMembershipProvider”

 

完成了以上步骤后,我们就把80端口访问的默认区域的验证方式改成了利用AspNetActiveDirectoryMembershipProvider来验证了,这个providerSystem.Web.Security命名空间下的一个类。很多时候我们可以通过修改Provider来修改Form的认证方式。

 

在这个时候,你如果重新进入80端口的网站的时候,你可以看到下图

 

但是,无论如何,你是没有权限进去的,哪怕是管理员的帐户都没有办法,这是因为你现在已经使用了FORM帐号登陆了,之前配置的信息呢,是WINDOWS的帐号(虽然他们的帐号都叫administrator)

 

下面我们需要修改两个步骤。

一、修改80目录下的WEB。CONFIG

 

 

Web.config文件中的一节上面,添加如下配置节:

    
  

    其中"SpiritCustomService"是自定义的名称,将会被后面的配置节所用到。“moss”是服务器的名称。

 

然后,需要在节里面添加如下配置节:  

   

    

    

 

    注意: 1)name属性的值不要写错,要和前面一篇设置提供程序时的名称相同。

       2connectionStringName的值要和上一步ConnectionStrings节中设置的名称相同。

      3)attributeMapUsernameattributeMapEmail的值都是AD中相应的属性名称。

       4) connectionUsernameconnectionPassword的值是连接使用的账号与密码。

      5) minRequirePasswordLengthminRequiredNonalphanumericCharacters都是组策略的设置,要根据实际的设置填写。 

   添加完成后,保存所做修改。

 

二、更改IIS管理中心目录下的WEB。CONFIG

修改的代码同第一点,这里不再截图和解释。

当你做完两个步骤后,你就可以往网站上增加权限了。但是你现在会发现,你不知道如何增加权限。我们需要再进行下面的步骤

然后进入管理中心界面,在应用程序管理界面中点击“Web应用程序的策略

 

“Web应用程序的策略的管理界面中,点击添加用户按钮。

 

 

添加用户界面中,选择我们的站点和区域,并单点下一步按钮。

然后在选择用户一节中,点击浏览用户按钮。

 

此时会弹出浏览用户的对话框,在查找文本框中输入你的管理账号名称,如“wssadmin”,然后点击查找按钮(一个放大镜图标),然后下面的列表中会列出账号的相关信息,可以发现账户名“AspNetActiveDirectoryMembershipProvider”前缀。单点添加按钮,最后点击确定按钮。

 

 

对话框关闭后,会发现选择用户的文本框中已经有了我们所选择的账户,我们再在下面的选择权限一节中勾选完全控制选项,并单击完成按钮。

 

 

此时,在“Web的应用程序策略界面中,我们就可以看到,我们为默认区域添加了一个完全控制的管理账户。同时,通过账户的名称前缀,可以看出该账户是由我们的Provider提供的。

最后,再使用该账号登录我们的镜像站点,会发现他已经具有了完全控制的权限。通过该用户,也可以在站点中为其他用户添加权限。

 

基本的配置就到这里了。。。

 

你可以发现,等你进入到网站后通过人员新增的相关界面也同样可以搜索到我们配置的PROVIDER的帐号,那是因为我们修改80端口的WEB。CONFIG的缘故。

 

其实,虽然我们登陆的也是WINDOWS一样的帐号,但是WINDOWS认证时,他的帐户名是域名\帐号名,而设置FORM认证后确是PROVIDER名\帐号名,网上有很多人教授如何设置WINDOW和FORM双认证的,,但是请别忘记了一个重要的,当你做完双认证后,所有的权限必须得重新配置一遍。

 

今天介绍到这里

 

下面两章将介绍

在FORM认证将如何修改登陆页面,LOGIN.ASPX和LOGIN.MASTER

在FORM认证环境下如何通过代码进行人员权限的新增

 

 

 

1
0
(请您对文章做出评价)
posted @ 2009-02-23 20:12 雷君 阅读(810) 评论(5)  编辑 收藏 网摘 所属分类: sharepoint

  回复  引用  查看    
#1楼2009-02-25 21:58 | virus      
最近在研究变体和匿名访问
可是发现变体的网站不能匿名访问
我先设置网站为匿名访问,工作正常
然后把其中一个子网站设置为源变体,发现这个设置了的网站不能再匿名访问了,不知道有没有遇到过呢
他们是不是不能共存呢,谢谢

  回复  引用  查看    
#2楼2009-02-27 10:47 | Rich-Chen      
请问在这种FORM认证方式 下,文档库中的office文档能够编辑更新吗? 还是只能够只读这些文档?
  回复  引用  查看    
#3楼[楼主]2009-04-09 13:03 | 雷君      
变体的功能我只是简单的进行了一些测试,没有详细测试到匿名访问,这个估计得测试后才能回答.

RICH-CHEN

我这个也是标准的FORM认证,只是他的数据源是在AD里而已,和其他的FORM认证没有任何区别,对于你的问题,我敢保证是可以的,我可以打开某个列表的某个附件.并且在线编辑更新,但是需要做一个步骤,就是我们在FORM认证登陆的时候,必须把自动登陆这个单选框打上才可以.这样例如WORD,PPT,SPD等软件就可以远程打开这些文件了.如果不选上,那是没有凭证信息的.自然就打不开

  回复  引用  查看    
#4楼2009-04-16 17:29 | 龙潜冰风悄林      
请问下:就是现在校园网里面存在几个网站,需要进行统一身份认证,该怎么做。每个网站都有自己的数据库,并且同一个人的用户信息在各个网站有可能不同,应该怎么做??
  回复  引用  查看    
#5楼[楼主]2009-04-16 17:33 | 雷君      
1.一种方式...是否可以将所有网站的用户统一起来,建议统一的用户库,然后与各网站进行同步和映射...不过这个工作量可能比较大

2.就是SSO.通过建立SSO,他们会有一个统一的帐户,例如AD的帐户.然后通过一些配置可以实现AD的某个帐户对应的是某个网站的某个用户,,,那么当用户第一次访问AD的帐户时,他们并不知道他们在另外一个网站的用户和密码,但是当第一次输入帐户密码后将自动的记录,第二次就再也不用输入了

阅读(2278) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~