TaskNotifier Administrator guide ru

From RunaWFE
Jump to navigation Jump to search

RUNA WFE. Клиент-оповещатель о поступивших заданиях. Руководство администратора.

Версия 2.3


© 2004-2009, ЗАО “Руна ”. RUNA WFE является системой с открытым кодом и распространяется в соответствии с LGPL лицензией (http://www.gnu.org/licenses/lgpl.html).


Настройка аутентификации по логину и паролю

Для настройки аутентификации по логину и паролю надо в папке, содержащей клиент-оповещатель, открыть файл application.properties найти строку, содержащую параметр authentication.type и установить в него значение userinput (authentication.type=userinput)

Замечание. Можно также выставить значения логина и пароля по умолчанию для этого в том же файле надо отредактировать параметры:

  • userinput.default.login – логин по умолчанию
  • userinput.default.password – пароль по умолчанию

Настройка Kerberos аутентификации

Замечание. В данном разделе все имена и принципалы пользователей и серверов case-sensitive.

Настройка TasksNotifier (приложения, сообщающего о появившихся заданиях)

Настройка клиентской части

Замечание. Клиентское приложение (TaskNotifier) собрано с жестко указанными принципалами сервера – WFTestUser. Для смены значения принципалов необходима пересборка приложения.


  1. Проинсталлировать на клиенте JRE5.0.10+, (находится http://java.sun.com/j2se/1.5.0/download.jsp)
  2. Необходимо создать произвольную папку на клиенте, имя которой не содержит пробелов. Далее в данном документе будем обозначать эту папку - $(NOTIFIER_ROOT). Из файла-архива \\Workflow_comp\releases\notifier\task-notifier-2.0<...>.zip необходимо распаковать в эту папку файлы rtn.jar и runa_tasks.exe.
  3. Настроить аутентификацию. TasksNotifier может быть настроен на аутентификацию Kerberos или ввод логина и пароля. См. ниже
  4. После настройки серверной части клиентское приложение можно будет активизировать, запустив на выполнение файл $(NOTIFIER_ROOT)\runa_tasks.exe (файл запускает виртуальную машину Java и передает ей соответствующие ссылки на классы, находящиеся в rtn.jar.
  5. (Настройка форм MS InfoPath). Для отображения форм InfoPath (xsn type) в клиенте в системе Windows необходимо установить COM компонент для работы с InfoPath. Устанавливается он путем регистрации в системе утилитой regasm (входит в поставку .Net framework SDK) и установить DLL в GAC. Замечание. При неустановленном COM компоненте клиент будет работать, но не будет способен отобразить формы InfoPath.

Замечание. Настройки build'а приложения, сообщающего о появившихся заданиях описаны в документе «RUNA WFE. Руководство разработчика. Версия 2.0” в разделе «Настройка «толстого» клиента».


Последовательность действий для настнройки Kerberos аутентификации:

1. Установить значение authentication.type = “kerberos” (см. Руководство разработчика)

2. Внести в следующий ключ реестра параметр

- Для Windows Server 2003 и Windows 2000 SP4

ключ: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters

параметр: allowtgtsessionkey=dword:0x01

- Для Windows XP SP2

ключ: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos

параметр: allowtgtsessionkey=dword:0x01


Замечание. После внесения параметра необходима перезагрузка.

Описание проблемы, которая решается при помощи данного действия: http://java.sun.com/j2se/1.5.0/docs/guide/security/jgss/tutorials/Troubleshooting.html глава "javax.security.auth.login.LoginException: KrbException: KDC has no support for encryption type (14) - KDC has no support for encryption type".


3. Создать/отредактировать файл конфигурации Kerberos krb5.ini

Файл должен находиться в %SystemRoot% и иметь имя krb5.ini.

Обязательно следует указать в качестве алгоритмов криптования следующие:

[libdefaults]
default_tkt_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
default_tgs_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
permitted_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1

Детальное описание файла конфигурации Kerberos http://web.mit.edu/kerberos/www/krb5-1.4/krb5-1.4.3/doc/krb5-admin/krb5.conf.html.[1]


Настройка безопасности JVM

Включить security manager. Для включения security manager'а для всех локально запускаемых приложений необходимо определить переменную окружения _JAVA_OPTIONS и установить ее значение -Djava.security.manager

После этого на все локально запускаемые приложения будут накладываться ограничения security manager'а по умолчанию. Эти ограничения описываются в файле $JAVA_HOME\lib\security\java.policy.

Формат этого файла описан http://java.sun.com/j2se/1.5.0/docs/guide/security/PolicyFiles.html. Список возможных полномочий используемых security manager'ом – http://java.sun.com/j2se/1.5.0/docs/guide/security/permissions.html.


Пример политики (файла java.policy) дающий классам (в том числе и из JAR архивов) из директории D:\tmp все полномочия и не дающим никаких полномочий классам (в том числе и из JAR архивов) из любых других директорий файловой системы:


// Standard extensions get all permissions by default

grant codeBase "file:${{java.ext.dirs}}/*" { permission java.security.AllPermission; }; // default permissions granted to all domains grant { // Allows any thread to stop itself using the java.lang.Thread.stop() // method that takes no argument. // Note that this permission is granted by default only to remain // backwards compatible. // It is strongly recommended that you either remove this permission // from this policy file or further restrict it to code sources // that you specify, because Thread.stop() is potentially unsafe. // See "http://java.sun.com/notes" for more information. permission java.lang.RuntimePermission "stopThread"; // allows anyone to listen on un-privileged ports permission java.net.SocketPermission "localhost:1024-", "listen"; // "standard" properies that can be read by anyone permission java.util.PropertyPermission "java.version", "read"; permission java.util.PropertyPermission "java.vendor", "read"; permission java.util.PropertyPermission "java.vendor.url", "read"; permission java.util.PropertyPermission "java.class.version", "read"; permission java.util.PropertyPermission "os.name", "read"; permission java.util.PropertyPermission "os.version", "read"; permission java.util.PropertyPermission "os.arch", "read"; permission java.util.PropertyPermission "file.separator", "read"; permission java.util.PropertyPermission "path.separator", "read"; permission java.util.PropertyPermission "line.separator", "read"; permission java.util.PropertyPermission "java.specification.version", "read"; permission java.util.PropertyPermission "java.specification.vendor", "read"; permission java.util.PropertyPermission "java.specification.name", "read"; permission java.util.PropertyPermission "java.vm.specification.version", "read"; permission java.util.PropertyPermission "java.vm.specification.vendor", "read"; permission java.util.PropertyPermission "java.vm.specification.name", "read"; permission java.util.PropertyPermission "java.vm.version", "read"; permission java.util.PropertyPermission "java.vm.vendor", "read"; permission java.util.PropertyPermission "java.vm.name", "read"; }; grant codeBase "file:/D:/tmp/*" { permission java.security.AllPermission; };

Настройка серверной части

Последовательность действий:

1. Включить Kerberos login модуль в файл $(DIST_ROOT)/server/default/conf/login_module.properties.

Например, ru.runa.af.authenticaion.KerberosLoginModule=SUFFICIENT.

Настроить принципалы сервера и пользователя от имени которого осуществляется аутентификация в файле $(DIST_ROOT)/server/default/conf/kerberos_module.properties.

  • principal – имя сервиса, который осуществляет аутентификацию (В текущей реализации WFTestUser@RUNA.RU)
  • serverPrincipal - принципалы пользователя от имени которого осуществляется аутентификация сервера (фактически это логин пользователя)

2. Для сервера необходимо выполнить те же настройки, что и для клиентской машины.


3. Для пользователя, от имени которого осуществляется аутентификация в AD, необходимо включить DES криптование. Описание http://www.microsoft.com/windows2000/en/advanced/help/default.asp?url=/windows2000/en/advanced/help/dsadmin_concepts_accounts.htm.

4. На Workflow сервере создать Kerberos keytab в котором содержится информация необходимая для аутентификации этого пользователя используя утилиту ktab из состава JDK 5.0. Например

ktab -k file:///c:/winnt/krb5.keytab -a WFTestUser@RUNA.RU


( В текущей реализации надо использовать имя WFTestUser@RUNA.RU )


5. Синхронизировать вермя на контроллере домена, workflow сервере и клиенте.

Детальное описание утилиты http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/ktab.html.


Настройка NTLM аутентификации в браузере (Поддерживается только для ОС Windows)

Для включения системы “беспарольной” аутентификации, используя аккаунт пользователя, зарегистрированного в Windows домене, необходимо:

  • добавить NTLM login модуль в файл $(DIST_ROOT)/server/default/conf/login_module.properties. Например, ru.runa.af.authenticaion.NTLMLoginModule=SUFFICIENT
  • Настроить имя домена в файле $(DIST_ROOT)/server/default/conf/ntlm_support.properties. Например, domain=MyDomain
  • Включить поддержку NTLM в этом же файле. Например, ntlm_supported=true

Зайдя на страницу сервера, где установлена система,: http://<servername>/wfe/ntlmlogin.do (NTLM аутентификация может также работать поверх HTTPS) пользователи, зарегистрированные в указанном домене и имеющие права на вход в систему, пройдут аутентификацию.

Для отключения поддержки NTLM достаточно отключить параметры, указанные в п.п. 1) и 3).

После изменения параметров NTLM необходимо перегрузить сервер.

Как запустить клиент-оповещатель

Установите в af_delegate.properties ссылку на RUNA WFE сервер.


Запустите run.bat или run.sh.




  1. Пример конфигурационного файла krb5.ini прилагается.