我已使用 this 在一个 SharePoint 2016 On Prem 网站上成功配置 ADFS。
现在我尝试在另一个具有不同 UPN 的 SharePoint 站点上配置相同的内容,类似地,两个站点也在 ADFS 服务器上注册,并将请求路由到两个不同的 SharePoint 站点。
当我尝试执行以下命令时,它返回“证书已存在”,尽管该证书是由基础设施团队颁发给我的:
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("E:\facilitiesadfstokensigning.cer")
New-SPTrustedIdentityTokenIssuer -Name "TrustedFacilitiesSite.adfs" -Description "TrustedFacilitiesSite.adfs" -Realm $realm -ImportTrustCertificate $signingCert -ClaimsMappings $email, $role -SignInUrl $signinurl -IdentifierClaim $email.InputClaimType
我尝试在没有 ImportTrustCertificate 的情况下执行命令,但它说需要证书。
任何人都可以帮我解决这个问题吗
提前致谢
我还尝试过以下方法:
在第二个 SharePoint 站点中使用第一个身份提供程序,并在同一 URN 中的 ADFS 服务器中添加第二个站点的信任 URL。 在这种情况下,第二个站点将返回以下错误 URL 并且无法与 ADFS 通信:
https://facilitiesuat.engro.com/_trust/default.aspx?trust=engro%2Eadfs&ReturnUrl=%2f_layouts%2f15%2fAuthenticate.aspx%3fSource%3d%252FPages%252FPageNotFoundError%252Easpx%253FrequestUrl%253Dhttps%253A%252F%252Ffacilitiesuat%252Eengro%252Ecom%252F%255Ftrust%252Fdefault%252Easpx&Source=%2FPages%2FPageNotFoundError.aspx%3FrequestUrl%3Dhttps:%2F%2Ffacilitiesuat.engro.com%2F_trust%2Fdefault.aspx
如果您已经将 ADFS 服务器添加到 SharePoint 一次,您不必为每个新的共享点站点调用
New-SPTrustedIdentityTokenIssuer
,也不必再次将 ADFS 证书添加到 SP。首先在 SP 中找到您的现有 ADFS 提供商的名称(在您的情况下可能是 engro.adfs):
Get-SPTrustedIdentityTokenIssuer | Select Name, ProviderUri
查看链接到此提供商的当前 SharePoint 网站:
$ti = Get-SPTrustedIdentityTokenIssuer "engro.adfs"
$ti.ProviderRealms
然后将新站点 URL 添加到现有的 ADFS 提供商:
$uri = New-Object System.Uri("https://facilitiesuat.engro.com")
$ti.ProviderRealms.Add($uri, "urn:sharepoint:spfacilities")
$ti.Update();
不要忘记,您的站点标识符 (
urn:sharepoint:spfacilities
) 应在 ADFS 服务器上的依赖方标识符中指定,并使用站点 URL (https://facilitiesuat.engro.com/_trust/
) 作为该依赖方中的 WS-Federation 端点。