Убил на эту задачу несколько дней, пока не нашёл нужный мне фильтр для работы с AD, иначе Karaf не подтягивал мне корректно роли.
Для работы с AD необходимо написать файл ldap-module.xml и положить его в каталог deploy.
Содержимое файла:
Важное примечание — connection.username= писать с указанием полного DN (например, cn=Administrator,cn=Users,dc=contoso,dc=org), иначе не будет подключаться к серверу AD.
Параметры user.base.dn= и role.base.dn= тоже необходимо указать ваши, поскольку именно из этих DN он будет брать списки пользователей и групп, которые потом будет ассоциировать с внутренними ролями ServiceMix.
Самое важное здесь: role.filter=(member:1.2.840.113556.1.4.1941:=%fqdn). Вот что это число означает я так и не понял, нашлось чисто случайно.
Для простоты настройки ещё можно вписать authentication = simple и отладку, но это по желанию.
Проверить, что у вас действительно работает всё через LDAP несложно. В консоли servicemix достаточно ввести команду jaas:realm-list. В ответ должно приехать такое:
karaf@root>jaas:realm-list
Index | Realm Name | Login Module Class Name
-----------------------------------------------------------------------
1 | karaf | org.apache.karaf.jaas.modules.ldap.LDAPLoginModule
После создания файла необходимо пройти в AD и в нужном OU/группе создать пользователя smx, а также группы: viewer, admin, manager, webconsole и ввести пользователя smx в эти группы. Например, если вы не добавите пользователя smx в группу viewer, у вас не будет открываться веб-интерфейс ServiceMix. А без доступа к admin — не будет работает встроенный ssh-клиент на сервере.
Если что-то не получается, можно стартовать демон вручную и смотреть логи. Они довольно информативные.
Для работы с AD необходимо написать файл ldap-module.xml и положить его в каталог deploy.
Содержимое файла:
Важное примечание — connection.username= писать с указанием полного DN (например, cn=Administrator,cn=Users,dc=contoso,dc=org), иначе не будет подключаться к серверу AD.
Параметры user.base.dn= и role.base.dn= тоже необходимо указать ваши, поскольку именно из этих DN он будет брать списки пользователей и групп, которые потом будет ассоциировать с внутренними ролями ServiceMix.
Самое важное здесь: role.filter=(member:1.2.840.113556.1.4.1941:=%fqdn). Вот что это число означает я так и не понял, нашлось чисто случайно.
Для простоты настройки ещё можно вписать authentication = simple и отладку, но это по желанию.
Проверить, что у вас действительно работает всё через LDAP несложно. В консоли servicemix достаточно ввести команду jaas:realm-list. В ответ должно приехать такое:
karaf@root>jaas:realm-list
Index | Realm Name | Login Module Class Name
-----------------------------------------------------------------------
1 | karaf | org.apache.karaf.jaas.modules.ldap.LDAPLoginModule
После создания файла необходимо пройти в AD и в нужном OU/группе создать пользователя smx, а также группы: viewer, admin, manager, webconsole и ввести пользователя smx в эти группы. Например, если вы не добавите пользователя smx в группу viewer, у вас не будет открываться веб-интерфейс ServiceMix. А без доступа к admin — не будет работает встроенный ssh-клиент на сервере.
Если что-то не получается, можно стартовать демон вручную и смотреть логи. Они довольно информативные.