Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Single sign on SSO-在基于角色的应用程序中,我们是否始终需要将用户数据库保存在IdP和SPs中_Single Sign On_Simplesamlphp - Fatal编程技术网

Single sign on SSO-在基于角色的应用程序中,我们是否始终需要将用户数据库保存在IdP和SPs中

Single sign on SSO-在基于角色的应用程序中,我们是否始终需要将用户数据库保存在IdP和SPs中,single-sign-on,simplesamlphp,Single Sign On,Simplesamlphp,我计划将simplesamlphp用作IdP。我有相当数量的用户数据库,可以“共享”5个不同的应用程序 目前,用户必须在每个应用程序上输入用户名和密码,这肯定不是我想要的。解决方案是保持独立的身份验证服务器,并使用SSO为5个不同的应用程序(作为服务提供商)提供服务 虽然应用程序可以共享相同的用户数据库,但服务完全不同,它们严重依赖于用户角色。让我们以两个应用程序为例:SP1和SP2 SP1是一个基于角色的系统。在任何时候,一个用户可以有5-6个角色,具体取决于应用程序的功能/提供信息 SP2是

我计划将simplesamlphp用作IdP。我有相当数量的用户数据库,可以“共享”5个不同的应用程序

目前,用户必须在每个应用程序上输入用户名和密码,这肯定不是我想要的。解决方案是保持独立的身份验证服务器,并使用SSO为5个不同的应用程序(作为服务提供商)提供服务

虽然应用程序可以共享相同的用户数据库,但服务完全不同,它们严重依赖于用户角色。让我们以两个应用程序为例:SP1和SP2

SP1是一个基于角色的系统。在任何时候,一个用户可以有5-6个角色,具体取决于应用程序的功能/提供信息

SP2是完全不同的,它可能只是drupal中的一个博客站点,我们希望在这里收集用户数据。我们将有一个最低限度的角色要求在这里

当用户进入SP1并试图获取受限页面时,他们将重定向到IdP,IdP可以对用户进行身份验证。若IdP中不存在用户,则返回false;否则返回到SP1,并带有一些相关属性。让我们假设,对于SP1,这是一个最新的用户,我们可以选择将该用户保存在SP1数据库中(事实上,我们应该将该用户绑定到SP1特定的角色),但是,我们将用户存储在两个位置:IdP和SP1

…SP2也是如此。在本例中,我们将用户存储在总共3个位置:IdP、SP1和SP2。我们得到的唯一好处是,用户不必输入SP2的用户名和密码,而是由我们的IdP自动处理

问题

  • 我需要在SP1和SP2中同时存储用户吗?如果没有,那么我如何处理所有特定于角色的功能
  • 如果没有,则如何初始化用户会话并分配特定于SP的角色?基于SAML属性

  • SAMLv2没有授权的概念,它是一种基于web的无Cookie SSO技术。XACML将是一种基于标准的授权/细粒度访问控制/授权技术

    大多数应用程序都缺乏将内部RBAC系统映射到外部系统的能力

    如果您依赖SAML断言中的信息,如属性语句(通常是这样做的),那么您需要有某种方法将属性值映射到应用程序的角色。如果无法更改应用程序以实现此类映射,则需要以某种方式设置身份和角色分配


    通常,IdP实现允许为每个SAML SP实体指定不同的属性映射。

    Ok。我知道SAMLv2没有授权的概念。我将使用simplesamlphp对XACML进行更多研究。