我有以下情况:
现在,当我选择身份提供商时,我正在登录Sharepoint,我被重定向到ADFS 2.0 Home Realm页面。然后我被重定向到ThinkTecture IdentityServer。然后我使用IdentityServer的凭据登录,然后重定向回ADFS,然后重定向到Sharepoint。问题是,sharepoint显示错误消息。我正在从sharepoint添加日志记录:
使用登录提供程序进行身份验证。验证请求安全令牌。
受信任的登录提供商“SAML2提供商”未发送已配置的输入标识声明类型“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress”
SPSecurityTokenService.Issue()失败:System.ServiceModel.FaultException:受信任的登录提供程序未提供此服务器场接受的令牌。
在Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.SPRequestInfo.ValidateTrustedLoginRequest()
拒绝访问:需要验证。
我发现,从Identity Server返回到ADFS的令牌包含emailaddress声明,但从ADFS返回到SP的令牌却没有。这是一个奇怪的,因为我有ADFS配置支持emailaddress通过所有索赔 (在身份服务器的声明提供者信任中)。我是否需要在其他地方设置adfs?我是adfs的新手。
我想要实现的是通过ADFS将我的请求转发给IdentityProvider(在本例中为ThinkTecture IdentityServer)并从IdentityProvider获取令牌。 ThinkTecture IdentityServer仅在我的测试环境中,在真实环境中它将被Oracle Identity Federation取代。
目标问题是将Sharepoint 2010与Oracle Identity Federation集成。但问题是,Sharepoint不支持OIF将提供的SAML 2协议作为独占端点绑定。所以我试图用ADFS(作为一个类似代理的东西)来破解它,它将基于SAML 1.1一方面与Sharepoint通信,另一方面与基于SAML 2的OIF通信。
以下是IdP元数据的摘录:
<md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">...
所以我没有选择使用WS-Federation。
如果这是如何实现所需行为的好方法,我将不胜感激。
感谢
答案 0 :(得分:0)
所以你的路径是SP - &gt; ADFS - &gt; IdentityServer?
问题是电子邮件地址没有通过。因此,您必须设置IdentityServer以生成电子邮件地址声明,并且您必须设置ADFS以通过所有声明。然后将SP配置为接受电子邮件地址作为声明(使用SP Powershell命令)。
添加:您需要为ADFS中的电子邮件声明创建传递声明规则 - 包括声明提供程序信任和依赖方信任。
OIF支持WS-Federation - 请参考ORACLE IDENTITY FEDERATION 11g R2 - 所以将OIF与SP联合没有问题。