使用 LDAP 进行 SSO 验证用户身份



所以我的任务是为我们的Windows应用程序实现SSO。目前,用户登录计算机后,他或她必须在加载应用程序时重新登录我们的应用程序。应用程序通过查询 LDAP 服务器来验证用户。

我们希望让用户在点击应用程序时自动登录应用程序。我的理解是LDAP身份验证仍然必须发生,但我不确定工作流程是什么,以及我们如何在不要求用户重新输入用户名/密码的情况下验证用户。请注意,这不是一个 Web 应用程序,所以我无法使用 SAML 或 OAuth 等工具(除非我也弄错了..?

所以我的具体问题如下:

是否可以将LDAP用于SSO,如果可以,如何?我是否可以仅使用用户的用户名对用户进行身份验证,或者还需要密码?

任何指导将不胜感激,如果需要,我很乐意提供进一步的澄清。

首先,LDAP 是一种协议,用于与实现此协议的数据库进行通信。

所以LDAP数据库(通常称为目录)是...数据库等不提供 SSO 功能。

若要部署 SSO 解决方案,需要 SSO 服务。您的所有应用程序都必须以某种方式"符合"此服务。

我能想到的在不添加第三方应用程序的情况下制作"Windows SSO"的唯一方法是,应用程序可以在客户端发出的请求中检索 NTLM 信息,并使用用户数据来识别他。(但就安全而言,我让你判断你对它的看法;)).请参阅此 php 示例

一些LDAP实现,包括OpenLDAP,提供某种程度的支持通用安全服务应用程序接口(GSSAPI)或SPNEGO(特定的GSSAPI实现)

虽然不是微不足道的,但可以从支持 GSSAPI 的"浏览器"执行 SSO。AFIK,IE,Firefox,Safari和Chrome都为GSSAPI提供了一定程度的支持,尽管每个浏览器都需要特定的配置(通常是服务器的白名单)。

有许多 SSO 产品在"可能"比自己动手更安全、更简单的过程中实现这些功能。

GSAPPI/SPNEGO通常由于实施问题而利用了许多已知的漏洞详细信息。

最新更新