Ubuntu 软件堆栈模拟 Active Directory 身份验证

Ubuntu 软件堆栈模拟 Active Directory 身份验证

我将在客户的数据中心安装一个运行自定义 Web 应用程序的 Ubuntu 11.10 机箱。客户无法通过 SSH 访问该机箱,但需要身份验证和授权才能访问 Web 应用程序。客户需要选择将 Web 应用程序指向我们在机器上本地安装的某个东西,或者使用他们拥有的 Active Directory 服务器。我计划使用标准的“用户属于组;组具有一组权限;Web 应用程序需要某些权限才能响应”身份验证设置。

我可以在本地安装哪些软件堆栈以便于轻松地在 Active Directory 服务器之间切换,同时保持配置尽可能简单(对我和最终客户而言)?

我希望尽可能多地使用现成的软件;我不想从事保护用户密码安全的工作。如果没有好的现成解决方案,我可以自己处理用户/组/权限关系(但这似乎不太可能)。

我会接受以“这是你需要的”页面链接形式给出的答案,但不会接受“这是 Kerberos 的功能”的答案,除非该页面还告诉我我的用例是否需要它(本质上,我知道 AD 可以使用 Kerberos,但我不知道我是否需要或者我是否可以只使用 LDAP,或者...)。

答案1

一路使用 LDAP。使用 SSL/TLS 简单绑定到 AD 服务器上的 LDAP,一切就绪。这种方法效果很好。如果您需要在本地复制该功能,OpenLDAP 也应该能很好地满足您的需求。

答案2

目前尚不清楚您试图在哪个级别验证您的客户端,并且从标签中假设您的“webapp”是用 python 编写的。

操作系统级别

如果你需要在操作系统级别进行身份验证,那么我建议同样开放Ubuntu 客户端。它非常方便,几分钟内即可完成 AD 身份验证。

Web 服务器级别

如果您想要在 Web 服务器级别使用 Apache 进行身份验证,请启用 ldap 模块并将以下内容添加到您的 vhost 配置中:

<Location "/">
        AuthBasicProvider ldap
        AuthType Basic
        AuthzLDAPAuthoritative off
        AuthName "My server"
        AuthLDAPURL "ldap://directory.example.com:389/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)" NONE
        AuthLDAPBindDN "CN=apache,CN=Users,DC=example,DC=com"
        AuthLDAPBindPassword hackme

        require valid-user
</Location>

更多细节这里

当你尝试加载“webapp”的 URL 时,系统会提示你进行身份验证

Python

如果您想在应用程序内进行身份验证,那么您需要寻找可以为您执行此操作的 python 模块。这里就是其中之一。

答案3

如果您使用 php 作为 Web 应用程序,则可以将 php ldap auth 用于 AD:http://adldap.sourceforge.net/

相关内容