Почему я не могу сделать 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 заработал!