2016-10-16 26 views
1

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

Итак, текущие журналы из этого указывают на то, что он не может расшифровать билет. Я попытался использовать файл 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/[email protected] 
sn: Something 
uid: HTTP/example.com 
userPassword: secret 

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

HTTP/[email protected]'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

Таким образом, вы не можете настроить SPN, который совпадает с областью по умолчанию. Я должен был создать поддомен (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/[email protected] 
sn: myapp 
uid: HTTP/myapp.example.com 
userPassword: secret 

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