Single sign on 是否有一个标准供两个拥有共同身份提供者的依赖方共享信息?
以下是我最近一直在考虑的一个情况:Single sign on 是否有一个标准供两个拥有共同身份提供者的依赖方共享信息?,single-sign-on,saml,openid-connect,Single Sign On,Saml,Openid Connect,以下是我最近一直在考虑的一个情况: 客户有自己的身份提供者(即ADFS) 我公司的web应用程序(应用程序A)支持SAML和OpenID Conect 另一家公司的应用程序(应用程序B)也支持SAML和OpenID Connect 应用程序A和B都与身份提供程序关联 可以要求应用程序B的作者更改它 应用程序A和B之间有链接。为了从应用程序A到B,工作流如下所示: 用户已登录到应用程序A 用户单击应用程序B的链接 用户现在处于应用程序B登录屏幕 输入电子邮件地址 用户跳转到ADFS或类似系统 用户
在两个RP都有一个共同的身份提供者的情况下,是否存在RP到RP数据交换的标准?我认为您的思路是正确的。RP是否认为应该使用IDP完全取决于它,所以当你导航到应用程序B时,你只需要传递足够的上下文,这样它就可以做出决定。因此,在本例中,“标准”是前端通道导航到已知端点,并在查询字符串或散列中提供所需的信息 恐怕SAML依赖方/服务提供商没有交换信息的标准。所有协议消息均在索赔提供者/身份提供者和依赖方/服务提供者之间 作为标准的替代,您的建议看起来是合理的。如果您所说的“共享信息”是指“提供有关用户IDP的提示”,则有一个标准正在开发中。在RA21开始之前,我有一个与IIW22()类似的想法。这基本上就是你所建议的:在URL中添加一个IDP提示。反应是积极的,但是很少有人有他们可以使用它的用例 我注意到,我们为OpenIDConnect讨论的建议(见会议记录第45页,星期二5G)是发行人…重定向?发行人=[发行人]。。。有关规范的理由,请参见注释 如果您正在共享SAML IDP,您可以查看§2.2发现提示信息。如果您的SAML IDP在其元数据中包含了子元素,那么IDP就可以用一种简单的方式确定RPs如何相互提示,URL中的值可以是…重定向?DomainHint=[任何]。。。。已经好几年了,我不记得了
最后,在URL中发送电子邮件地址会违反许多隐私要求。不要把PII放在你的URL中 听起来您需要应用程序B的“WAYF less”URL入口点。WAYF=您来自哪里?这是发现用户与哪个IdP关联的旧方法。如果用户已经在应用程序A处进行了身份验证,则应用程序A知道该用户的IdP的entityID。用户的IdP还将为他们提供身份验证会话,因为他们已经登录到应用程序A 因此,您可以在应用程序B中:
https://applicationb.com/sso?entityID=https://some.idp.com/shibboleth
然后,应用程序B加载entityID的SAML元数据,并自动将浏览器重定向到与entityID关联的SSO URL,IdP将用户重定向回应用程序B的SAML使用者端点。用户将看不到另一个登录屏幕(除非他们的IdP会话已过期),应用程序B将获得自己的SAML属性集
在URL中共享属性并不理想,因为应用程序A可能有权查看用户的电子邮件(由IdP发布),但应用程序B可能没有。因此,最好遵循协议,让IdP将属性释放给应用程序B,而不是应用程序A所知道的关于用户的任何信息
A与B共享的唯一内容是用户IdP的entityID。这使得B可以开始SAML流并为自己获取属性。我认为这接近于我在这个问题上所能得到的正确答案。您在URL中对PII提出了一个很好的观点。实际上,我们可能会使用公钥来加密值(如果我们走这条路的话),这是一种非常好的替代方法,避免了URL中的PII问题。很遗憾你不能把两个答案都标为正确答案。讨论使用webfinger发现IDP的标准方法。