既然可以通过 ldap 进行身份验证和授权,为什么还要使用 kerberos?

Why use kerberos when you can do authentication and authorization through ldap?

我们正在讨论在我们拥有的大数据集群中使用 kerberos。我们的管理员想使用 ldap 进行身份验证和授权。我查阅了互联网并得到了不同的回应,但对于使用 kerberos 的原因并没有明确的理解。

我知道您可以将 kerberos 与 ldap 一起使用,但我没有清楚地了解使用 kerbors + ldap 与仅使用 ldap 的好处。谁能解释一下?

Kerberos 是企业网络内部的行业标准单点登录协议。 LDAP 更像是一种目录查找协议。然而,LDAP 也可以进行身份​​验证,因为它的身份验证方面是在协议本身被构思多年之后才被固定下来的。使用 LDAP 身份验证,每次身份验证尝试都会对目录身份验证服务器造成负载,因此从这个意义上说,它可能会经常破坏您的目录身份验证服务器。使用 kerberos,在第一次身份验证后,客户端持有一张默认为 10 小时的票证,这样额外的身份验证尝试就不必再次使您的目录身份验证服务器超载。并且客户端将负责获取目标资源的身份验证 "tickets",而不是应用程序服务器代表客户端执行此操作,如果 LDAP 身份验证机制在起作用,这些应用程序服务器就必须这样做。此外,如果配置不正确,LDAP 将以明文形式发送身份验证尝试。即使您配置为通过 LDAPS 进行加密身份验证,然后您需要获得 SSL 证书才能执行此操作,那么您还必须解决以纯文本形式在任何应用程序服务器上存储 username/password 的问题,除非有人采取额外的步骤来加密它。简而言之,作为一种身份验证协议,Kerberos 比 LDAP 开箱即用更安全,是去中心化的,并且在您的目录身份验证服务器上施加的负载更少。纯 Microsoft Active Directory 环境中的 Kerberos 将为您执行身份验证和授权,而目录查找始终是 LDAP。此外,LDAP 不是 单点登录。用户必须始终手动输入 username/password,而使用 Kerberos 则不必执行此操作。

现在,如果您使用 Kerberos 进行身份验证并使用 LDAP 进行目录查找,and/or 基于组的授权,那是最佳实践,因为 LDAP 最初是根据 RFC 作为目录查找协议设计的只要。事实上,当你使用诸如 "Active Directory Users and Computers" 实用程序之类的工具时,当你使用它时会发生什么:你通过 Kerberos 身份验证以允许你自己查询 AD LDAP 服务,然后你的 LDAP 查询从那时起就是纯粹的 LDAP。在由 Windows 和 Linux 组成的混合环境中,您始终可以使用 Kerberos 进行身份验证,但这需要在应用程序方面做更多的工作,例如您需要为你由 AD 管理员,但基于组的授权必须是 LDAP,当然目录查找是 always LDAP。

您的管理员可能希望您一直使用直接 LDAP,因为这是更容易站起来的途径 - 他只需要给您一个 AD 用户帐户凭据,然后您必须在您的应用程序上获取和配置允许用户登录,然后允许基于组的授权,然后通过 LDAP 查询目录。

这个问题确实涉及对 Kerberos 与 LDAP 的深入理解,还有很多要说和阅读的内容,但我现在需要把它留在这里并为您提供 link: Kerberos vs. LDAP for authentication