存储&验证用户:LDAP服务器与MySQL数据库?

时间:2014-03-07 17:49:54

标签: mysql authentication ldap amazon

我很想知道像亚马逊和Ebay这样受欢迎的在线公司如何存储客户凭证和他们如何验证用户?我读到了将用户凭据存储在mySql vs LDAP服务器中。我正在阅读有关使用spring LDAP Authentication Provider的信息。这本书谈到了将加密密码发送到LDAP服务器并在那里进行身份验证的安全性(假设认证只发生在服务器内部)。

现在我很想知道像亚马逊这样的大公司是怎样的。 Ebay做到了吗?当涉及到存储用户凭证及其认证机制时,在线业务的流行趋势是什么。

我对此很新,我为明显的遗漏而道歉。

2 个答案:

答案 0 :(得分:4)

当您必须针对一个后端(所有的一个密码,甚至 SingleSignOn )或当您拥有不同的物理位置来验证许多不同的服务时,LDAP非常棒分散在全球范围内,您必须针对单个后端进行身份验证,因为LDAP非常适合分片信息。

但是,如果那不是MustHave并且您只考虑使用LDAP作为身份验证后端,我总是投票支持最小化系统,这意味着如果您的应用程序需要数据库,那么也使用该数据库进行身份验证。

作为替代方案,我考虑使用OAuth或OpenID,以便用户可以使用其他服务登录,并且您不必考虑哈希密码,因为您不存储密码。这样,您就可以将身份验证委派给外部服务。

加密密码的问题在于,用户大多数时间将未加密的密码(仅通过https连接加密)发送到服务器。然后,服务器可以使用加密或不使用加密来连接LDAP。但是当您使用LDAP的默认绑定命令时,您必须向LDAP提供未加密的密码,因此没有任何好处。相反,当您使用数据库时,您可以存储在数据库中加密的密码,然后可以查询加密密码,以便在您的应用程序和数据库之间密码只发送加密。但是加密用户和应用程序之间的密码!

答案 1 :(得分:0)

要么他们使用的专有技术与您无关,要么他们使用市场上的解决方案。在你的问题中,重要的是这些解决方案的可扩展性。对于“LDAP服务器”,有OpenLDAP可以配置为使用MySQL作为后端存储。如果我需要可扩展性,我会寻找这种组合。