Sharepoint 2010 集成Sharepoint 2010、ADFS 2.0和ThinkTecture IdentityServer

Sharepoint 2010 集成Sharepoint 2010、ADFS 2.0和ThinkTecture IdentityServer,sharepoint-2010,adfs2.0,saml-2.0,claims,thinktecture-ident-server,Sharepoint 2010,Adfs2.0,Saml 2.0,Claims,Thinktecture Ident Server,我有以下情况: Sharepoint 2010,具有基于声明的身份验证web应用程序 ADFS 2.0已将索赔提供者信任配置为ThinkTecture IdentityServer ThinkTecture IdentityServer,已将ADFS 2.0配置为依赖方 Sharepoint 2010已配置指向ADFS 2.0的SPTrustedIdentityTokenIssuer 现在,当我登录到Sharepoint时,当我选择Identity Provider时,我会被重定向到ADFS

我有以下情况:

  • Sharepoint 2010,具有基于声明的身份验证web应用程序
  • ADFS 2.0已将索赔提供者信任配置为ThinkTecture IdentityServer
  • ThinkTecture IdentityServer,已将ADFS 2.0配置为依赖方
  • Sharepoint 2010已配置指向ADFS 2.0的SPTrustedIdentityTokenIssuer
现在,当我登录到Sharepoint时,当我选择Identity Provider时,我会被重定向到ADFS 2.0主页。然后我被重定向到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的令牌不包含emailaddress声明。这是一个奇怪的问题,因为我已经将ADF配置为支持emailaddress来传递所有索赔 (在identity server的索赔提供程序信任中)。我需要在其他地方设置ADF吗?我是adfs的新手

我想要实现的是通过ADFS将我的请求转发给IdentityProvider(在本例中为ThinkTecture IdentityServer),并从IdentityProvider获取令牌。ThinkTecture Identity Server仅在真实环境中的测试环境中,它将被Oracle Identity Federation取代

目标问题是将Sharepoint 2010与Oracle Identity Federation集成。但问题是Sharepoint不支持SAML2协议,OIF将提供SAML2协议作为独占端点绑定。因此,我尝试使用ADF(作为类似somethinkg的代理)对其进行破解,它将一边与基于SAML 1.1的Sharepoint进行通信,另一边与基于SAML 2的OIF进行通信

以下是IdP元数据的摘录:

<md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">... 
。。。
所以我没有选择使用WS-Federation

如果这是实现所需行为的好方法,我将不胜感激


谢谢

那么您的路径是SP->ADFS->IdentityServer

问题是电子邮件地址没有被传递。因此,您必须设置IdentityServer来生成电子邮件地址声明,并且必须设置ADF来传递所有声明。然后将SP配置为接受电子邮件地址作为声明(使用SP Powershell命令)

添加:您需要为ADFS中的电子邮件索赔创建传递索赔规则-索赔提供者信任和依赖方信任


OIF支持WS-Federation-请参阅-因此将OIF与SP进行联合没有问题。

是的,路径是正确的SP->ADFS->IdentityServer。OIF的问题在于,在客户端配置中,它只支持SAML2协议。我已经根据你的回答更新了我的问题(因为太长了,无法发表评论)。我仍在解决emailaddress声明未从ADFS传递到SP的问题。SP已配置为接受emailaddress作为声明。谢谢各位,现在它工作正常。我的adfs配置有一个错误。在以前的测试中,我将adfs配置为在依赖方中使用Send LDAP atribute模板(带有emailaddress声明)。将其更改为“通过”后,效果良好。