SSO:如何在服务提供商和身份提供商之间同步用户帐户?

时间:2014-05-09 14:50:20

标签: single-sign-on saml-2.0

在SSO环境中,虽然用户帐户维护在IdP,但某些服务提供商会维护具有活动用户帐户的数据库。现在,如果用户在IdP处停用,那么将该信息传递给仍然将该用户作为其数据库中的活动用户的相应SP的最佳方法是什么?

在浏览SAML-profiles文档后,我找到了名称标识符管理配置文件,其中IdP可以通知SP关于特定标识符/用户的终止。

这是SP和IDP应该实现的正确配置文件(它是否易于实现?)还是有其他简单的方法来实现这一目标吗?任何建议都非常感谢。

谢谢,

Abhilash

2 个答案:

答案 0 :(得分:9)

在大多数情况下,用户首次通过IDP登录时,会在SP端的本地数据库中创建用户。并且由于用户始终必须通过IDP进行身份验证才能访问SP,因此安全(从安全角度来看)将在IDP处取消激活的用户保持为在SP端处于活动状态(因为他们将无法无论如何都要登录SP。)

保持SP数据库清洁的一种方法是自动删除或取消激活在一段时间内未登录的用户。然后,当他在IDP上重新启用并尝试再次访问SP时,将重新创建或重新激活用户。

另一种方法是在IDP和SP之间创建自定义同步过程(例如,从IDP进行CSV转储并定期导入到SP)。

具有“终止”请求的名称标识符管理配置文件可用于此目的,通过同步绑定,它只是从IDP到SP的Web服务SOAP调用。但大多数SP实施不支持此配置文件,大多数(如果不是全部)IDP需要一定量的自定义才能在正确的时间进行调用。

答案 1 :(得分:4)

SAML对此并不是一个正确的方法。我建议看一下名为SCIM(跨域身份管理系统)的新兴标准,该标准旨在通过RESTful API处理这种类型的用户身份配置用例。以下是一些可以查看的资源 -

HTH - Ian