首页 文章

Integration Sharepoint 2010,ADFS 2.0和ThinkTecture IdentityServer

提问于
浏览
0

我有以下场景:

  • Sharepoint 2010与基于声明的身份验证Web应用程序 .

  • ADFS 2.0已将声明提供程序信任配置到ThinkTecture IdentityServer .

  • ThinkTecture IdentityServer已将ADFS 2.0配置为依赖方 .

  • Sharepoint 2010已将SPTrustedIdentityTokenIssuer配置为指向ADFS 2.0 .

现在当我登录Sharepoint时,当我选择Identity Provider时,我被重定向到ADFS 2.0 Home Realm页面 . 然后我被重定向到ThinkTecture IdentityServer . 然后我使用IdentityServer的凭据登录,然后重定向回ADFS,然后重定向到Sharepoint . 问题是,sharepoint显示错误消息 . 我正在从sharepoint添加日志记录:

Authenticated with login provider. Validating request security token.

Trusted login provider 'SAML2 Provider' is not sending configured input identity claim type 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'

SPSecurityTokenService.Issue() failed: System.ServiceModel.FaultException: The trusted login provider did not supply a token accepted by this farm. at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.SPRequestInfo.ValidateTrustedLoginRequest()

Access Denied: Authentication is required.

我发现,从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协议作为独占 endpoints 绑定 . 所以我试图用ADFS(作为一个类似代理的东西)破解它,它将基于SAML 1.1一方面与Sharepoint通信,另一方面与基于SAML 2的OIF通信 .

这是IdP元数据的以下摘录:

<md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">...

所以我没有选择使用WS-Federation .

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

谢谢

1 回答

  • 0

    所以你的路径是SP - > ADFS - > IdentityServer?

    问题是电子邮件地址没有通过 . 因此,您必须设置IdentityServer以生成电子邮件地址声明,并且您必须设置ADFS以通过所有声明 . 然后将SP配置为接受电子邮件地址作为声明(使用SP Powershell命令) .

    添加:您需要为ADFS中的电子邮件声明创建传递声明规则 - 包括声明提供程序信任和信赖方信任 .

    OIF支持WS-Federation - 请参阅ORACLE IDENTITY FEDERATION 11g R2 - 因此将OIF与SP联合没有问题 .

相关问题