вторник, 19 апреля 2016 г.

Weblogic 12.2.1 WNA

После оновления weblogic с 12.1.3 до 12.2.1 внезапно перестала работать Windows Native Authentication.
Конфигурационные файлы при обновлении не менялись. Манипуляций с кейтабами не проводилось. 
Сообщения в логах:

<Debug> <SecurityAtn> <sm-ecm-idm-test1.moscow.sportmaster.ru> <tst_1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <6d5d0986-0aaa-4118-ace1-d9a310c02383-00000021> <1454403844063> <[severity-value: 128] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-000000> <Failed to create GSSContext for HTTP/sm-ecm-idm-test1.moscow.sportmaster.ru@GKSM.LOCAL
GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos credentails)
at sun.security.jgss.krb5.Krb5AcceptCredential.getInstance(Krb5AcceptCredential.java:87)

Общение с техподдержкой результатов не дало.
На данный момент найден воркэраунд - перегенерить кейтаб.

Для Weblogic 12.1.3 кейтаб генерировался по следующей схеме.
FQDN: someserver.somedomain
UserName: someserver_srv
UserPrincipalName: HTTP/someserver_srv@ADDOMAIN
SPN: someserver.somedomain

То есть имя сервера обычно не совпадает с именем учётки, которая создаётся для кейтаба.
Кейтаб генерируется безявного указания UserPrincipalName.
После генерации кеутаба добавляется spn, соответствующий FQDN.

Для Weblogic 12.2.1 это схема почему-то не работает. Поддержка комментирует это как "изменения, связанные с новой версией JVM", что есть глупость.

рабочий воркэраунд:
FQDN: someserver.somedomain
UserName: someserver_srv
UserPrincipalName: HTTP/someserver@ADDOMAIN

То есть при генерации кейтаба надо явно указать UserPrincipalName = hostname.
Если этого не сделать, бесполезно потом добавлять правильные SPN. Работать всё равно не будет.