devise - 用户名/密码和 sso 系统 - sso 用户的密码值应该是多少
问题描述
我有一个我们负责身份验证的应用程序,这意味着 - 我们存储用户名和他们的密码。现在,我想向应用程序添加 SSO 选项。显然,对于普通用户,用户模型上的密码字段是必需的。关于来自 SSO 登录的用户的最佳做法是什么?(无论如何,它们必须保存在我的数据库中,但没有密码)
**该应用程序是在 RoR 中使用 devise 和 devise-saml-authenticatable 编写的(以 Azur AD 作为我的 IdP),但我的问题与它无关。
解决方案
他们没有您可以访问的密码……这就是单点登录的意义所在,身份提供者会处理所有这些。您标记了 SAML,所以我会谈到这一点,但这对于其他 SSO 系统来说大体上是正确的。
您是服务提供商 (SP)。它们从服务提供者(您的应用程序)重定向到身份提供者 (IdP)、登录,然后通过 SAML 断言返回到您的应用程序。由于 SP 和 IdP 之间建立了信任关系,因此您天生就信任来自 IdP 的断言(只要证书等),因此用户无需向您提供用户名。他们的“凭据”是 SAML 断言。
由于不需要密码,因此无需设置。如果您的数据库架构要求该字段不为空,请更改您的架构,或在您提供其访问权限时使用随机数据加载它。
推荐阅读
- javascript - 如何使用函数动态设置img src
- r - 如何根据不同数据框的两个 ID 列的匹配从数据框列中提取值?
- python - 二进制图像上的 Tesseract OCR
- plsql - 如何为游标的选择语句中使用的失败条件引发异常
- symfony - 移动到另一个托管 Symfony 2 后网站关闭
- javascript - 无法在 JavaScript 中获取 40MB 的 JSON 文件
- batch-file - 如何安全地回显 FOR 变量 %%~p 后跟字符串文字
- javascript - 有没有办法将javascript Date 对象转换为字符串,但保留在 Date 对象上使用 console.log 时显示的格式?
- html - 我无法从我的输入中获取我的值以存储在我的 app.component.ts 中
- c# - 如何将常规属性转换为自动属性 C#