我目前正在调查将资产跟踪系统从LDAP迁移到SAML。我们的软件目前使用LDAP有两个主要方面。第一个是身份验证。要立即访问系统,您需要使用LDAP成功进行身份验证并成为指定LDAP组的成员。转移到SAML非常简单。我们利用一个库来处理大部分肮脏的工作。在IDP上,我们可以添加声明来授权用户。但是我们第二次使用LDAP会让我陷入困境。
今天,我们维护的每个资产都可以链接到用户名。例如,特定的打印机可能属于“某个用户”。我们的软件为管理员提供的选项之一是基于LDAP用户组查看资产/与资产交互。因此,作为管理员,我可能希望更新特定部门中人员拥有的所有打印机。为实现此目的,管理员将创建一个范围限定为LDAP组的部门规则' departmentInQuestion'。然后,我们的软件将使用服务帐户连接到LDAP,创建查询以查看我们系统中的哪些用户处于“部门问题”中,执行该操作并使用结果确定哪些资产应获得更新。 / p>
从我的搜索到目前为止,我还没有找到类似于此的SAML工作流程。这似乎是我们评估“一些用户”的唯一机会。是在他们进行身份验证时,我们可以访问他们的声明。但在我们的工作流程中,有些用户'可能永远不会与我们认证。这几乎就像我们代表服务帐户使用授权用户一样。在我的探索过程中是否存在我忽略的现有工作流程?是否有其他技术以这种方式支持授权?
感谢任何输入!
答案 0 :(得分:19)
SAML就像是护照或签证。它有(可信的)有关您的信息,可用于了解您(例如您的姓名,DOB)并推断您可以访问的内容(例如,进入某个国家/地区)。您可以使用令牌中的属性向其他系统查询可能与您关联的其他信息(例如您的银行对帐单)。
因此,类似地,SAML通常用于对系统的用户进行身份验证(一旦您信任它的来源),但是没有规定用于管理用户配置文件或“资源”#39 ;
授权决定(如果有的话)通常基于与用户相关联的属性(例如,他所属的组)并在安全令牌中的声明中传达。
也许第一个要回答的问题是你想要离开LDAP并思考SAML的原因。是因为您想接受使用自己的凭据登录的用户吗?是因为你想完全摆脱LDAP服务器
您可以很好地保留LDAP服务器以管理resources associated with users
,并在其他地方对用户进行身份验证。这就是你现在拥有的。你会关联用户"外面"和"内部"通过公共属性(例如用户名或某个ID)。
如果您想要一起摆脱LDAP,那么您需要其他地方来存储该信息(例如您的应用数据库)。
答案 1 :(得分:8)
以Eugenio Pace的回复为基础,特别是遵循这一段:
因此,类似地,SAML通常用于对系统的用户进行身份验证(一旦您信任它的来源),但没有用于管理用户配置文件或“资源”的规定。
授权决定(如果有的话)通常基于与用户相关联的属性(例如,他所属的组)并在安全令牌中的声明中传达。
Eugenio在这里指的是ABAC - 基于属性的访问控制。 SAML不这样做。要实现ABAC,您需要XACML。 SAML和XACML都是由OASIS定义的标准,并且可以互操作。使用XACML,您可以定义基于属性的规则。例如,我们可以重新访问您的示例并编写如下规则:
您可以在这些参考站点上阅读有关ABAC的XACML的更多信息: