设为首页 收藏本站
查看: 3681|回复: 0

[经验分享] 转载:Sharepoint 2010 Form 身份认证的实现(基于AD)

[复制链接]

尚未签到

发表于 2015-9-28 10:31:46 | 显示全部楼层 |阅读模式
  写之前,我发下感慨,我为了弄这个from认证花费了4天时间,而且每天都熬夜2点才睡觉,最后还是在和 foley 讨论下才真正成功实现了,这里form认证和2007不一样,它的用户是存在AD里面的,所以需要域服务器,外国的文章和MSND上也只提供了这种方式,现在我也没法实现2007那种SQL数据库保存用户的方法,因为在登录的时候会爆一个很BT得错误(经过多方努力,终于找到文档实现SQL保存用户了),好了我现在介绍怎么配置form认证:
  
  一。进管理中心,创建一个应用程序,配置如下:
DSC0000.jpg
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
DSC0001.jpg
  
  
  
  
  
  
  二。填端口号,和选择form身份认证,以及填写成员和角色,其他都默认就可以了
DSC0002.jpg
DSC0003.jpg
  
  三。使用SharePoint 2010 Management Shell在里面填写下面的代码
  


DSC0004.gif 代码



$webApp = Get-SPWebApplication "http://cd-isbunet:82"
$webApp.UseClaimsAuthentication = 1;
$webApp.Update()
$webApp.ProvisionGlobally()
$webApp = Get-SPWebApplication "http://cd-isbunet:82"
$webApp.MigrateUsers($True)
  
  http://cd-isbunet:82 是我刚才创建的应用程序,你需要改成你自己的
  四。最重要的一步,修改管理中心,我们创建的应用程序,还有Web服务里面的SecurityTokenServiceApplication(2007是不需要配置这个的)这个3个地方的web.config
  1.找到管理中心的<system.web></system.web>,配置如下:
  这里先解释下里面的代码,你只需要替换
  server="机器名.cd-isbunet.ncs.corp.int-ads"   //SharePoint服务器的计算机全名
userContainer="CN=Users,DC=ncs,DC=corp,DC=int-ads"   //Users不用换 DC为你域的信息
  groupContainer="DC=ncs,DC=corp,DC=int-ads"
  connectionUsername="XXX\jiangly"  //换成自己的域管理员
connectionPassword="123456" />
                                          
                                      



代码



  <membership defaultProvider="AspNetSqlMembershipProvider">
          <providers>
              <!-- ADMembership-->
              <add name="ADMembership"
                                           type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                                           server="机器名.cd-isbunet.ncs.corp.int-ads"
                                           port="389"
                                           useSSL="false"
                                           userDNAttribute="distinguishedName"
                                           userNameAttribute="sAMAccountName"
                                           userContainer="CN=Users,DC=ncs,DC=corp,DC=int-ads"
                                           userObjectClass="person"
                                           userFilter="(&amp;(ObjectClass=person))"
                                           scope="Subtree"
                                           otherRequiredUserAttributes="sn,givenname,cn"
                                           connectionUsername="XXX\jiangly"
                                           connectionPassword="123456" />
              <!-- ADMembership-->
          </providers>
      </membership >
      <roleManager defaultProvider="AspNetWindowsTokenRoleProvider"  enabled ="true">
          <providers>
              <add name="roleManager"
                                           type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                                           server="机器名.cd-isbunet.ncs.corp.int-ads"
                                           port="389"
                                           useSSL="false"
                                           groupContainer="DC=ncs,DC=corp,DC=int-ads"
                                           groupNameAttribute="cn"
                                           groupNameAlternateSearchAttribute="samAccountName"
                                           groupMemberAttribute="member"
                                           userNameAttribute="sAMAccountName"
                                           dnAttribute="distinguishedName"
                                           groupFilter="(&amp;(ObjectClass=group))"
                                           userFilter="(&amp;(ObjectClass=person))"
                                           scope="Subtree"
                                           connectionUsername="XXX\jiangly"
                                           connectionPassword="123456" />

          </providers>
      </roleManager>
  2.找到应用程序的<system.web></system.web>,配置如下:
  


代码



<machineKey validationKey="D35D48269B8B92E8A7D86FB64FBFCC4B2B4F1E3A0BFC43FB" decryptionKey="FEA7B512E6E390C18283E0D2E0542564F1E47E1F0A80F335" validation="SHA1" />
      <membership defaultProvider="i">
          <providers>
              <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
              <!-- ADMembership-->
              <add name="ADMembership" type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                                   server="机器名.cd-isbunet.ncs.corp.int-ads"
                                   port="389" useSSL="false"
                                   userDNAttribute="distinguishedName"
                                   userNameAttribute="sAMAccountName"
                                   userContainer="CN=Users,DC=ncs,DC=corp,DC=int-ads"
                                   userObjectClass="person"
                                   userFilter="(&amp;(ObjectClass=person))"
                                   scope="Subtree"
                                   otherRequiredUserAttributes="sn,givenname,cn"
                             connectionUsername="XXX\jiangly"
                                       connectionPassword="123456" />
              <!-- ADMembership-->
          </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" />
              <!-- ADMembership-->
              <add name="roleManager" type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                                   server="机器名.cd-isbunet.ncs.corp.int-ads"
                                   port="389"
                                   useSSL="false"
                                   groupContainer="DC=ncs,DC=corp,DC=int-ads"
                                   groupNameAttribute="cn"
                                   groupNameAlternateSearchAttribute="samAccountName"
                                   groupMemberAttribute="member"
                                   userNameAttribute="sAMAccountName"
                                   dnAttribute="distinguishedName"
                                   groupFilter="(&amp;(ObjectClass=group))"
                                   userFilter="(&amp;(ObjectClass=person))"
                                   scope="Subtree"
                               connectionUsername="XXX\jiangly"
                                       connectionPassword="123456" />
              <!-- ADMembership-->
          </providers>
      </roleManager>
  3.找到SecurityTokenServiceApplication站台web.config,它里面没有<system.web></system.web>,你需要自己添加
  


代码



<system.web>
        <!-- ADMembership-->
        <membership>
            <providers>
                <!-- ADMembership-->
                <add name="ADMembership"
                                             type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                                             server="机器名.cd-isbunet.ncs.corp.int-ads"
                                             port="389"
                                             useSSL="false"
                                             userDNAttribute="distinguishedName"
                                             userNameAttribute="sAMAccountName"
                                             userContainer="CN=Users,DC=ncs,DC=corp,DC=int-ads"
                                             userObjectClass="person"
                                             userFilter="(&amp;(ObjectClass=person))"
                                             scope="Subtree"
                                             otherRequiredUserAttributes="sn,givenname,cn"
                                             connectionUsername="XXX\jiangly"
                                       connectionPassword="123456" />
                <!-- ADMembership-->
            </providers>
        </membership>
        <roleManager enabled ="true" >
            <providers>
                <!-- ADMembership-->
                <add name="roleManager"
                                             type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                                             server="机器名.cd-isbunet.ncs.corp.int-ads"
                                             port="389"
                                             useSSL="false"
                                             groupContainer="DC=ncs,DC=corp,DC=int-ads"
                                             groupNameAttribute="cn"
                                             groupNameAlternateSearchAttribute="samAccountName"
                                             groupMemberAttribute="member"
                                             userNameAttribute="sAMAccountName"
                                              dnAttribute="distinguishedName"
                                             groupFilter="(&amp;(ObjectClass=group))"
                                             userFilter="(&amp;(ObjectClass=person))"
                                             scope="Subtree"
                                             connectionUsername="XXX\jiangly"
                                       connectionPassword="123456" />
                <!-- ADMembership-->
            </providers>
        </roleManager>
    </system.web>
  五。我们进管理中心-》应用程序管理-》打开用户策略-》添加域中的用户(如果没有找到,说明你的web.config里要修改的参数不对)
DSC0005.jpg
  六。创建网站集,然后打开站点登陆,如果一切正常就能进入站点了
DSC0006.jpg
  
DSC0007.jpg
  祝你成功!
  
  这里特别感谢foley!
  参考资料:
  (1)http://www.microsofttranslator.com/bv.aspx?ref=Internal&from=en&to=zh-CHS&a=http%3a%2f%2fblogs.msdn.com%2fb%2frussmax%2farchive%2f2009%2f12%2f31%2fconfiguring-forms-based-authentication-for-claims-based-web-applications.aspx
  (2)http://isharebook.com/forums/showthread.php/2649-Claims-Based-Identity-in-SharePoint-2010.html
  (3)http://blogs.technet.com/b/speschka/archive/2009/11/05/configuring-forms-based-authentication-in-sharepoint-2010.aspx
  (4)http://xiangzhangjun2006.blog.163.com/blog/static/44140966201061334818612/
  
  
  转自:http://www.cnblogs.com/jlydboy/articles/1792112.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-119887-1-1.html 上篇帖子: SharePoint 2010 配置 incoming email 步骤 下篇帖子: Tech·Ed 2008见闻之-实战经验:编写高质量高效率的SharePoint应用程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表