Я пытаюсь настроить клиентский сервер с помощью веб-службы, к которой пользователи Active Directory должны иметь возможность входить в систему с помощью SSO.
Я использую SPNEGO с Kerberos на сервере Ubuntu 14.04 и прокси nginx для Naviserver, чтобы веб-сервис сделал это и получил код ошибки: majorStatus: 851968, minorStatus: 2529639056 (неправильный принципал в запросе)
/etc/krb5.conf
[libdefaults]
default_realm = TEST.LOCAL
default_keytab_name = /etc/staging.keytab
rdns = false
ignore_acceptor_hostname = true
dns_lookup_realm = false
dns_lookup_kdc = false
default_tkt_enctypes = des-cbc-md5 des-cbc-crc arcfour-hmac-md5 rc4-hmac
default_tgs_enctypes = des-cbc-md5 des-cbc-crc arcfour-hmac-md5 rc4-hmac
permitted_enctypes = des-cbc-md5 des-cbc-crc arcfour-hmac-md5 rc4-hmac
allow_weak_crypto = true
kdc_timesync = 1
clockskew = 100
ccache_type = 4
forwardable = true
proxiable = true
ticket_lifetime = 25h
renew_lifetime = 7d
kdc_req_checksum_type = 4
[realms]
TEST.LOCAL = {
kdc = something.test.local
admin_server = something.test.local
default_domain = TEST.LOCAL
}
[domain_realm]
live.test.smth = TEST.LOCAL
.live.test.smth = TEST.LOCAL
staging.smth.else = TEST.LOCAL
.staging.smth.else = TEST.LOCAL
в / etc / hosts нет 127.0.0.1
ActiveDirIP test.local
myIP staging.smth.else
У меня есть файл keytab, созданный администраторами Active Directory с
ktpass /princ HTTP/staging.smth.else@TEST.LOCAL /mapuser user-staging@test.local /pass *** /out staging.keytab /crypto DES-CBC-CRC /kvno 0 /ptype KRB5_NT_PRINCIPAL
И это работает, когда я вызываю kinit:
~$ kinit -S http/staging.smth.else@TEST.LOCAL staging@TEST.LOCAL
~$ klist
Ticket cache: FILE:/tmp/krb5cc_1002
Default principal: staging@TEST.LOCAL
Valid starting Expires Service principal
2016-02-12 13:31:44 2016-02-12 23:31:44 http/staging.smth.else@TEST.LOCAL
renew until 2016-02-13 13:31:41
~$ kinit http/staging.smth.else@TEST.LOCAL
~$ klist
Ticket cache: FILE:/tmp/krb5cc_1002
Default principal: http/staging.smth.else@TEST.LOCAL
Valid starting Expires Service principal
2016-02-12 13:30:58 2016-02-12 23:30:58 krbtgt/TEST.LOCAL@TEST.LOCAL
renew until 2016-02-13 13:30:49
~$ kinit staging@TEST.LOCAL
~$ klist
Ticket cache: FILE:/tmp/krb5cc_1002
Default principal: staging@TEST.LOCAL
Valid starting Expires Service principal
2016-02-12 13:32:13 2016-02-12 23:32:13 krbtgt/TEST.LOCAL@TEST.LOCAL
renew until 2016-02-13 13:32:09
квно равно 3, но админ сказал мне, что квно в Windows не имеет значения.
kvno staging@TEST.LOCAL
staging@TEST.LOCAL kvno = 3
В NaviServer Config определяется:
ns_section ns/server/${server}/module/knspnego
ns_param Krb5KeyTabFile "/etc/staging.keytab"
ns_param Krb5ServiceName "HTTP@staging.smth.else"
ns_param AuthType "SPNEGO"
имя хоста
hostname -f
staging.smth.else
У вас есть идеи, в чем проблема?
У меня была похожая проблема. Заменил тип шифрования rc4-hmac
с этими:
arcfour-hmac
aes128-cts
aes256-cts
des-cbc-crc
des-cbc-md5
Затем перезапустил мои службы, это исправило
Я нашел решение. В файлах keytab был неправильный / crypto для нашей настройки. Он работает с / crypto ALL