我们正在讨论在我们拥有的大数据集群中使用kerberos。我们的管理员希望使用ldap进行身份验证和授权。我抬头看着互联网并得到了反复的反应但是对于使用kerberos的原因没有明确的理解。
我知道你可以使用kerberos和ldap,但我没有清楚地了解使用kerbors + ldap vs ldap的好处。有人可以解释一下吗?
答案 0 :(得分:8)
Kerberos是企业内部网络行业标准单点登录协议。 LDAP总是更多的目录查找协议。但是,LDAP也可以进行身份验证,因为它的身份验证方面是在协议本身构思后的几年内实现的。使用LDAP身份验证,并且每次身份验证尝试都会导致目录身份验证服务器上的负载,因此从这个意义上说,它可能会经常破坏您的目录身份验证服务器。使用kerberos,在第一次身份验证之后,客户端会保留一个默认值为10小时的票证,这样其他身份验证尝试就不必再次使Directory身份验证服务器过载。客户端将负责获取身份验证和#34;门票"目标资源,而不是代表客户端执行此操作的应用程序服务器,这是这些应用程序服务器在LDAP身份验证机制正在运行时必须执行的操作。此外,LDAP(如果配置不正确)将以明文形式发送身份验证尝试。即使您配置为通过LDAPS进行加密身份验证,然后您需要获取SSL证书来执行此操作,那么您还必须解决在任何应用程序服务器上以纯文本格式存储用户名/密码的问题,除非有人采取额外步骤加密。简而言之,作为一种身份验证协议,Kerberos开箱即用的安全性更高,是非集中式的,并且对Directory目录身份验证服务器的负载将比LDAP更少。纯Microsoft Active Directory环境中的Kerberos将为您执行身份验证和授权,而目录查找始终是LDAP。此外,LDAP 不单点登录。用户必须始终手动输入用户名/密码,而使用Kerberos则不必这样做。
现在,如果您使用Kerberos进行身份验证,使用LDAP进行目录查找和/或基于组的授权,那么这是最佳实践,因为LDAP最初是根据RFC仅作为目录查找协议设计的。实际上,当您使用" Active Directory用户和计算机等工具时,实用程序,当您使用它时会发生什么:您传递Kerberos身份验证以允许自己查询AD LDAP服务,然后从那时起您的LDAP查询只是纯LDAP。在由Windows和Linux组成的混合环境中,您可以始终使用Kerberos进行身份验证,但在应用程序端需要更多操作,例如,您需要AD管理员为您生成的密钥表,但基于组的授权必须是LDAP,当然目录查找总是 LDAP。
您的管理员可能希望您一直使用直接LDAP,因为这是更容易站起来的路径 - 他只需要为您提供AD用户帐户凭据,然后您必须在应用程序端将其配置为允许用户登录然后允许基于组的授权,然后通过LDAP查询目录。
这个问题实际上涉及对Kerberos与LDAP的深入理解,还有更多要说和阅读的内容,但我现在需要将其留在此处,并为您提供链接: Kerberos vs. LDAP for authentication