首页 > 解决方案 > 用户名/密码和 sso 系统 - sso 用户的密码值应该是多少

问题描述

我有一个我们负责身份验证的应用程序,这意味着 - 我们存储用户名和他们的密码。现在,我想向应用程序添加 SSO 选项。显然,对于普通用户,用户模型上的密码字段是必需的。关于来自 SSO 登录的用户的最佳做法是什么?(无论如何,它们必须保存在我的数据库中,但没有密码)

**该应用程序是在 RoR 中使用 devise 和 devise-saml-authenticatable 编写的(以 Azur AD 作为我的 IdP),但我的问题与它无关。

标签: devisesingle-sign-onsaml-2.0

解决方案


他们没有您可以访问的密码……这就是单点登录的意义所在,身份提供者会处理所有这些。您标记了 SAML,所以我会谈到这一点,但这对于其他 SSO 系统来说大体上是正确的。

您是服务提供商 (SP)。它们从服务提供者(您的应用程序)重定向到身份提供者 (IdP)、登录,然后通过 SAML 断言返回到您的应用程序。由于 SP 和 IdP 之间建立了信任关系,因此您天生就信任来自 IdP 的断言(只要证书等),因此用户无需向您提供用户名。他们的“凭据”是 SAML 断言。

由于不需要密码,因此无需设置。如果您的数据库架构要求该字段不为空,请更改您的架构,或在您提供其访问权限时使用随机数据加载它。

注意:SAML 用于身份验证,而不是授权。


推荐阅读