【问题标题】:Authenticate rails 6 app with Active Directory使用 Active Directory 验证 rails 6 应用程序
【发布时间】:2021-09-29 05:20:27
【问题描述】:

导轨 - 6.0.2 红宝石 - 2.6.6

我想使用 Active Directory 登录凭据对 devise rails 应用程序进行身份验证。

我的要求是:用户登录系统后,在浏览器中进入应用。点击“Authenticate with AD”链接,用户应该会自动登录到应用程序,无需任何登录凭据。

有什么建议吗?

几个问题。这些可能是非常基本的,但我是 AD 新手。

  • 如果 rails 生产服务器在 Linux 中,我们是否需要将该 linux 服务器加入 AD 服务器?
  • 如果是,我们需要为此进行什么配置?
  • 会在服务器级别配置吗?

谢谢。

【问题讨论】:

    标签: active-directory single-sign-on ruby-on-rails-6


    【解决方案1】:

    是的,有服务器级别的配置。要配置您的服务器,请遵循此doc

    对于 idap_authenticable gem,你可以关注这个完整的answer

    是的,您需要加入 Linux 服务器,因为您需要将代码传输到服务器。要传输代码,您可以使用 git。

    您需要配置database.yml and secret.yml 生产:

     adapter: sqlite3
     database: db/production.sqlite3
    

    【讨论】:

    • 答案链接:所以它基本上接受用户名和密码来进行身份验证调用。但我的要求是不要输入用户名和密码。它会自动登录
    • 如果您的要求不是输入用户名和密码,那么唯一可能的方法是将令牌存储在您的 localStorage 中,当用户按下登录时,您可以检查令牌是否有效或无效的。如果令牌有效,则将应用程序重定向到主页,否则允许用户进行身份验证。
    • 嗨,Rutha,你能解释一下上面关于令牌的内容吗?这会很有帮助。
    • 当然。当用户首次登录应用程序时,您需要将令牌存储在 cookie 或 localStorage 中。当令牌过期时,MSAL 会自动刷新令牌,这意味着在第一次登录后,用户将不会被授权。当用户尝试登录您的应用程序时,您可以检查令牌是否有效,而不是询问用户他们的用户名/密码,然后您可以简单地允许用户直接进入主页。
    • const promise = agent.acquireTokenSilent(...) 如果用户尚未登录,则权限将被拒绝并出现错误 user_login_error。如果用户仍处于登录状态,则 promise 将被解析。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2014-06-30
    • 1970-01-01
    相关资源
    最近更新 更多