我正在研究将ADFS用作资源合作伙伴的应用程序的开始阶段(我们的客户请求访问我们的网站)。
我最初的想法是开发一个Web应用程序,它将处理所有ADFS请求/身份验证,然后重定向到我们许多基于Web的应用程序之一,这些应用程序位于不同的服务器/应用程序池等。这个想法是只有一个应用程序需要编程来处理ADFS,其他人可能不知道ADFS,只是通过查询字符串处理通用身份验证。我想要完成的事情是否有意义?我们正在尝试实施ADFS,因为它是我们的客户想要用来访问我们网站的。
答案 0 :(得分:0)
在ADFS中将第一个应用程序(RP1)配置为依赖方(RP)时,在身份验证之后,ADFS会根据为RP1配置的参数(令牌标识符,声明(有时加密))发送特定于您的应用程序(RP1)的访问令牌,签署证书等。) 您无法与其他应用程序共享此令牌(例如,应用程序2)。
如果您打算从RP1传递身份验证 - > App2,是您的网络应用程序链接? 在这种情况下,您可以从ADFS令牌中提取声明(在RP1中)并将其传递给其他应用程序(App 2)。
用户是否会直接访问App2链接? 如果用户直接点击App2 URL,则用户不会被重定向到ADFS,因为ADFS不知道APP 2.
因此,您基本上设计的解决方案是用户始终通过RP1访问App2(在ADFS身份验证之后)。
建议的方法是将APP 2添加为ADFS的依赖方,并将App2配置为处理ADFS令牌(SAML / WS-FED)。 它提供了更多的安全性和灵活性(您不需要更改RP1以对App2进行更改)。