Быстрый старт#
В данном разделе описаны примеры подключения и синхронизации внешних ресурсов с IDM. Эти инструкции предназначены для разработчиков, которым нужно подключить свою систему к IDM.
Пререквизиты#
Для выполнения примеров понадобятся:
Развернутая инсталляция IDM (подробнее смотрите в Руководстве по установке);
Источник данных об аккаунтах в формате CSV. Для выполнения руководства можно воспользоваться следующим примером:
"empno","firstname","lastname","password" "001","Alice","Anderson","qwe123" "002","Bob","Brown","qwe123" "003","Carol","Cooper","qwe123" "004","David","Davies","qwe123" "005","Erin","Evans","qwe123" "006","Frank","Fox","qwe123" "007","Goerge","Green","qwe123" "008","Harry","Harris","qwe123" "009","Isabella","Irvine","qwe123" "010","Jack","Jones","qwe123" "011","Kate","Knowles","qwe123" "012","Lily","Lewis","qwe123" "013","Max","Morgan","qwe123" "014","Nathan","Newman","qwe123" "015","Oliver","Owen","qwe123" "016","Peter","Phillips","qwe123" "017","Quentin","Quinn","qwe123" "018","Roger","Russell","qwe123" "019","Sophia","Simpson","qwe123" "020","Thomas","Turner","qwe123" "021","Uma","Underhill","qwe123" "022","Violet","Vickers","qwe123" "023","William","Walker","qwe123" "024","Xenia","Xanadu","qwe123" "025","Yasmine","Young","qwe123" "026","Zed","Zimmerman","qwe123"Целевая система, аккаунтами в которой будет управлять IDM. В примерах используется простой сервер OpenLDAP;
Опционально - IDE для работы с XML-файлами.
Подключение ресурса и импорт данных#
Первое, что нужно сделать для начала работы с IDM — создать учетные карточки пользователей в IDM. Этом можно сделать вручную, но проще, быстрее и реалистичнее будет импортировать готовый список из, например, кадровой системы.
Для импорта данных из CSV-файла необходимо подключить его как ресурс IDM. Для этого нужно создать конфигурационную схему ресурса IDM. Схему ресурса можно составлять на XML, YAML или JSON. Схема ресурса определяет параметры подключения IDM к источнику данных, корреляцию атрибутов учетной записи в источнике к атрибутам юзера IDM, настройки политик, применяемых к учетным записям и действия при синхронизации данных между источником и IDM. Подробнее о составлении схемы и ее элементах вы можете узнать в разделе Конфигурирование ресурса Руководства для операторов.
В рамках данного примера мы воспользуемся следующей XML-схемой:
<resource oid="03c3ceea-78e2-11e6-954d-dfdfa9ace0cf"
xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3"
xmlns:icfs="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3"
xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3"
xmlns:ext="http://midpoint.evolveum.com/xml/ns/story/orgsync/ext"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:icfc="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/connector-schema-3">
<name>HR System</name>
<!--
Данный раздел определяет коннкетор IDM, используемый для подключения ресурса.
-->
<connectorRef type="ConnectorType">
<filter>
<q:equal>
<q:path>c:connectorType</q:path>
<q:value>com.evolveum.polygon.connector.csv.CsvConnector</q:value>
</q:equal>
</filter>
</connectorRef>
<!--
Конфигурация подключения коннектора к источнику данных. Параметры подключения специфичны для CSV-коннектора.
-->
<connectorConfiguration>
<icfc:configurationProperties
xmlns:icfccsvfile="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/bundle/com.evolveum.polygon.connector-csv/com.evolveum.polygon.connector.csv.CsvConnector">
<icfccsvfile:filePath>[путь-к-example.csv-в-файловой-системе-сервера-IDM]</icfccsvfile:filePath>
<icfccsvfile:encoding>utf-8</icfccsvfile:encoding>
<icfccsvfile:fieldDelimiter>,</icfccsvfile:fieldDelimiter>
<icfccsvfile:multivalueDelimiter>;</icfccsvfile:multivalueDelimiter>
<icfccsvfile:uniqueAttribute>empno</icfccsvfile:uniqueAttribute>
<icfccsvfile:passwordAttribute>password</icfccsvfile:passwordAttribute>
</icfc:configurationProperties>
</connectorConfiguration>
<!--
Настройки корреляции атрибутов между источником и IDM.
-->
<schemaHandling>
<objectType>
<displayName>Default Account</displayName>
<default>true</default>
<objectClass>ri:AccountObjectClass</objectClass>
<attribute>
<ref>ri:empno</ref>
<displayName>Name</displayName>
<limitations>
<minOccurs>0</minOccurs>
<access>
<read>true</read>
<add>true</add>
<modify>true</modify>
</access>
</limitations>
<inbound>
<target>
<path>name</path>
</target>
</inbound>
</attribute>
<attribute>
<ref>ri:firstname</ref>
<displayName>First name</displayName>
<inbound>
<target>
<path>givenName</path>
</target>
</inbound>
</attribute>
<attribute>
<ref>ri:lastname</ref>
<displayName>Last name</displayName>
<inbound>
<target>
<path>familyName</path>
</target>
</inbound>
</attribute>
<activation>
<administrativeStatus>
<inbound/>
</administrativeStatus>
</activation>
<credentials>
<password>
<inbound>
<strength>weak</strength>
<expression>
<generate/>
</expression>
</inbound>
</password>
</credentials>
</objectType>
</schemaHandling>
<!--
Раздел для настройки политик безопасности. В данном примере они не используются.
-->
<projection>
<assignmentPolicyEnforcement>none</assignmentPolicyEnforcement>
</projection>
<!--
Настройки действий при синхронизации данных.
-->
<synchronization>
<objectSynchronization>
<enabled>true</enabled>
<correlation>
<q:equal>
<q:path>c:name</q:path>
<expression>
<path>$projection/attributes/empno</path>
</expression>
</q:equal>
</correlation>
<reaction>
<situation>linked</situation>
<synchronize>true</synchronize>
</reaction>
<reaction>
<situation>deleted</situation>
<synchronize>true</synchronize>
<action>
<handlerUri>http://midpoint.evolveum.com/xml/ns/public/model/action-3#deleteFocus</handlerUri>
</action>
</reaction>
<reaction>
<situation>unlinked</situation>
<synchronize>true</synchronize>
<action>
<handlerUri>http://midpoint.evolveum.com/xml/ns/public/model/action-3#link</handlerUri>
</action>
</reaction>
<reaction>
<situation>unmatched</situation>
<synchronize>true</synchronize>
<action>
<handlerUri>http://midpoint.evolveum.com/xml/ns/public/model/action-3#addFocus</handlerUri>
</action>
</reaction>
</objectSynchronization>
</synchronization>
</resource>
Для подключения ресурса выполните следующие шаги:
Войдите в интерфейс администратора IDM.
Нажмите кнопку Импортировать и выберите конфигурационную схему hr-csv-example.xml.
Убедитесь, что ресурс успешно подключен. Для этого:
Перейдите на вкладку Ресурсы, откройте ресурс HR System и нажмите кнопку Протестировать соединение. В данном примере источник данных это всего лишь файл в файловой системе сервера IDM, поэтому подключение должно быть быстрым и безошибочным.
В ресурсе HR System выберите раздел Аккаунты и переключите тумблер Искать в на значение Ресурс. В окне должен отобразиться список учетных записей из CSV-файла.
После этих шагов ресурс подключен к IDM. Теперь вы можете синхронизировать данные из ресурса с данными в IDM, по правилам, определенным в конфигурационной схеме ресурса. Поскольку нам нужно импортировать данные из ресурса в IDM, возспользуемся задачей импорта данных, нажав на кнопку Импортировать в нижней части экрана со списком аккаунтов ресурса HR System.
После того, как задача на импорт закончит исполняться, вы можете просмотреть созданные учетные карточки пользователей IDM в подразделе Все пользователи раздела Пользователи.