我正在尝试使用 Kerberos 和 LDAP3 在公司网络内验证我的 Django 应用程序。当我登录到我的公司计算机时,我希望我的应用程序能够登录而无需再次输入用户名和密码。我发现可以使用 Kerberos 来完成此操作,但找不到与此相关的综合文档。我现在正在使用 ldap3 身份验证,用户必须输入用户名和密码,但我想跳过输入用户名和密码的过程。我怎样才能做到这一点?
HTTP 上的 Kerberos 使用 SPNEGO(GSSAPI 的一部分)。实现方法有很多种:
在所有情况下,应用程序都需要具有
HTTP/appdomain.example.com
的 Kerberos 凭据 – 对于 Windows AD,这意味着为应用程序创建一个“服务”用户帐户,为其分配“HTTP/...”SPN,并(通常)导出密钥表对于帐户。
严格来说,LDAP 根本不参与 Kerberos 身份验证过程。您只需要 LDAP 即可在身份验证完成后查找其他用户详细信息。 (SPNEGO 为您提供一个 Kerberos 主体名称,您可以通过 LDAP 在 AD 中将其查找为 sAMAccountName – not userPrincipalName。)