现在越来越多的企业使用ADFS作为单点登录,我希望今天的内容能帮助大家了解如何配置ADFS和SharePoint 2013。安装配置SharePoint2013这块就不做具体描述了,今天主要讲一下怎么安装配置ADFS3.0。
1. ADFS安装
- 在ADFS服务器上,以域管理员Administrator身份登录,以管理员身份启动Powershell,运行命令“Install-WindowsFeature -name ADFS-Federation”安装ADFS Windows角色功能。
- 启动服务器管理器,单击右上角黄色旗帜
3. 单击“在此服务器上配置联合身份验证服务”
4. 单击“下一步”
4. 单击“下一步”
5. 单击“导入”
6. 选择在2.5中导出的证书,单击“打开”
7. 输入证书的导出时设置的密码
8. 输入下述信息:
- 联合身份验证服务名称:ADFS.***.COM –注意需要在DNS中建立相应的A记录
- 联合身份验证服务名称:*** Test –该名称任意,会显示在登录页面上
单击“下一步”
9. 单击“选择”
10. 输入ADFS服务账户名称,单击“检查名称”后,单击“确定”
11. 输入ADFS服务的密码,单击“下一步”
12. 单击“下一步”
13. 单击“下一步”
14. 单击“配置”
15. 单击“关闭”完成配置
16. 启动浏览器,在地址栏输入“https://adfs.****.com/federationmetadata/2007-06/federationmetadata.xml “ 回车,正确显示ADFS metadata页面,证明ADFS服务已经正确配置。
2. ADFS端配置
2.1 导出令牌签名证书
在服务器管理中,单击“工具-ADFS管理”启动ADFS管理工具
在左边导航栏,依次选择“服务-证书”,然后选择“令牌签名”,在右边操作栏,选择查看证书
单击“复制到文件”
单击“下一步”
单击下一步
指定证书存放位置和文件名,单击“下一步”
单击“完成”,注意该证书在配置SharePoint时需要。
2.2 创建信赖方信任
在ADFS 管理工具,浏览到“信任关系-信赖方信任”,在右边操作栏,选择“添加信赖方信任”启动向导
单击“启动”
选择“手动输入有关信赖方的数据”,单击下一步
输入信赖方显示名称和注释,用于在ADFS中标识信赖方,不可重复,单击“下一步”
默认是用ADFS配置文件,单击“下一步”
单击“下一步”
选择“启用对WS-Federation被动协议的支持”(对于微软产品和.NET开发的应用,都可以选择该协议,对于Java等其他异构系统,请选择“启用对SAML2.0 WEB SSO 协议的支持”),输入“信赖方WS-Federation被动协议URL”,在这里测试环境的SharePoint的URL:https://protal**.***.com/_trust/, 其它请输入接受ADFS认证令牌的入口URL地址,单击“下一步”
删除已有的信赖方标识符,输入“urn:test:sp2013”最为SharePoint测试环境的信赖方标识符,单击“添加”,请记录该信赖方标识符,在配置SharePoint时会用到,
单击“下一步”
单击“下一步”
单击“下一步”
单击“下一步”
单击“关闭”
单击“添加规则”
单击“下一步”
输入声明规则名称,选择“Active directory”作为特性存储,在LDAP特性到传出声明类型映射:
按下图设置UPN和Windows账户的映射,左边是是Active Drectory的属性,右边是ADFS令牌中包含的属性,可根据需要设置多个属性。单击“完成”.
单击“确定”完成ADFS端的配置
注释:
对于SharePoint每个Web Application都需要在ADFS端配置一个信赖方信任
对于其它业务应用,每个应用应该配置在ADFS端配置一个信赖方信任
3. SharePoint ADFS 配置
3.1 导入Web站点SSL证书
运行“inetmgr.exe”,启动Internet Information Service (IIS)管理器
双击“服务器证书”
在右边操作栏,单击“导入”
输入证书文件路径,证书密码,清除“允许导出此证书”,单击确定
确认证书已经导入
注释:证书导入也可以通过MMC中证书管理工具导入。
3.2 创建 SharePoint 信任的身份令牌颁发者
在SharePoint 服务器上,以管理员身份启动SharePoint 命令行管理程序:
序号 |
命令说明 |
执行命令 |
1 |
设置ADFS签名证书变量,此处Tokensign.cer证书是从ADFS服务器上导出的令牌签名证书 |
$cert = New-Object System.Security.Cryptography.x509Certificates.x509Certificate2 (“\\ad-test\Software\Tool\Tokensign.cer") |
2 |
将令牌签名证书导入到SharePoint的信任区 |
New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert |
3 |
设置UPN声明变量 |
$upnClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -IncomingClaimTypeDisplayName "UPN" -SameAsIncoming |
设置通用名声明变量 |
$cnNameMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/claims/CommonName" -IncomingClaimTypeDisplayName "Display Name" –SameAsIncoming |
|
4 |
设置“realm”声明变量,此处一定要与ADFS信赖方信任配置的“信赖方标识符”一致,包括大小写 |
$realm = “urn:Dev2:SP2013” |
5 |
设置登录URL变量,此处为ADFS登录的页URL |
$signInURL = “https://adfs.****.com/adfs/ls” |
6 |
$ap = New-SPTrustedIdentityTokenIssuer -Name "ADFS Web SSO for SharePoint" -description “ADFS Web SSO for SharePoint" -realm $realm -ImportTrustCertificate $cert -ClaimsMappings $upnClaimMap, $cnNameMap -SignInURL $signInURL -IdentifierClaim $upnClaimMap.InputClaimType |
|
7 |
Get-SPTrustedIdentityTokenIssuer |
3.3 配置SharePoint使用ADFS SSO登录认证
启动SharePoint管理中心,单击“管理Web应用程序”
选中要配置使用ADFS登录的Web应用程序,单击“身份验证提供程序”
单击“默认”
选中“信任的身份提供程序”和“SAML Provider for SharePoint”,单击“保存”
3.4 更改站点集管理员账户使用ADFS认证识别的账户名
由于使用ADFS认证后,认证授权程序不能正确识别使用传统的域名\账户形式的授权,需要更改成UPN的形式,因此需要更改站点集管理员为UPN形式。
启动SharePoint管理中心,单击应用程序管理,选择更改网站集管理员
选择正确的网站集,参考下图,更改网站集管理员为UPN形式。
3.5 配置第二个Web Application使用ADFS认证
- 创建Web Application及站点集,这里假定Web Application的URL是https://test02.test.com
- 按照5.2步骤创建信赖方信任,并记下信赖方信任标识符,这里假定是urn:test02:sp2013
- 启动SharePoint 命令行窗口,执行下面的命令
$ap = Get-SPTrustedIdentityTokenIssuer
$uri = "https://test02.test.com"
$id = "urn:test02:sp2013"
$ap.ProviderRealms.Add($uri, $id)
$ap.update()
如果回滚该操作,执行面命令:
$ap = Get-SPTrustedIdentityTokenIssuer
$uri = "https://test02.test.com"
$ap.ProviderRealms.Remove($uri)
$ap.update()
- 按照3.3和3.4步骤配置使用ADFS的基于声明的登录和更改站点集管理员账户为UPN形式。
- 在测试前端服务器上,启动浏览器,输入该地址https://portal.test.com/,回车,选择”SAML Provider for SharePoint”
1.6 测试ADFS登录
输入有权限的用户名和密码,单击“登录”
登录完成
这样我们的ADFS与SharePoint的登录配置完成了!