我们有一个声明感知的.net应用程序。我们有两个客户拥有自己的活动目录,他们想要访问该应用程序。一个客户端使用ADFS,它在我们的ADFS中设置为声明提供程序。他们的访问就像一个魅力。现在,第二个客户端不使用ADFS。他们希望使用他们将编写的SAML令牌对我们的ADFS进行未经请求的POST。我们将它们设置为另一个声明提供者。他们将SAML发布到https://ouradfsserver/adfs/ls/IdPInitiatedSignon.aspx。我们正处于服务器所说的位置"您已登录"并要求他们从下拉列表中选择一个应用程序(只有一个)。当它们这样做时,ADFS会再次尝试重定向到Identity Provider以识别用户,这是不可能的,因为没有可用于查询的端点。有没有人看过这个问题或有这种安排的经验?在我看来,ADFS没有正确解析SAML令牌并为应用程序创建安全上下文,或者它不知道如何正确地重定向到应用程序。任何指针都会非常感激!
答案 0 :(得分:3)
您需要启用RelayState,以便在ADFS中使用IDP启动的SSO时传递身份验证上下文。
请参阅以下链接以了解RelayState:
https://technet.microsoft.com/en-us/library/jj127245%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396
有关启用中继状态的说明,请参阅此文章:
https://jorgequestforknowledge.wordpress.com/2014/10/16/enabling-relaystate-in-adfs-versions/(适用于所有ADFS版本)
您是否注意到事件日志中有任何错误?有关更多详细信息,请查看此文章: https://jorgequestforknowledge.wordpress.com/2014/10/24/enabling-idp-initiated-sign-on-in-adfs/