【发布时间】:2014-06-02 03:50:50
【问题描述】:
我的任务是设置 ApacheDS 2.0.0 LDAP + Kerberos(包括 KDC)服务器以用于我们的测试环境。我关注了this guide,但无法按照该页面上的最后一步使用 Kerberos 成功通过我的 LDAP 服务器进行身份验证。
我正在使用 Apache Directory Studio
当我选中“要求通过加密时间戳进行预身份验证”时,我收到错误:javax.security.auth.login.LoginException: 对解密字段的完整性检查失败 (31)
当我取消选中该字段并重新启动服务器时,我得到:javax.security.auth.login.LoginException: Checksum Failed
我确定我提供的用户名和密码是正确的。可能是什么问题呢?有人用 Kerberos 成功设置了 ApacheDS 2.0.0 吗?有没有我应该遵循的指南?
似乎他们的 Kerberos 服务器的 ApacheDS have yet to document configuration 上的人。
这是我的 users.ldif:
version: 1
dn: uid=krbtgt,ou=services,dc=security,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
objectClass: krb5KDCEntry
objectClass: uidObject
objectClass: krb5Principal
krb5KeyVersionNumber: 0
krb5PrincipalName: krbtgt/EXAMPLE.COM@EXAMPLE.COM
ou: LDAP
uid: krbtgt
krb5Key:: MCGgAwIBEKEaBBjHVICYy3C2UuxkitpXRnZ8PVj4TGgN3xA=
krb5Key:: MBmgAwIBF6ESBBCpxZ7JnL7bycwis7pjrB+1
krb5Key:: MBmgAwIBEaESBBCv2PO7KtoerG8VJaCjGPQD
krb5Key:: MBGgAwIBA6EKBAiXyA7xg0OSzQ==
userPassword:: e1NTSEF9WWVWeFJ5cXBJVVQrT1Mva3l6ZForSU5IajBKT1RXdGNBaWdLR0E9P
Q==
dn: ou=services,dc=security,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: services
dn: uid=jsmith,ou=users,dc=security,dc=example,dc=com
objectClass: top
objectClass: krb5KDCEntry
objectClass: inetOrgPerson
objectClass: krb5Principal
objectClass: person
objectClass: organizationalPerson
cn: John Smith
krb5KeyVersionNumber: 1
krb5PrincipalName: jsmith@EXAMPLE.COM
sn: Smith
krb5Key:: MCGgAwIBEKEaBBh/3/6FzQdeRS+/Sssvg7Xyrr96B3lewT4=
krb5Key:: MBmgAwIBF6ESBBCynaCNjbAxJwdWfXMcALRn
krb5Key:: MBmgAwIBEaESBBBMzkq2olx6fnakVd8zcle3
krb5Key:: MBGgAwIBA6EKBAhdv8v9esiwbQ==
uid: jsmith
userPassword:: e2NyeXB0fXJWOFlyaTlTR2tsYWs=
dn: ou=users,dc=security,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: users
dn: uid=ldap,ou=services,dc=security,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
objectClass: krb5KDCEntry
objectClass: uidObject
objectClass: krb5Principal
krb5KeyVersionNumber: 0
krb5PrincipalName: ldap/example.net@EXAMPLE.COM
ou: TGT
uid: ldap
krb5Key:: MCGgAwIBEKEaBBioosfqqw3pVAsaLNC12rws8vICSX9kouk=
krb5Key:: MBmgAwIBF6ESBBCXJFfXz9ORAGaUrSCHGzoN
krb5Key:: MBmgAwIBEaESBBA+pN1ipA5mPjNSLYBbuKgy
krb5Key:: MCmgAwIBEqEiBCBCxVPVFGb6miec+4ztUuMilATQNemHh+gxT+KmsqN1RQ==
krb5Key:: MBGgAwIBA6EKBAhMCxySpE8O9w==
userPassword:: e1NTSEF9YUZEazF6bnZyZFVscVFhbEpxc3dIUDBpRlJ4QysyZkUxK2RaZUE9P
Q==
dn: dc=security,dc=example,dc=com
objectClass: top
objectClass: domain
dc: security
dn: dc=example,dc=com
objectclass: top
objectclass: domain
dc: example
【问题讨论】:
-
我在 Windows 7 上使用 ApacheDS 2.0.0。
-
请注意:SO 不允许我发布我的 config.ldif,因为它会使帖子超过 30k 个字符。
-
就服务器 config.ldif 而言,它是 ApacheDS 2.0.0 服务器的默认配置,但启用了 Kerberos 并指定了正确的搜索 DN。我只是想遵循 ApacheDS 网页上提供的唯一指南。
-
我也遇到了类似的问题。你找到解决办法了吗?
-
我没有找到任何指南。让我更接近成功的唯一一件事就是检查代码、构建代码和调试。单步执行代码虽然很乏味,但却是了解如何配置 ApacheDS KDC 的最佳方式。我认为一旦 KDC 启动并运行,我会写一篇博文,甚至可能会向 ApacheDS 项目提交一些文档。
标签: java security authentication kerberos apacheds