如何在通过 SAML SSO 登录后确定授权权限

How to determine authorization rights after a login via SAML SSO

首先,我对 SAML(版本 2)没有任何经验。

我被要求调查我们如何制作一个现有网站,该网站有一个带有用户名和密码页面的普通登录页面,可以为使用 SAML 的 SSO 做好准备。 为了做到这一点,我们可以使用一些工具。 所以我觉得实现SSO部分没有那么难

但是我不清楚授权是如何管理的。 系统(网站)正在使用授权权限来确定用户是否能够访问某些部分,如果可以,则确定他拥有的正确类型(查看、创建或编辑)。 这些权限由系统本身的管理员分配给每个用户。 当用户通过指定他的凭据(没有 SAML/SSO)登录系统时,他的权限也会被检索。

当一个人使用 SSO 登录站点时,这是如何完成的? 是否存在 IdP(身份提供者)知道的 userId 到我们系统知道的 userId 的映射? 这是从 IdP 发送的 SAML 响应吗? 还是以其他方式完成?

提前致谢

SAML主要是一种身份验证协议,但仍有很多方法可以解决这个问题。 SAML 支持在断言的 AuthzDecisionStatement 中发送授权信息。

另一种选择是使用 XACML 扩展 SAML,这是一个用于传输 Authz 信息的大型框架。

然而,许多 SAML 提供商对这些的支持有限。

如果每个用户只有一个访问权限,那么更简单且可能是您的最佳解决方案是将其作为 SAML 断言中的属性发送。这通常可以映射到用户属性。