我计划使用simplesamlphp作为IdP。我有合理数量的用户数据库谁“可以”共享5个不同的应用程序。
目前,用户必须对每个应用程序,并放置用户名和密码,这肯定不是我想要的。解决方案是保持独立的身份验证服务器,并使用SSO服务5个不同的应用程序(作为服务提供者)。
尽管应用程序可以共享相同的用户数据库,但是服务完全不同,它们严重依赖于用户角色。让我们以两个应用程序为例: SP1和SP2
SP1是在和拉拉和重角色为基础的系统。在任何时候,一个用户都可以有5-6个角色,这取决于应用程序的功能/提供信息。
SP2完全不同,它可能只是drupal中的一个博客站点,我们希望在那里收集用户数据--仅此而已。我们在这里将有一个最低限度的角色要求。
当用户进入SP1并尝试获取受限页面时,他们将重定向到可以对用户进行身份验证的IdP。如果IdP中不存在用户,它将返回false;否则返回到SP1,并带有一些相关属性。让我们假设,对于SP1,这是一个最新的用户,我们可以选择将该用户保存在SP1数据库中(实际上,我们应该将该用户绑定到SP1特定的角色中),但是接下来,我们将用户存储在两个位置: IdP和SP1。
...And同样适用于SP2。在本例中,我们总共将用户存储在三个位置: IdP、SP1和SP2。我们得到的唯一好处是,用户不必为SP2输入用户名和密码,它由IdP自动处理。
问题
发布于 2017-02-21 07:42:40
SAMLv2没有授权的概念,它是一种基于架构的基于web的单点登录技术.XACML将是一种基于标准的授权/细粒度访问控制/权限技术。
大多数应用程序缺乏将内部RBAC系统映射到外部的能力。
如果您依赖SAML断言中的信息,比如属性语句(通常是这样做的),那么您需要有一些方法将属性值映射到应用程序的角色。如果应用程序不能进行更改以实现这种映射,则需要以某种方式提供标识和角色分配。
通常,IdP实现允许为每个SAML实体指定不同的属性映射。
https://stackoverflow.com/questions/42340583
复制相似问题