2016-10-16 16 views
1

kerberos 인증 (spnego 사용)을 개발하고 테스트하기 위해 webapp 용 Apache Directory Studio 설정에 대해이 내용을 tutorial에 따라 수행했습니다. 필자는 기본 사용자 계정뿐만 아니라 LDAP 및 티켓 부여 서비스를 설정했습니다. 사용자 계정으로 kinit을 수행 할 수 있으므로 해당 부분이 잘 작동하고 있음을 알 수 있습니다.SPN으로 kinit을 수행 할 수없는 이유는 무엇입니까?

따라서 현재 로그는 티켓을 해독 할 수 없음을 나타냅니다. kinit와 함께 keytab 파일을 사용해 보았는데 작동하지 않았으므로 kinit을 수행하고 수동으로 암호를 입력하려고 시도했습니다. 또한 작동하지 않습니다 (심지어 Apache Directory Studio에서 암호가 올바른지 확인한 후에도) . 여기에 내가 SPN을 만드는 데 사용 된 ldif 파일 : 나는 kinit -V HTTP/example.com과 암호를 입력 할 때마다

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 

가, 난 그냥 얻을 :

:

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 

을, 나는 HTTP/myapp.example.com와 kinit를 할 수 있었다. 그런 다음 키탭을 설정하고 웹 서버에로드하여 SSO가 작동하도록했습니다.