图文说明 SharePoint 2013 配置AD FS
前提是已经安装成功AD FS服务,下面开始配置:
为信赖方配置 AD FS
-
使用有管理员权限的帐号。
-
在 AD FS 服务器上,打开 Active Directory 联合身份验证服务 (AD FS) 管理控制台。
-
在导航窗格中展开“信任关系”,然后双击“信赖方信任”文件夹。
-
在右侧窗格中单击“添加信赖方信任”。这将打开 Active Directory 联合身份验证服务 (AD FS) 配置向导。
-
在“欢迎使用添加信赖方信任向导”页上,单击“启动”。
-
选择“手动输入有关信赖方的数据”,然后单击“下一步”。
-
键入信赖方名称,然后单击“下一步”。
-
选中AD FS 配置文件”,然后单击“下一步”。
-
不要使用加密证书。单击“下一步”。
-
单击以选中“启用 WS 联合身份验证被动协议”复选框。
-
在“WS 联合身份验证被动协议 URL”字段中,键入 Web 应用程序 URL 的名称,并追加 /_trust/(例如,https:// app1.contoso.com/_trust/)。单击“下一步”。
-
键入信赖方信任标识符的名称(例如,urn:sharepoint:contoso),然后单击“添加”。单击“下一步”。请注意,这将是您在阶段 3 中配置新的 SPTrustedIdentityTokenIssuer 时的领域值。
New-SPTrustedIdentityTokenIssuer 使用下面的:urn:sharepoint:pmp
-
选择“此时,我不想为此信赖方.......”
-
选择“允许所有用户访问此信赖方”。单击“下一步”。
-
在“已准备好添加信任”页上,无需执行任何操作,直接单击“下一步”。
-
在“完成”页上单击“关闭”。
-
这将打开“规则编辑器”管理控制台。使用此控制台和下一过程将声明的映射从所选的目录源配置到 SharePoint 2013。
配置声明规则
使用此步骤中的过程将轻型目录访问协议 (LDAP) 属性的值作为声明进行发送,并指定属性将映射到传出声明类型的方式。
配置声明规则-
使用有管理员权限的帐号。
-
在“颁发转换规则”选项卡上,单击“添加规则”。
-
在“选择规则模板”页上,选择“将 LDAP 属性作为声明进行发送”。单击“下一步”。
-
在“配置规则”页上,在“声明规则名称”字段中键入声明规则的名称。
-
从“属性存储”下拉列表中选择“Active Directory”。
-
在“将 LDAP 属性映射到传出声明类型”部分的“LDAP 属性”下,选择“E-Mail-Addresses”。
-
在“传出声明类型”下,选择“电子邮件地址”。
-
在“LDAP 属性”下,选择“User-Principal-Name”。
-
在“传出声明类型”下,选择“UPN”。
-
单击“完成”,然后单击“确定”。下图内容从了仅供参考。
导出令牌签名证书
可使用本节中的过程导出您要用来建立信任关系的 AD FS 服务器的令牌签名证书,然后将该证书复制到 SharePoint 2013 能够访问的位置。
导出令牌签名证书-
在 AD FS 服务器上,打开 Active Directory 联合身份验证服务 (AD FS) 管理控制台。
-
在导航窗格中展开“服务”,然后单击“证书”文件夹。
-
在“令牌签名”下,单击“主要”列中指示的主要令牌证书。
-
在右侧窗格中单击“查看证书链接”。这将显示证书的属性。
-
单击“详细信息”选项卡。
-
单击“复制到文件”。这将启动“证书导出向导”。
-
在“欢迎使用证书导出向导”页上,单击“下一步”。
-
在“导出私钥”页上,单击“否,不要导出私钥”,然后单击“下一步”。
-
在“导出文件格式”页上,选择“DER 编码二进制 X.509 (.CER)”,然后单击“下一步”。
-
在“要导出的文件”页上,键入您要导出的文件的名称和位置,然后单击“下一步”。例如,输入 C:\ADFS.cer。
-
在“正在完成证书导出向导”页上,单击“完成”。
有关证书注意事项
这次配置ADFS很不成功的原因就证书导致的; 1,确保制作证书和使用证书使用的是同一个证书 2,确保能SSO证件点,SSO创建证书连接地址能连通。 3,确保有签名,密码和加密方式无误。 4, signInURL 的URL 和证书SSO相同。
通过使用 Windows PowerShell 导入令牌签名证书
-
-
启动 SharePoint 2013 命令行管理程序。
-
对于 Windows Server 2008 R2:
-
在 SharePoint 2013 环境中,在“开始”菜单上,单击“所有程序”,单击“Microsoft SharePoint 2013 产品”,然后单击“SharePoint 2013 命令行管理程序”。
-
-
对于 Windows Server 2012:
-
在 SharePoint 2013 环境中,在“开始”屏幕上,单击“SharePoint 2013 命令行管理程序”。
如果“SharePoint 2013 命令行管理程序”不在“开始”屏幕上:
-
右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 2013 命令行管理程序”。
-
-
-
从 Windows PowerShell 命令提示符处,导入令牌签名证书的父证书(即,根证书颁发机构证书),如以下语法中所示:
$root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("<PathToParentCert>")
New-SPTrustedRootAuthority -Name "Token Signing Cert Parent" -Certificate $root
-
从 Windows PowerShell 命令提示符处,导入从 AD FS 服务器复制的令牌签名证书,如以下语法中所示:
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("<PathToSigningCert>")
New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert
-
$root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("D:\cer\SPADFS.cer")
New-SPTrustedRootAuthority -Name "Token Signing Cert Parent" -Certificate $root$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("D:\cer\SPADFS.cer")
New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert
$emailClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$upnClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -IncomingClaimTypeDisplayName "UPN" -SameAsIncoming
$roleClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming
$sidClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" -IncomingClaimTypeDisplayName "SID" -SameAsIncoming
-
从 Windows PowerShell 命令提示符处,创建一个新的身份验证提供程序,如以下语法中所示。
$realm = "urn:sharepoint:<WebAppName>" // 之前创建过的名称在这里使用 例如上方的信任方信任标识符urn:sharepoint:pmp
$signInURL = "https://<YourADFSServerName>/adfs/ls" //在ADFS服务器 服务--终结点。找到这个地址
$ap = New-SPTrustedIdentityTokenIssuer -Name "SPADFS" -Description "SPProvider" -realm $realm -ImportTrustCertificate $cert -ClaimsMappings $emailClaimMap,$upnClaimMap,$roleClaimMap,$sidClaimMap -SignInUrl $signInURL -IdentifierClaim $emailClaimmap.InputClaimType
// 注意: 这里的SPADFS 是你在sharepoint里的名字。如下图。信任的身份提供程序已经出现了“SPADFS”
Remove-SPTrustedIdentityTokenIssuer "LiveIDSTS" // SPADFS
下图的意思,再次创建的时候不让创建,说已经存在,那就删除他了。 -
在管理中心的主页上,单击“应用程序管理”。
-
在“应用程序管理”页上的“Web 应用程序”部分,单击“管理 Web 应用程序”。
-
单击适当的 Web 应用程序。
-
从功能区中单击“身份验证提供程序”。
-
在“区域”下单击区域的名称,例如 默认。
-
在“编辑验证”页上的“声明身份验证类型”部分,选择“信任的身份提供程序”,然后单击 SAML 提供程序的名称(New-SPTrustedIdentityTokenIssuer 命令中的<ProviderName>。单击“确定”。例如“SPASFS”
-
接下来,您必须为此 Web 应用程序启用 SSL。可以通过为“https://”版本的 Web 应用程序 URL 添加备用访问映射,然后在 Internet Information Services (IIS) 管理器控制台中为 https 绑定配置网站来完成此操作。有关如何为 IIS 设置 SSl 的详细信息,请参阅如何在 IIS 7.0 上设置 SSL。
Add-PSSnapin Microsoft.SharePoint.Powershell
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("D:\cer\ADFSTokenSigning.cer")
New-SPTrustedRootAuthority -Name "Token Signing Cert Parent" -Certificate $cert$emailClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$upnClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -IncomingClaimTypeDisplayName "UPN" -SameAsIncoming
$roleClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming$realm = "urn:sharepoint:pmp"$signInURL = "https://sso.xxx.xxxx.com.cn/adfs/ls"$ap = New-SPTrustedIdentityTokenIssuer -Name “ADFS” -Description “ADFS” -realm $realm -ImportTrustCertificate $cert -ClaimsMappings $emailClaimMap,$upnClaimMap,$roleClaimMap -SignInUrl $signInURL -IdentifierClaim $emailClaimmap.InputClaimType$ap = Get-SPTrustedIdentityTokenIssuer adfs
$uri = "https://xxx.xxxx.com.cn"
$id = "urn:sharepoint:pmp"
$ap.ProviderRealms.Add($uri, $id)
$ap.update()
成功之后分别在ADFS服务器和sharepoint 服务器更新如下内容;
ADFS cookie expiration
Get-adfsrelyingpartytrust pmp2ps | set-adfsrelyingpartytrust –tokenlifetime 15Sharepoint token expiration$sts = Get-SPSecurityTokenServiceConfig
$sts.ApplicationTokenCacheExpirationWindow = (New-TimeSpan -Minutes 1)
$sts.update()
iisreset