2015-07-21 73 views
0

我们希望为我们的所有用户提供无缝访问SP的发布商。 SP是独立的,为很多不同的公司提供服务,即我们每个人都有独立的IdP解决方案。我怎样才能让SAML重定向到正确的IdP?

我们希望它能像没有验证一样工作,即用户在因特网上找到一个链接并遵循它。如果网站为我们的用户提供特殊服务(我们付费),我们希望他们使用我们自己的IdP(但仅限于我们自己的用户)对其进行身份验证。

我们当前的SAML设置要求SP支持IP地址识别和/或使用特定域名,即用户访问特定域名或来自我们的IP范围,以便SP知道要重定向到哪个IdP但是如果我们的用户来自任何其他IP地址并且不访问特定的URL,则系统丢失。

这是怎么解决的?

我认为每当用户获得认证(SP认可的我们的网络)时,SP给出的cookie都可以解决这个问题,但这是标准吗?它不是一个真正的解决方案,因为它要求我们的用户至少从我们的网络访问过它们一次!

+0

您使用哪种SAML服务?它不提供限制IP范围的任何选项吗?或者我错了吗? – Roshith

+0

我正在使用SimpleSAMLPHP,但没关系。 :-) 这有点复杂,但重要的是,我的公司和许多其他公司使用相同的SP,例如发布商,并为他们能够找出哪些IdP与他们使用IP地址识别或特定域名。 我会用我们的目标更新我的问题。 –

回答

1

这不是一个SAML问题,因为它是一个身份提供者发现问题,它不是特定于协议的问题。发布者应该如何知道/决定通过SAML或任何其他协议将特定用户重定向到您的IdP?这在一般意义上不是一个易处理的问题。出版商和您需要就这些特殊用户/服务达成两个实体(您和这些出版商)之间的合同。

不涉及域或IP范围的IdP发现的一种可能实现方式是基于用户身份的IdP动态查找。用户点击链接,导航至发布商网站并尝试登录(例如)他的身份[email protected]。然后,发布者可以在他们的特殊用户/服务/ IdP身份库中查找mycompany.com,并确定不应该允许该用户使用本地(发布者管理的)凭据登录。相反,应通过SAML身份验证请求将用户发送给某个第三方IdP。发布者可以在用户登录时做到这一点,但在用户有机会输入发布者管理的凭证之前,可以通过您最喜爱的AJAX技术或某种其他形式的UI满足感。

发布商可以使用持久性cookie,以便下次此用户访问此发布商时,他们会知道此用户“属于”第三方IdP并进行相应的重定向。