使用LDAP对SSO进行身份验证

问题描述:

因此,我负责为我们的Windows应用程序实施SSO。目前,在用户登录到机器后,他或她必须在他或她加载应用程序时重新登录到我们的应用程序。应用程序通过查询LDAP服务器来验证用户。使用LDAP对SSO进行身份验证

我们希望用户在点击它时自动登录到应用程序。我的理解是,LDAP身份验证仍然必须发生,但我不完全确定工作流程是什么,以及我们如何验证用户而不要求他们重新输入用户名/密码。请注意,这不是一个Web应用程序,所以我不能像使用SAML或OAuth工具(除非我记错了这个太..?)

所以我的具体问题如下:

是它可能使用LDAP进行SSO,如果可以,如何实现?我是否可以用他或她的用户名对用户进行身份验证,还是需要密码?

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

+0

您应该针对特定问题询问具体问题。由于Stack Overflow隐藏了你的密切原因:*“有些问题要求我们推荐或查找书籍,工具,软件库,教程或其他非本地资源,因为它们倾向于吸引自以为是的答案和垃圾邮件,因此不适合Stack Overflow。相反,请描述问题以及迄今为止解决问题所做的工作。“* – jww

+0

感谢您的评论,我添加了更具体的问题陈述。 –

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

因此,LDAP数据库(通常称为目录)是...数据库,因此不提供SSO功能。

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

我可以想到在不添加第三方应用程序的情况下创建“Windows SSO”的唯一方法是应用程序可以检索客户端发出的请求中的NTLM信息,并使用用户数据来标识他。 (但为了安全起见,我让你判断你对它的看法;))。 See this php example

一些LDAP实现,包括OpenLDAP的,提供某种程度的支持的Generic Security Service Application Program Interface (GSSAPI)SPNEGO(特定GSSAPI实现)

虽然不是小事,有可能从支持GSSAPI“浏览器”来执行SSO。 AFIK,IE,Firefox,Safari和Chrome都为GSSAPI提供某种级别的支持,尽管每个浏览器都需要特定的配置(通常将服务器列入白名单)。

有许多SSO产品在“可能”更安全和更简单的过程中执行这些功能比自己做。

通常由于实现问题,有许多已知的漏洞细节已被GSAPPI/SPNEGO利用。