![Rails Web 应用程序通过 Windows 进行身份验证](https://linux22.com/image/493687/Rails%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E9%80%9A%E8%BF%87%20Windows%20%E8%BF%9B%E8%A1%8C%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
Rails Web 应用程序是否可以在其代码中使用 Windows 身份验证功能。我希望能够在应用程序中获取用户的登录名和域。但有一个问题。
这个特定的 Web 应用程序在 Linux 机器上托管的 Apache Web 服务器上运行,该机器与其他 Windows 机器联网。
这一切可能吗?
答案1
如果您使用的是 Apache,那么,是的,您应该能够实现这一点。首先,使用 LDAP/Kerberos(又名 Active Directory)保护 Rails 应用程序所在的目录与 Apache -此链接描述你要做的事情。
完成后,在您的 Rails 应用中,登录的 Kerberos 主体的名称应该在环境变量 REMOTE_USER 中可用。
答案2
您可以mod_auth_sspi
与 Apache 一起使用以启用 NTLM 身份验证(看看这个帖子)。
使用基本身份验证的另一种方法是使用mod_authnz_ldap
在 Apache 中启用 LDAP 身份验证(基本身份验证),这将允许它与 Active Directory 进行身份验证。