8

有人告诉我,可以在 SAML 身份验证请求期间提供有关组成员身份的信息。我们必须连接到一个使用 SAML 的应用程序(我们最后是创建 SAML 应答 XML)。对用户进行身份验证工作正常,但我找不到指定“成员”或类似属性的方法。

您能否向我解释如何在身份验证期间通过 SAML 中的组成员身份或有一个示例?

我知道有可能在所谓的策略决策点处理 SAML 中的授权。但这意味着我们要检查授权的每个或一些(如果是批处理的)实体都会发生 SAML 流。让我举个例子,我们正在努力做的事情。这个例子是虚构的,但显示了我们想要解决的问题。假设您有一个硬盘驱动器,上面有很多目录和文件。我们使用 SAML 对尝试访问该驱动器的人进行身份验证。组“admin”的成员被允许读取和写入,组“user”的成员只有读取权限。因此,我们希望在用户进行身份验证时发送用户的组成员身份。因为否则这意味着如果用户在必要的组中,应用程序必须检查每个文件。

4

1 回答 1

5

与 SAML 中的大多数内容一样,这取决于身份提供者以及应用程序。

许多身份提供者具有访问控制以允许或拒绝特定用户或组访问应用程序。在根据应用程序 ID(来自 SAML 请求)和 IdP 中配置的访问控制进行身份验证后,IdP 会拒绝登录。如果您只想控制谁可以访问应用程序,那么这就是您所需要的,并且大多数(如果不是全部)身份提供者应该为您提供服务。

有时您还希望不同的用户或组在应用程序内具有不同的权限,或者您希望 IdP 上某些组的成员资格映射到应用程序自己的用户和组数据库(或其他特定于应用程序的组)内的组成员资格概念)。对此没有标准,但一些身份提供者允许基于组成员身份定义属性映射规则。例如,在 ADFS 中,当且仅当用户是 AD 中特定组的成员时,您可以创建将特定 SAML 属性设置为特定值的声明规则。然后,您将设置这样的规则并将您的应用程序可以理解的 SAML 属性设置为它可以理解的值。

或者,如果应用程序支持配置多个 IdP,那么您可以为每个组配置一个应用程序/IdP 映射,并为每个组添加一个属性映射规则,该规则在您的应用程序可以理解的属性中使用硬编码的组名称。

于 2018-07-19T10:59:03.383 回答