Почему я не могу сделать kinit с SPN?

Я следовал этому руководству по настройке Apache Directory Studio для веб-приложения для разработки и тестирования Kerberos-аутентификации (используя spnego). Я установил ldap и службу выдачи билетов, а также некоторые основные учетные записи пользователей. Я могу сделать kinit с учетными записями пользователей, поэтому я знаю, что эта часть работает хорошо.

Таким образом, текущие журналы показывают, что он не может расшифровать тикет. Я попытался использовать файл keytab с kinit, и он не работал, поэтому я просто попытался сделать kinit и вручную ввести пароль - что также не работает (даже после проверки правильности пароля в Apache Directory Studio), Вот файл ldif, который я использовал для создания spn:

dn: uid=HTTP/example.com,ou=users,dc=security,dc=example,dc=com
objectClass: top
objectClass: krb5KDCEntry
objectClass: inetOrgPerson
objectClass: krb5Principal
objectClass: person
objectClass: organizationalPerson
cn: HTTP/example.com
krb5KeyVersionNumber: 1
krb5PrincipalName: HTTP/example.com@EXAMPLE.COM
sn: Something
uid: HTTP/example.com
userPassword: secret

всякий раз, когда я делаю kinit -V HTTP/example.com и введите пароль, я просто получаю:

HTTP/example.com@EXAMPLE.COM's Password: 
kinit: Password incorrect

Это мой krb5.conf:

[libdefaults]
debug = true
default_realm = EXAMPLE.COM

[realms]
EXAMPLE.COM = {
    kdc = example.com:60088
    admin_server = example.com:60088
    default_domain = EXAMPLE.COM
}

[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM

1 ответ

Решение

Таким образом, очевидно, вы не можете настроить имя участника-службы, которое совпадает с областью по умолчанию. Мне пришлось создать поддомен (myapp.example.com) и импортировать связанный новый файл ldif:

dn: uid=HTTP/myapp.example.com,ou=users,dc=security,dc=example,dc=com
objectClass: top
objectClass: krb5KDCEntry
objectClass: inetOrgPerson
objectClass: krb5Principal
objectClass: person
objectClass: organizationalPerson
cn: HTTP/myapp.example.com
krb5KeyVersionNumber: 1
krb5PrincipalName: HTTP/myapp.example.com@EXAMPLE.COM
sn: myapp
uid: HTTP/myapp.example.com
userPassword: secret

После этого я смог кинить с HTTP/myapp.example.com, Затем я смог настроить keytab и загрузить его в свой веб-сервер, и SSO заработал!

Другие вопросы по тегам