所以我的任务是为我们的Windows应用程序实现SSO。目前,在用户登录机器后,他或她在加载应用程序时必须重新登录我们的应用程序。应用程序通过查询LDAP服务器来验证用户。
我们希望用户能够在点击应用时自动登录应用。我的理解是LDAP身份验证仍然必须发生,但我不确定工作流程是什么,以及我们如何确切地验证用户而不要求他们重新输入用户名/密码。请注意,这不是一个Web应用程序,所以我不能使用像SAML或OAuth这样的工具(除非我也误解了这个......?)
所以我的具体问题如下:
是否可以将LDAP用于SSO,如果可以,如何使用?我可以用他或她的用户名验证用户,还是需要密码?
任何指导都将不胜感激,如果需要,我很乐意提供进一步的说明。
答案 0 :(得分:0)
首先,LDAP是一种协议,您可以使用它与实现此协议的数据库进行通信。
因此,LDAP数据库(通常称为目录)是......数据库,因此不提供SSO功能。
要部署SSO解决方案,您需要SSO服务。您的所有应用程序都必须以某种方式与此服务“兼容”。
我可以想到在不添加第三方应用程序的情况下制作“Windows SSO”的唯一方法是应用程序可以检索客户端发出的请求中的NTLM信息,并使用用户数据来识别他。 (但就安全性而言,我让你判断你对它的看法;))。 See this php example
答案 1 :(得分:0)
某些LDAP实施(包括OpenLDAP)为Generic Security Service Application Program Interface (GSSAPI)或SPNEGO(特定的GSSAPI实施)提供了一定程度的支持
虽然不是微不足道的,但可以从支持GSSAPI的“浏览器”执行SSO。 AFIK,IE,Firefox,Safari和Chrome都为GSSAPI提供了一定程度的支持,尽管每个浏览器都需要特定的配置(通常是服务器的白名单)。
有许多SSO产品在“可能”更安全,更容易的过程中实现这些功能,而不是自己动手。
由于实施问题,GSAPPI / SPNEGO已经利用了许多已知的漏洞详细信息。