28 марта 2014 г.

Настройка Kerberos авторизации для weblogic сервера

Настройка Kerberos авторизации для weblogic сервера

Это краткая инструкция, как можно настроить автоматическую Kerberos авторизацию для приложения, загруженного в сервер приложений weblogic.

В качестве клиента будет выступать терминальный сервер с операционной системой windows.

Возможен вариант настройки авторизации на стороне weblogic-сервера, но это усложняет процесс разработки и тестирования. Поэтому мы настроим промежуточный сервер, который будет выполнять авторизацию, и при успешной проверке проксировать запрос на weblogic сервер. Разработчики будут ходит на weblogic-сервер напрямую, минуя промежуточный сервер.

Настройка промежуточного сервера. 

В качестве службы для авторизации будем использовать Apache

- Устанавливаем веб-сервер и модуль для кербероса:
yum install httpd mod_auth_kerb

- Переходим в каталог настроек:
cd /etc/httpd/conf/

- Добавляем в конец файла httpd.conf следующие строки:
LoadModule auth_kerb_module modules/mod_auth_kerb.so

- Так же в этом файле выставляем FQDN имя сервера:
ServerName fr01.gibdd.mos.ru

- Настройка балансировки и проксирования:
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/"
env=BALANCER_ROUTE_CHANGED
<Proxy balancer://wt>
  BalancerMember http://x.y.z.b:1521 route=gibdd01 retry=120
  BalancerMember http://x.y.z.b:1521 route=gibdd02 retry=120
  ProxySet stickysession=ROUTEID lbmethod=byrequests
</Proxy>

ProxyPass /web-app balancer://wt/web-app
ProxyPassReverse /web-app balancer://wt/web-app

-Добавляем URL, закрытый авторизацией по керберосу:
<Location /web-app>
  AuthType Kerberos
  AuthName "Kerberos Login"
  KrbMethodNegotiate On
  KrbMethodK5Passwd off
  KrbAuthRealms mos.ru
  Krb5KeyTab /etc/httpd/conf/fr01.keytab
  KrbServiceName HTTP/fr01.gibdd.mos.ru@GIBDD.MOS.RU
  KrbSaveCredentials on
  require valid-user
</Location>

- Имя сервера (fr01.gibdd.mos.ru) должно разрешаться в ДНС в прямой и в обратной зоне:
# host fr01.gibdd.mos.ru
fr01.gibdd.mos.ru has address 10.0.10.10
#host 10.0.10.10
10.0.10.10.in-addr.arpa domain name pointer fr01.gibdd.mos.ru.

- Кейтаб указанный в конфигурации (/etc/httpd/conf/fr01.keytab), должен быть создан
администраторами домена, в котором происходит авторизация.

- Обращение в закрытую керберосом зону, должно быть по имени, на которое
  выдан кейтаб, и которое настроено на сервере и в днс. В данном примере это fr01.gibdd.mos.ru

Настройка клиентов под Windows 

- Устанавливаем программу "MIT Kerberos"

- Получаем тикет с авторизацией по паролю: логин@GIBDD.MOS.RU

- Настраиваем Firefox, указываем в адресной строке "about:config", затем меняем параметры:
network.auth.use-sspi = false

network.automatic-ntlm-auth.trusted-uris;mosgorzdrav.local = GIBDD.MOS.RU

network.negotiate-auth.delegation-uris = GIBDD.MOS.RU

network.negotiate-auth.gsslib = c:\Program Files\MIT\Kerberos\bin\gssapi32.dll

network.negotiate-auth.trusted-uris = GIBDD.MOS.RU

network.negotiate-auth.using-native-gsslib = false

- Перезагружаем firefox

- Заходим по ссылке: http://fr01.gibdd.mos.ru/web-app