Показаны сообщения с ярлыком Intalio Server. Показать все сообщения
Показаны сообщения с ярлыком Intalio Server. Показать все сообщения

вторник, 23 марта 2010 г.

Настройка Intalio|Server для работы с Microsoft Active Directory

Как и обещал ранее, в данной статье я расскажу как настроить Intalio|Server для работы с Microsoft Active Directory.
Хоть и на официальном сайте Intalio говориться о том, что использование Microsoft AD возможно только в Enterprise версии в это верить особо не стоит. Для настройки нам понадобиться:
1. Внести изменения в ldap.properties
2. Обновить библиотеки security

1. Изменение настроек ldap.properties
Не удивляйтесь, что изменения в данном файле-настроек будут незначительные. Ниже приведен листинг ldap.properties:


#
# Configuration for Microsoft Active Directory
#
#
# The ULR for the LDAP Server
# The default is 'ldap=://localhost:389/'.
#
java.naming.provider.url=ldap://my.active.directory:389/
#
# The user of the LDAP Server connection
# For example: 'cn=Directory Manager'.
#
java.naming.security.principal=cn=Administrator,cn=users,dc=my,dc=active,dc=directory
#
# The credentials or password of the connection
# For example: 'password'.
#
java.naming.security.credentials=password
#
# Authetication method to connect to the LDAP Server
# The default is 'simple'.
#
java.naming.security.authentication=simple
#
# The supported realm(s) for the directory. The properties
# list name of the realm, and the base DN separated by a
# colon (':')
# For example: 'airrus:dc=airrus,dc=com'.
#
security.ldap.realm.0=intalio:dc=my,dc=active,dc=directory
#
# The ldap factory for the directory service
# The default is 'com.sun.jndi.ldap.LdapCtxFactory'.
# (without quotes, same below)
#
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
#
# The user's sub-context
# For example: 'ou=People', if people belongs to
# 'ou=People'
#
security.ldap.user.base=ou=Users
#
# The role or group's sub-context
# For example: 'ou=Roles', if roles belongs to
# 'ou=Roles'.
#
security.ldap.role.base=ou=Groups
#
# An LDAP attribute name that identifies an user
# For example: 'uid'.
#Данный аттрибут устанавливаем sAMAccountName, т.к. он является логином, cn нам
#не совсем подходит, т.к. там может содержаться русский язык, который при авторизации
#без "напильника" не принимается
security.ldap.user.id=sAMAccountName
#
# The LDAP attribute name that identifies a role
# For example: 'cn'.
#
security.ldap.role.id=cn
#
# The LDAP attribute name that references a role's ascendants
# If this attribute is specified, leave 'security.ldap.role.descen' out
# For example, if standard Role is used for access control, specify
# 'nsRoleDN' or a corresponding attribute of the particular server,
# and leave out security.ldap.role.descen properties.
#
#security.ldap.role.ascen=nsRoleDN
#
# The LDAP attribute name that references a role's descendants or members.
# If this attribute is specified, leave security.ldap.role.ascen out.
# For example, if Group is used for access control, specify 'member'
# or a corresponding attribute of the particular server, and leave out
# security.ldap.role.ascen
#
#security.ldap.role.descen=member
#
# The LDAP attribute name of an user object that references the user's roles
# For example, 'nsRoleDN'.
#
#security.ldap.user.roles=nsRoleDN
#
# The LDAP attribute name of a role (or group) that references the role's
# users.
# For example, 'uniquemember'.
#В AD роли находятся под аттрибутом member а не uniquemember
security.ldap.role.users=member
#
# The attribute name of an user's calculated effective roles.
# If Role is used, specify 'nsRole' or a corresponding attribute
# of the particular server. For Group with Active Directory,
# specify 'memberOf'. If unsure, leaves it out
#
#security.ldap.user.allroles=nsRole
#
# The permissions' sub-context
# For example, 'ou=Permission'.
#
security.ldap.perm.base=ou=Permission
#
# The LDAP attribute name of a role that references permission objects
# For example: 'permissions'.
#
security.ldap.role.perms=permission
#
# The LDAP attribute of permission object that reference the permission's
# roles or groupsOC
# For example: 'nsRoleDN'.
#
#security.ldap.perm.roles=nsRoleDN
#
# The LDAP attribute of permission object that references the permission's
# protected resources.
# For example: 'resource'.
#
security.ldap.perm.objects=resource
#
# The LDAP attribute name that identifies a permission object
# For example, 'cn'.
#
security.ldap.perm.id=cn
#
# The LDAP attributes names of an user's credentials or passwords
# of the user.
# Format: 'ldap property:alias'
# For example, 'userPassword:password'.
#
security.ldap.user.credential.0=userPassword:password
#security.ldap.user.credential.0=userCert:userCertificate
#
# The LDAP attribute names of an user
# Format: 'ldap property:alias'
#PЗдесь нам надо проинициализировать аттрибут sAMAccountName, для использования его #в качестве логина
security.ldap.user.prop.0=sAMAccountName:sAMAccountName
security.ldap.user.prop.1=displayName:cn
security.ldap.user.prop.2=ou
security.ldap.user.prop.3=objectClass:objectclass
security.ldap.user.prop.4=sn
security.ldap.user.prop.5=givenName:givenname
security.ldap.user.prop.6=mail:email
security.ldap.user.prop.7=cn:uid
security.ldap.user.prop.8=street:streetaddress
security.ldap.user.prop.9=roomNumber:roomnumber
security.ldap.user.prop.10=nsrole:nsrole
security.ldap.user.prop.11=nsroledn:nsroledn
#
# The LDAP atrribute names of a role or group
# Format: 'ldap property:alias'
#
security.ldap.role.prop.0=sn:sn
security.ldap.role.prop.1=ou:ou
security.ldap.role.prop.2=objectClass:objectclass
security.ldap.role.prop.3=member:member

Как видно из примера отличия весьма незначительны. Но настроить только ldap.properties недостаточно, т.к. подуровни (sub ou's) ou (organisational unit) будут недоступны, а это означает, что Вы можете работать только с пользователями, находящимися в ou=Users, также Вы не сможете авторизоваться используя sAMAccountName.

2. Обновление библиотек security
После настройки ldap.properties требуется сделать обновление библиотеки, отвечающие за security, скачать их можно отсюда: http://www.intalio.org/public/maven2/org/intalio/security/.

Список требуемых библиотек (Выбирайте желательно последние версии библиотек, на момент публикации последняя версия - 1.0.12):

Затем следует зайти в http://localhost:8080/axis2 -> Administration и проверить версию security-ws-service-x.x.xx. См. рисунок ниже.
Скорее всего Вы там увидите security-ws-service-1.0.4. Для того, чтобы обновить версию, Вам следует:
1. Удалить из папки [intalio_server]/webapps/axis2/WEB-INF/services файл security-ws-service-1.0.12.aar.
2. Загрузить новую версию сервиса, как показано на следующем рисунке:
3. Нужно обновить библиотеки security в UI-FW
Для обновления библиотек необходимо скопировать ранее скачанные файлы:
- security-api-1.0.12.jar
- security-web-nutsNbolts-1.0.12.jar
- security-ws-client-1.0.12.jar
- security-ws-common-1.0.12.jar
в папку [intalio_server]\webapps\ui-fw\WEB-INF\lib, затем старые версии библиотек требуется удалить.

4. Нужно обновить библиотеки security в BPMS-CONSOLE
Для обновления библиотек необходимо скопировать ранее скачанные файлы:
- security-api-1.0.12.jar
- security-web-nutsNbolts-1.0.12.jar
- security-ws-client-1.0.12.jar
- security-ws-common-1.0.12.jar
в папку [intalio_server]\webapps\bpms-console\WEB-INF\lib, затем старые версии библиотек требуется удалить.


5. Нужно обновить библиотеки security в GI
Для обновления библиотек необходимо скопировать ранее скачанные файлы:
- security-web-nutsNbolts-1.0.12.jar
в папку [intalio_server]\webapps\gi\WEB-INF\lib, затем старые версии библиотек требуется удалить.

5. Нужно обновить библиотеки security в WDS
Для обновления библиотек необходимо скопировать ранее скачанные файлы:
- security-api-1.0.12.jar
- security-web-nutsNbolts-1.0.12.jar
- security-ws-client-1.0.12.jar
- security-ws-common-1.0.12.jar
в папку [intalio_server]\webapps\wds\WEB-INF\lib, затем старые версии библиотек требуется удалить.

Теперь перезагружаем Intalio|Server и можем использовать Microsoft Active Directory.

Эту статью Вы можете прочитать на новом блоге 

пятница, 11 декабря 2009 г.

Настройка Intalio|Server 6.0 на MySQL

Пример данной настройки приведен для использования Intalio|BPMS 6.0 совместно с MySQL 5.x

В данном документе приведены настройки для следующих параметров БД
hostname: localhost
user name: jsmith
database name: bpmsdb
password: brandy
Database configuration

Для конфигурирования подключения к базе MySQL требуется отредактировать файл 'resources.properties', который располагается по адресу [IntalioServer]/conf
Пример файла 'resources.properties':

resource.ds2.className=bitronix.tm.resource.jdbc.lrc.LrcXADataSource
resource.ds2.uniqueName=jdbc/BPMSDB
resource.ds2.minPoolSize=0
resource.ds2.maxPoolSize=50
resource.ds2.allowLocalTransactions=true
resource.ds2.driverProperties.driverClassName=com.mysql.jdbc.Driver
resource.ds2.driverProperties.url=jdbc:mysql://localhost:3306/bpmsdb?useUnicode=true&characterEncoding=UTF-8
resource.ds2.driverProperties.user=jsmith
resource.ds2.driverProperties.password=brandy
Database Tables Creation

Теперь требуется создать базу данных bpmsdb, а затем залить в нее скриптом, находящемся по адресу [IntalioServer]/databases/MySQL таблицы.

mysql -u jsmith -p bpmsdb < bpms.sql

Редеплой процессов:

Перезагрузите Intalio|Server, если он загружен. Удалите файл 'TaskManager.deployed' располагающийся по адресу '/var/deploy', это необходимо для редеплоя процесса TaskManagerprocess. Если были задеплоины другие процессы на Intalio|Server, то удалите все '*.deployed' файлы в каталоге '/var/deploy' и '/var/processes'. После этих действи при загрузке Intalio|Server будут созданы записи в MySQL, необходимые для работы процессов. Теперь загрузите Intalio|Server.

Переводено с официального сайта Инталио.

Эту статью Вы можете прочитать на новом блоге

вторник, 1 сентября 2009 г.

Настройка Intalio|Server 5 CE на MySql

Пример настройки Intalio|Server 5 CE на MySql:
1. Для выбора базы данных необходимо изменить файл geronimo-ds.xml находящийся в папке [Intalio server]/databases/MySQL следующим образом:

<config-property-setting name="Driver">com.mysql.jdbc.Driver</config-property-setting>
<config-property-setting name="UserName">UserName</config-property-setting>
<config-property-setting name="Password">Password</config-property-setting>
<config-property-setting name="ConnectionURL">jdbc:mysql://localhost:3306/intalio</config-property-setting>

2. Требуется создать БД например с именем Intalio, и выполнить следующий скрипт:
mysql -u User -p Password <>
Скрипт bpms.sql находится тут: [IntalioServer]/databases/MySQL-5
После выполнения скрипта - в БД Intalio будут созданы таблицы.


3. Затем выполнить команду:
% ./deploy.sh --offline redeploy ../repository/org/tranql/tranql-connector-ra/1.3/tranql-connector-ra-1.3.rar ../databases/MySQL/geronimo-ds.xml

4. После вышеприведенных действий требуется удалить все файлы *.deployed и презагрузить Intalio|Server, а затем запустить Intalio|Server. Intalio|Server автоматически после удаления передеплоит ваши процесы.

Файлы *.deployed находятся в следующих папках:
[Intalio|Server]/var/processes
[Intalio|Server]/var/deploy

После данных действий Ваш Intalio|Server начнет использовать MySql базу.
сылка на сайт:
http://bpms.intalio.com/reference-guides/intalio-bpms-server-installing-with-mysql-5.0-version-5.0.html

Эту статью Вы можете прочитать на новом блоге

Shutdown Intalio|Server 6.0

Как ни странно, но в предыдущей версии, когда Intalio|Server работал на Geronimo Shutdown проходил без каких-либо проблем. Теперь после того, как вышла 6.0 версиия, которая работает на Tomcat 5.5 появилась проблема при shutdown application сервера. Странно но факт. Это проблема проявляется и на локальном application сервере так и под Linux. Также это не зависит от того, какая используется БД - MySql или Derby по умолчанию.

Суть проблемы:
при shutdown сервера вываливает ошибку:
13:22:57,564 ERROR [org.intalio.deploy.deployment.impl.DeploymentServiceImpl] [Deployment Service Timer] Error while scanning deployment repository
org.intalio.deploy.deployment.impl.PersistenceException: java.sql.SQLException: bitronix.tm.resource.ResourceConfigurationException: cannot create JDBC datasource named jdbc/BPMSDB
at org.intalio.deploy.deployment.impl.Persistence.load(Persistence.java:283)
at org.intalio.deploy.deployment.impl.DeploymentServiceImpl.scan(DeploymentServiceImpl.java:573)
at org.intalio.deploy.deployment.impl.DeploymentServiceImpl$ScanTask.run(DeploymentServiceImpl.java:1258)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Caused by: java.sql.SQLException: bitronix.tm.resource.ResourceConfigurationException: cannot create JDBC datasource named jdbc/BPMSDB
at org.intalio.deploy.deployment.impl.Persistence.getConnection(Persistence.java:330)
at org.intalio.deploy.deployment.impl.Persistence.load(Persistence.java:210)
... 4 more

Причем, если процес был запущен и выполнился успешно, то ошибка "крутится" по циклу и не корерктно дает завершить работу сервера. Поэтому приходится после shutdown делать kill процесса application сервера. По-идее никаких последствий это за собой не влечет. И надеюсь, что в следующей версии будет BugFix этой проблемы.

2-ой вариант развития событий при shutdown applacation сервера. Если процесс был запущен, но не завершился (например по какой-то ошибке в самом процессе), то сервер перед завершением своей работы один раз выдаст вышеприведенную ошибку и завершится.

Проблема конечно странная, ну а что делать.... Если есть какие-то решения, то был бы рад узнать о них.

Эту статью Вы можете прочитать на новом блоге

Изменение таймаута (Intalio|Server) ожидания ответа от сервиса.

На форуме Intalio было сказано, что информацию по изменению таймаута можно получить только если у вас куплена Enterprise Edition. Но это не так, информацию можно найти на сайте Apache ODE.
Для изменения таймаута требуется добавиь один параметр в каждый из трех нижеприведенных файлов:
[Intalio Server]\webapps\axis2\WEB-INF\conf\axis2.xml
[Intalio Server]\webapps\bpms-console\WEB-INF\conf\axis2.xml
[Intalio Server]\webapps\ose\WEB-INF\conf\axis2.xml

Для внесения изменений октрываем файл axis2.xml и находим:
<transportSender name="http"
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding" locked="false">chunked</parameter>
</transportsender>

Затем добавляем параметр:
<parameter name="SO_TIMEOUT" locked="false">180000</parameter>
(Это означает, что SoketTimeout будет равен 3 минутам)

В итоге должно получиться следующее:
<transportSender name="http"
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding" locked="false">chunked</parameter>
<parameter name="SO_TIMEOUT" locked="false">180000</parameter>
</transportsender>

Данные изменения необходимо внести во все 3 файла.

Эту статью Вы можете прочитать на новом блоге

четверг, 13 августа 2009 г.

Настройка аутентификациии Intalio. LDAP.

Настройка Intalio на LDAP Apache Directory.
В Community Edition есть одна особенность при подключении к LDAP - нет возможности подключится к Active Directory. Весьма странно т.к. используется протокол LDAP. Подключение к Active Directory присутствует в Enterprise Edition.

Настройка Intalio|Server на Apache LDAP
1. Требуется скачать ApacheDS (Apache Directory Server) с http://directory.apache.org, затем его установить на Linux сервере.
2. Для удобного использования всех "прелестей" Apache LDAP качаем с http://directory.apache.org клиента Apache Directory Studio.
3. После установки Apache LDAP надо запустить сервер LDAP (Пример: >sudo /etc/rc.d/init.d/apacheds-1.5.4-company start). Останов сервера LDAP - >sudo /etc/rc.d/init.d/apacheds-1.5.4-company stop.
4. Затем после установки и старта сервера LDAP требуется настроить Intalio|Server на LDAP. Делается это следующим образом:
в файле [Intalio Server]/var/config/securityConfig.xml следует раскоментировать часть кода, которая выделена зеленым цветом (настройка аутентификации через LDAP), а ту часть, которая выделена красным цветом (это настройки аутентификации которые используют security.xml в качесте хранилища данных аутентификации) следует закоментировать.

[Intalio Server]/var/config/securityConfig.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!--
Copyright (c) 2005-2006 Intalio inc.

All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
Intalio inc. - initial API and implementation
-->
<beans>

<bean id="realms" class="org.intalio.tempo.security.impl.Realms">
<property name="defaultRealm" value="intalio"/>
<property name="securityProviders">
<list>
<ref bean="securityProvider"/>
</list>
</property>
</bean>

<!-- <bean id="securityProvider" class="org.intalio.tempo.security.simple.SimpleSecurityProvider" init-method="init">
<property name="configFile">
<value>${org.intalio.tempo.configDirectory}/security.xml</value>
</property>
</bean>-->

<!-- Uncomment this section (and comment the above SimpleSecurityProvider) to enable LDAP support -->
<bean id="securityProvider" class="org.intalio.tempo.security.ldap.LDAPSecurityProvider">
<property name="propertiesFile">
<value>${org.intalio.tempo.configDirectory}/ldap.properties</value>
</property>
</bean>

<bean id="tokenHandler" class="org.intalio.tempo.security.impl.TokenHandler">
<property name="secret"><value>mySecret</value></property>
</bean>

<bean id="tokenService" class="org.intalio.tempo.security.impl.TokenServiceImpl">
<property name="realms"><ref bean="realms"/></property>
<property name="tokenHandler"><ref bean="tokenHandler"/></property>
</bean>

</beans>

5. Теперь нужно произвести настройки в файле [Intalio Server]/var/config/LDAP.properties. В нем требуется прописать настройки нашего LDAP сервера:

[Intalio Server]/var/config/LDAP.properties:
(Зеленым выделены места изменения настроек)
#
# Configuration for Apache Directory Server
#

#
# The ULR for the LDAP Server
# The default is 'ldap=://localhost:389/'.
#URL Ldap сервера
java.naming.provider.url=ldap://localhost:10389

#
# The user of the LDAP Server connection
# For example: 'cn=Directory Manager'.
#Пользователь, который используется для подключения к LDAP
#изменять его не требуется
java.naming.security.principal=uid=admin,ou=system

#
# The credentials or password of the connection
# For example: 'password'.
#Пароль для вышеприведенного пользователя
java.naming.security.credentials=secret

#
# Authetication method to connect to the LDAP Server
# The default is 'simple'.
#
java.naming.security.authentication=simple

#
# The supported realm(s) for the directory. The properties
# list name of the realm, and the base DN separated by a
# colon (':')
# For example: 'airrus:dc=airrus,dc=com'.
#контроллер домена idirectory можно создать в apach directory studio
security.ldap.realm.0=intalio:dc=idirectory

#
# The ldap factory for the directory service
# The default is 'com.sun.jndi.ldap.LdapCtxFactory'.
# (without quotes, same below)
#
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory

#
# The user's sub-context
# For example: 'ou=People', if people belongs to
# 'ou=People'
#Место где будут находится наши пользователи (создаем в Apache Directory Studio)
security.ldap.user.base=ou=Users

#
# The role or group's sub-context
# For example: 'ou=Roles', if roles belongs to
# 'ou=Roles'.
#Роли наших пользователей
security.ldap.role.base=ou=Roles

#
# An LDAP attribute name that identifies an user
# For example: 'uid'.
#Аттрибут для индентификации пользователей
security.ldap.user.id=cn

#
# The LDAP attribute name that identifies a role
# For example: 'cn'.
#
#Аттрибут для индентификации ролей пользователей
security.ldap.role.id=cn

#
# The LDAP attribute name that references a role's ascendants
# If this attribute is specified, leave 'security.ldap.role.descen' out
# For example, if standard Role is used for access control, specify
# 'nsRoleDN' or a corresponding attribute of the particular server,
# and leave out security.ldap.role.descen properties.
#
#security.ldap.role.ascen=nsRoleDN

#
# The LDAP attribute name that references a role's descendants or members.
# If this attribute is specified, leave security.ldap.role.ascen out.
# For example, if Group is used for access control, specify 'member'
# or a corresponding attribute of the particular server, and leave out
# security.ldap.role.ascen
#
#security.ldap.role.descen=uniquemember

#
# The LDAP attribute name of an user object that references the user's roles
# For example, 'nsRoleDN'.
#
#security.ldap.user.roles=nsRoleDN

#
# The LDAP attribute name of a role (or group) that references the role's
# users.
# For example, 'uniquemember'.
#Аттрибут для пользователей роли
security.ldap.role.users=uniquemember

#
# The attribute name of an user's calculated effective roles.
# If Role is used, specify 'nsRole' or a corresponding attribute
# of the particular server. For Group with Active Directory,
# specify 'memberOf'. If unsure, leaves it out
#
#security.ldap.user.allroles=nsRole

#
# The permissions' sub-context
# For example, 'ou=Permission'.
#
security.ldap.perm.base=ou=Permission

#
# The LDAP attribute name of a role that references permission objects
# For example: 'permissions'.
#
security.ldap.role.perms=permission

#
# The LDAP attribute of permission object that reference the permission's
# roles or groups
# For example: 'nsRoleDN'.
#
#security.ldap.perm.roles=nsRoleDN

#
# The LDAP attribute of permission object that references the permission's
# protected resources.
# For example: 'resource'.
#
security.ldap.perm.objects=resource

#
# The LDAP attribute name that identifies a permission object
# For example, 'cn'.
#
security.ldap.perm.id=cn

#
# The LDAP attributes names of an user's credentials or passwords
# of the user.
# Format: 'ldap property:alias'
# For example, 'userPassword:password'.
#
security.ldap.user.credential.0=userPassword:password
#security.ldap.user.credential.1=userCertificate

#
# The LDAP attribute names of an user
# Format: 'ldap property:alias'
#
security.ldap.user.prop.0=cn
security.ldap.user.prop.1=ou
security.ldap.user.prop.2=objectclass:objectclass
security.ldap.user.prop.3=sn
security.ldap.user.prop.4=givenname:givenname
security.ldap.user.prop.5=mail:email
security.ldap.user.prop.6=:uid
security.ldap.user.prop.7=l:streetaddress
security.ldap.user.prop.8=roomNumber:roomnumber
security.ldap.user.prop.9=nsrole:nsrole
security.ldap.user.prop.10=nsroledn:nsroledn
security.ldap.user.prop.11=telephoneNumber:phone
#Красным выделены аттрибуты, которые были созданы вручную
security.ldap.user.prop.12=myMail

security.ldap.user.prop.13=bossMail
security.ldap.user.prop.14=zFIO
security.ldap.user.prop.15=TopManMail
security.ldap.user.prop.16=MarketingMail
security.ldap.user.prop.17=ProjectManagerMail

#
# The LDAP atrribute names of a role or group
# Format: 'ldap property:alias'
#
security.ldap.role.prop.0=cn:cn
security.ldap.role.prop.1=ou:ou
security.ldap.role.prop.2=ObjectClass:objectclass
security.ldap.role.prop.3=uniquemember:member

Таким образом, меняем на свои значения только те значения, коорые выделены зеленым цветом. Красным выделены аттрибуты, созданные вручную в Apache LDAP, в поставке Intalio|Server в данном файле их нет - они добавляются вручную по мере необходимости.

6. Продолжаем настройку LDAP сервера.
Путь к настройкам LDAP сервера:
/etc/rc.d/init.d/apacheds-1.5.4-company в этом файле находится путь по которому находятся настройки

INSTANCE_HOME="/var/lib/apacheds-1.5.4"
APACHEDS_HOME="/opt/apacheds-1.5.4"
INSTANCE="company"

INSTANCE_HOME/INSTANCE ― ПУТЬ к настройкам

/opt/apacheds-1.5.4/conf/apacheds.conf — файл с путем по нижней строчке точно также можно определить путь
wrapper.app.parameter.3=%INSTANCE_HOME%/%INSTANCE%/conf/server.xml

Продолжаем настройку LDAP сервера:
Для окончательной настройки LDAP сервера необходимо произвести небольшие изменения в файле настроек /var/lib/apacheds-1.5.4/company/conf/server.xml

Изменения выделены зеленым цветом:
<!-- Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->


<spring:beans xmlns:spring="http://xbean.apache.org/schemas/spring/1.0"
xmlns:s="http://www.springframework.org/schema/beans"
xmlns="http://apacheds.org/config/1.0">

<defaultDirectoryService id="directoryService" instanceId="default"
<!-- рабочая директория, т.е. то место где будут располагаться данные Directory-->
workingDirectory="idirectory"

allowAnonymousAccess="true"
accessControlEnabled="false"
denormalizeOpAttrsEnabled="false">
<systemPartition>
<!-- use the following partitionConfiguration to override defaults for -->
<!-- the system partition -->
<jdbmPartition id="system" cacheSize="100" suffix="ou=system" optimizerEnabled="true" syncOnWrite="true">
<indexedAttributes>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.1" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.2" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.3" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.4" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.5" cacheSize="10"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.6" cacheSize="10"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.7" cacheSize="10"/>
<jdbmIndex attributeId="ou" cacheSize="100"/>
<jdbmIndex attributeId="uid" cacheSize="100"/>
<jdbmIndex attributeId="objectClass" cacheSize="100"/>
</indexedAttributes>
</jdbmPartition>
</systemPartition>

<partitions>
<!-- NOTE: when specifying new partitions you need not include those -->
<!-- attributes below with OID's which are the system indices, if left -->
<!-- out they will be automatically configured for you with defaults. -->
<!--(DC=IDIRECTORY ― доменное имя - верхний уровень directory)-->
<jdbmPartition id="idirectory" cacheSize="100" suffix="dc=idirectory" optimizerEnabled="true"
syncOnWrite="true">
<indexedAttributes>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.1" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.2" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.3" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.4" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.5" cacheSize="10"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.6" cacheSize="10"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.7" cacheSize="10"/>
<jdbmIndex attributeId="dc" cacheSize="100"/>
<jdbmIndex attributeId="ou" cacheSize="100"/>
<jdbmIndex attributeId="krb5PrincipalName" cacheSize="100"/>
<jdbmIndex attributeId="uid" cacheSize="100"/>
<jdbmIndex attributeId="objectClass" cacheSize="100"/>
</indexedAttributes>
</jdbmPartition>
</partitions>

<interceptors>
<normalizationInterceptor/>
<authenticationInterceptor/>
<aciAuthorizationInterceptor/>
<defaultAuthorizationInterceptor/>
<exceptionInterceptor/>
<operationalAttributeInterceptor/>

<!-- Uncomment to enable the password policy interceptor
<passwordPolicyInterceptor/>
<keyDerivationInterceptor/>
-->

<schemaInterceptor/>
<subentryInterceptor/>
<collectiveAttributeInterceptor/>
<eventInterceptor/>
<triggerInterceptor/>

<!-- Uncomment to enable replication interceptor
<replicationInterceptor>
<configuration>
<replicationConfiguration serverPort="10390" peerReplicas="instance_b@localhost:10392">
<replicaId>
<replicaId id="instance_a"/>
</replicaId>
</replicationConfiguration>
</configuration>
</replicationInterceptor>
-->
</interceptors>
</defaultDirectoryService>

<standardThreadPool id="standardThreadPool" maxThreads="8"/>
<datagramAcceptor id="datagramAcceptor" logicExecutor="#standardThreadPool"/>
<socketAcceptor id="socketAcceptor" logicExecutor="#standardThreadPool"/>

<!-- missing atou=users,dc=example,dc=com
<changePasswordServer ipPort="60464">
<directoryService>#directoryService</directoryService>
<datagramAcceptor>#datagramAcceptor</datagramAcceptor>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</changePasswordServer>
-->
<!-- missing atou=users,dc=example,dc=com
<kdcServer ipPort="60088">
<directoryService>#directoryService</directoryService>
<datagramAcceptor>#datagramAcceptor</datagramAcceptor>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</kdcServer>
-->
<ntpServer ipPort="60123">
<datagramAcceptor>#datagramAcceptor</datagramAcceptor>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</ntpServer>
<!-- missing atou=users,dc=example,dc=com
<dnsServer ipPort="8053">
<directoryService>#directoryService</directoryService>
<datagramAcceptor>#datagramAcceptor</datagramAcceptor>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</dnsServer>
-->

<ldapService id="ldapsService"
enabled="true"
ipPort="10636"
enableLdaps="true">
<directoryService>#directoryService</directoryService>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</ldapService>


<ldapService id="ldapService"
<!--(порт на котором будет работать LDAPserver)-->
ipPort="10389"
<!--(Анонимный дотуп отключен)-->
allowAnonymousAccess="false"
<!--(Пока понятия не имею что это ― но должно быть так - разобраться!!!)-->
saslHost="ldap.idirectory"
saslPrincipal="ldap/ldap.idirectory@IDIRECTORY <mailto:ldap/ldap.idirectory@IDIRECTORY>"
(место поиска как понял пользователя LDAP Server)-->
searchBaseDn="ou=users,ou=system"

maxTimeLimit="15000"
maxSizeLimit="1000">

<directoryService>#directoryService</directoryService>
<socketAcceptor>#socketAcceptor</socketAcceptor>

<!-- The list of supported authentication mechanisms. -->
<saslMechanismHandlers>
<simpleMechanismHandler mech-name="SIMPLE"/>
<cramMd5MechanismHandler mech-name="CRAM-MD5" />
<digestMd5MechanismHandler mech-name="DIGEST-MD5" />
<gssapiMechanismHandler mech-name="GSSAPI" />
<ntlmMechanismHandler mech-name="NTLM" ntlmProviderFqcn="com.foo.Bar"/>
<ntlmMechanismHandler mech-name="GSS-SPNEGO" ntlmProviderFqcn="com.foo.Bar"/>
</saslMechanismHandlers>

<!-- The desired quality-of-protection, used by DIGEST-MD5 and GSSAPI. -->
<saslQop>
<s:value>auth</s:value>
<s:value>auth-int</s:value>
<s:value>auth-conf</s:value>
</saslQop>

<!-- The realms serviced by this SASL host, used by DIGEST-MD5 and GSSAPI. -->
<saslRealms>
<s:value>idirectory</s:value>
<s:value>apache.org</s:value>
</saslRealms>

<!-- the collection of extended operation handlers to install -->
<extendedOperationHandlers>
<startTlsHandler/>
<gracefulShutdownHandler/>
<launchDiagnosticUiHandler/>
<!-- The Stored Procedure Extended Operation is not stable yet and it may cause security risks.-->
<!--storedProcedureExtendedOperationHandler/-->
</extendedOperationHandlers>
</ldapService>


<apacheDS id="apacheDS"
synchPeriodMillis="15000"
allowAnonymousAccess="false">

<directoryService>#directoryService</directoryService>
<ldapService>#ldapService</ldapService>
<ldapsService>#ldapsService</ldapsService>
</apacheDS>

<!-- another bean I didn't convert -->
<spring:bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<spring:property name="customEditors">
<spring:map>
<spring:entry key="javax.naming.directory.Attributes">
<spring:bean class="org.apache.directory.server.core.configuration.AttributesPropertyEditor"/>
</spring:entry>
</spring:map>
</spring:property>
</spring:bean>
</spring:beans>

Все настройка LDAP + Intalio|Server завершена!!! Далее следует перейти к созданию пользователей.
Эту статью Вы можете прочитать на новом блоге