Спасибо. Тогда попробую начать

Сразу оговорюсь, что пробовал я ставить на стенде версию IDM 4.0 Advanced Edition (после этого вышла версия 4.0.1, может, в ней что-то поменялось), а в качестве внешней системы использовалось своё приложение с SQL-базой и доступом к нему через JDBC-драйвер.
Насколько я понял из документации, очень важным является понятие
Entitlement (как бы это по-русски-то грамотно сказать? У них самих переведено как "наделение правами" - мне не нравится: длинно и не отражает суть. Ладно, будем пока что пользоваться английским словом, как термином). Документация настоятельно рекомендует пользоваться этими Entitlement-ами при обработке всяческих заявок. Фактически, Entitlement - это объект в Vault-е, представляющий некий ресурс во внешней системе. Этот объект имеет свои имя/описание (Name, DisplayName, Description), а, кроме того, может иметь набор возможных значений (как частный случай - информацию о том, как этот набор значений вытянуть из внешней системы). Результатом успешной обработки заявки является назначение пользователю некоего Entitlement-а с конкретным значением (атрибут
DirXML-EntitlementRef). Причём Entitlement-ы можно привязывать либо непосредственно к объекту "роль" (прежний подход, сейчас не рекомендуется), либо к объекту "ресурс", который уже затем соединять с ролью (текущий подход). А дальше уже драйвер (коннектор) к конкретной внешней системе видит изменения этих Entitlement-ов (назначение/отмену/модификацию) и преобразует их в соответствующие изменения прав во внешней системе.
С учётом гибкости настроек workflow и многоязычного интерфейса портала (UI) получается очень привлекательно.
Теперь, собственно, о граблях, на которые успел наступить.
1. Привязать Entitlement к ресурсу можно только через портал (ни iManager, ни Designer этого не позволяют). Однако, после создания Entitlement-а (создаётся он внутри драйвера к внешней системе) портал его не видит и выдаёт лишь невразумительное сообщение о том, что, дескать, у вас нет драйверов, на которых скофигурированы Entitlement-ы для маппинга ресурсов, и идите вы... читать документацию. Причём конкретной ссылки на документацию не указано, а я в доке нашёл на эту тему лишь следующий абзац:
User Application: User Guide писал(а):NOTE: If you have not configured the DirXML-Resource correctly, when you access the Browse Entitlements page to select an Entitlement, you will see a message indicating that you have not configured your entitlements for resource mapping.
В общем, что хочешь, то и думай. Погуглив, нашёл через форум
вот эту ссылку, которая, действительно, помогла. Но, блин, где об этом написано в документации??
2. Создали ресурс, привязали к нему Entitlement, пробуем сделать заявку на ресурс. Проверяем: действительно, при назначении пользователю ресурса ему выставляется и правильный Entitlement (т.е. атрибут DirXML-EntitlementRef). При отзыве ресурса - атрибут DirXML-EntitlementRef убирается. Красиво. Делаем следующий шаг: добавляем ресурс к роли, и делаем заявку на назначение роли (а не ресурса). На первый взгляд, всё красиво: роль назначаем - атрибут DirXML-EntitlementRef появляется (вместе с атрибутами о том, что назначена роль и соответствующий ей ресурс). Однако, при отзыве роли процедура отрабатывает лишь частично: ссылки на роль и на ресурс у пользователя отбираются, а вот Entitlement (атрибут DirXML-EntitlementRef) остаётся! То же самое происходит и в случае, если пытаться использовать "старый" подход (привязывать Entitlement сразу к роли). Почему? Это что, явный баг, или я чего-то не учёл?
3. При редактировании объекта "ресурс" (что через портал, что через дизайнер) можно указать два workflow: которые будут отрабатывать при назначении ресурса и при его отзыве. При редактировании же роли доступен лишь один workflow - на назначение роли. А как сделать workflow, который будет работать при отзыве роли? Или это невозможно?
4. Система поддерживает локализацию на разные языки. Однако, мне так и не удалось корректно локализовать на русский язык Entitlement-ы (там можно перевести как DisplayName, так и сами значения). Отображается всегда одинаково: квадратиками. В других местах (свойства пользователей, ролей, ресурсов) локализация работает корректно. Тоже похоже на явный баг.
5. Так и не понял, каким образом из внешней системы вытягивается список возможных значений Entitlement-а. В настройках задаются параметры в формате LDAP-запроса. Но неясно, что указывать в случае, когда внешняя система - простая SQL-база. Или надо ресурсы внешней системы, представляемые Entitlement-ами, обязательно затягивать внутрь IDM-а (например, реплицируя их на какие-то custom-классы в Vault-е)?