Навигатор по разделу:
1. Сценарий генерации атрибутов учетной записи сотрудника
Сценарий генерации атрибутов учетной записи сотрудника позволяет заполнять определённые свойства учетных записей, создаваемых в IDM, данными из кадровой системы и обновлять эти значения при изменении кадровых данных. Значения этих свойств не должны быть каким-либо образом связаны с управлением доступом. Примеры подходящих свойств: "Имя", "Почтовый адрес", "Должность", "Номер телефона" и т. п.
Employee.Division.Name + Resource.CatalogId + '_' + Resource.Name
Transliterate(str.format('{0}@some_prefix',Employee.LastName))
Значения свойств определяются одиночными выражениями, выполняющимися в контексте:
| Параметр | Описание |
|---|---|
ProfileId | Идентификатор профиля учетной записи, для которой генерируются параметры. Целочисленный тип. |
ResourceId | Идентификатор ресурса учетной записи. Целочисленный тип. |
Resource | Ресурс учетной записи, для которой генерируются параметры. Свойство типа ScriptResource. |
Resource.Id | Идентификатор ресурса учетной записи. Целочисленный тип. |
Resource.CatalogId | Идентификатор каталога ресурса учетной записи. Целочисленный тип. |
Resource.Name | Название ресурса учетной записи. Строковый тип. |
Resource.Properties | Расширенные свойства ресурса учетной записи. Массив с парами значений string - ExtendedPropertyValueScriptMode.
|
AccountName | Имя учетной записи, для которой генерируются параметры. Строковый тип. |
Account | Учётная запись, для которой генерируются параметры. Свойство типа GeneratorNewAccount. |
Account.SetProperty(string propertyId, string propertyValue, | Функция для установки значения свойства учётной записи по имени. Повторные вызовы для того же свойства заменяют предыдущие его значения. |
Account.Merge(InitialAccountParameters accountParameters) | Функция для добавления содержимого текущего экземпляра в роль учётной записи. |
GetAccountRoles() | Функция для получения назначенных ролей на УЗ. Возвращает список объектов ScriptRole. |
GetAccountInProfile() | Функция для получения учетной записи со свойствами в профиле ресурса. Возвращает объект ScriptAccount, в который включены свойства. |
GetAccountsWherePropertyContains(resourceId, propertyName, value) | Функция для получения учетных записей заданного ресурса, расширенные свойства которых содержат заданное значение. Принимает на вход идентификатор ресурса, имя свойства и значение свойства. Возвращает список УЗ. |
list(GetAccountsWhereShadowPropertyEquals(resourceId, propertyName, value)) | Функция для получения списка учетных записей заданного ресурса, значения свойств (в ресурсе) которых равны заданному значению. Принимает на вход идентификатор ресурса, имя свойства и значение свойства. Возвращает список УЗ. |
GetAccountsLinkedTo(linkTypeName, destinationId) | Функция для получения учетных записей, которые содержат ссылку на заданный объект. Принимает на вход имя ссылки, настроенной для УЗ, и идентификатор объекта, на который ведет ссылка из учетной записи. Пример использования accounts = GetAccountsLinkedTo('Ролль', 158)
for a in accounts:
Debug.Print(a.Name)
|
GetAccountsWhereNameContains(accountNamePart, resourceId) | Функция для получения учетных записей, имя которых содержит заданное значение. Принимает на вход значение для поиска и идентификатор ресурса. |
GetAccountsWhereNameEqual(accountName, resourceId) | Функция для получения учетных записей, имя которых совпадает с заданным значением. Принимает на вход значение для поиска и идентификатор ресурса. |
GetAccountsByOwner(ownerId, resourceId, profileId) | Функция для получения учетных записей заданного владельца. Принимает на вход идентификатор владельца (числовой id, строковый guid или типизированный Guid), идентификатор ресурса (может принимать None), идентификатор профиля (может принимать None) Пример использования from System import Guid
for x in GetAccountsByOwner(Guid.Parse('f533e43d-5a48-4924-8b9d-2b55a29621ff'), None, None):
Debug.Print(str(x.Name))
|
GetAccountsInProfile() | Функция для получения учетных записей со свойствами в профиле ресурса. Возвращает массив объектов ScriptAccount, в который включены свойства. |
GetAccountName(string externalEmployeeId, int resourceId, int profileId) | Функция для получения имени учетной записи по идентификаторам ресурса, профиля ресурса и сотрудника. Если указанный сотрудник существует, и у него есть аккаунт в соответствующем ресурсе/профиле, то будет возвращено имя аккаунта. |
Transliterate(string str) | Функция применения транслитерации к возвращаемому значению. |
GetOwnedAccountInResource(resourceId) | Функция для получения имени учетной записи текущего сотрудника в произвольном ресурсе. Принимает на вход идентификатор ресурса. |
GetUsedAccountInResource(resourceId) | Функция для получения имени учетной записи текущего сотрудника или совместителя в произвольном ресурсе. Принимает на вход идентификатор ресурса. |
GetOwnedAccountInResourceAndProfile(resourceId, profileId) | Функция для получения имени учетной записи текущего сотрудника в произвольном ресурсе с выбором профиля ресурса. Принимает на вход идентификатор ресурса и идентификатор профиля ресурса. Возвращает строку с именем учетной записи, либо null, если таковых не нашлось. |
GetAllOwnedAccountsInResource(resourceId) | Функция для получения всех имен учетных записей текущего сотрудника из указанного ресурса. Принимает на вход идентификатор ресурса. Возвращает массив строк с именами учетных записей. |
GetManagerReference() | Функция для получения имени учётной записи менеджера сотрудника по указанному идентификатору в текущем ресурсе. Используется для установки ссылки на менеджера учётной записи в ActiveDirectory. Неоднозначность разрешается за счёт выбора первой зарегистрированной учётной записи. |
GetEmployeeAccount(employeeId) | Функция для получения имени учётной записи произвольного сотрудника в текущем ресурсе и профиле. Принимает на вход идентификатор сотрудника. |
GetEmployeePhoto() | Функция для получения фотографии сотрудника из кадрового источника. |
GetEmployeeIdByExternalId(externalId) | Функция для разрешения ссылки на сотрудника, полученной из кадровой системы. Принимает на вход идентификатор сотрудника во внешнем источнике. |
GetCertificates() | Функция для получения сертификатов текущего субъекта авторизации (сотрудника или юнита). Возвращает IList<CertificateScriptModel>. Параметры объекта CertificateScriptModel см. в приложении. |
GetCertificatesByOwner(ownerId) | Функция для получения сертификатов произвольного субъекта авторизации(сотрудника или юнита). На вход подается числовой идентификатор сотрудника или идентификатор юнита (строковый или Guid). Возвращает IList<CertificateScriptModel>. Параметры объекта CertificateScriptModel см. в приложении. |
Debug | Вспомогательные средства отладки. Свойство типа ScriptDebug. |
Debug.Print(string text) | Функция вывода отладочной информации. |
Configuration | Конфигурация. Свойство типа ICustomConfigurationReadonlyFunctions. Подробнее о конфигурациях см. статью "10.5. Конфигурации" руководства по разработке. |
Configuration.GetConfigurationValueOrDefault(string sectionName, string key) | Функция получения значения конфигурации. Принимает на вход название секции и ключ конфигурации. |
Configuration.GetConfigurationValues(string sectionName) | Функция получения всех значений конфигураций в секции. Принимает на вход название секции. |
Employee | Сотрудник, для которого генерируется учетная запись. Свойство типа ScriptEmployee. Параметры Employee см. в приложении. |
Примечание:
О применении сценариев генерации атрибутов учетной записи в веб-интерфейсе администратора см. статью "6.1.4. Настройка интеграции с целевыми системами" руководства по администрированию
2. Сценарий генерации атрибутов учетной записи юнита
Сценарий генерации атрибутов учетной записи юнита позволяет заполнять определённые свойства УЗ, создаваемые в IDM, данными из кадровой системы юнитов и обновлять эти значения при изменении кадровых данных. Значения этих свойств не должны быть каким-либо образом связаны с управлением доступом. Примеры подходящих свойств: "Имя юнита", "Тип юнита", "Ответственный за юнит", и т. п.
Unit.Name + Unit.Path + '_' + Unit.Type
Transliterate(str.format('{0}@some_prefix',Unit.Name))
Значения свойств определяются одиночными выражениями, выполняющимися в контексте:
| Параметр | Описание | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ProfileId | Идентификатор профиля учетной записи, для которой генерируются параметры. Целочисленный тип. | ||||||||||||||||||||||||||||||||||
ResourceId | Идентификатор ресурса учетной записи. Целочисленный тип. | ||||||||||||||||||||||||||||||||||
Resource | Ресурс учетной записи, для которой генерируются параметры. Свойство типа ScriptResource. | ||||||||||||||||||||||||||||||||||
Resource.Id | Идентификатор ресурса учетной записи. Целочисленный тип. | ||||||||||||||||||||||||||||||||||
Resource.CatalogId | Идентификатор каталога ресурса учетной записи. Целочисленный тип. | ||||||||||||||||||||||||||||||||||
Resource.Name | Название ресурса учетной записи. Строковый тип. | ||||||||||||||||||||||||||||||||||
Resource.Properties | Расширенные свойства ресурса учетной записи. Массив с парами значений string - ExtendedPropertyValueScriptMode.
| ||||||||||||||||||||||||||||||||||
AccountName | Имя учетной записи, для которой генерируются параметры. Строковый тип. | ||||||||||||||||||||||||||||||||||
Account | Учётная запись, для которой генерируются параметры. Свойство типа GeneratorNewAccount. | ||||||||||||||||||||||||||||||||||
Account.SetProperty(string propertyId, string propertyValue, | Функция для установки значения свойства учётной записи по имени. Повторные вызовы для того же свойства заменяют предыдущие его значения. | ||||||||||||||||||||||||||||||||||
Account.Merge(InitialAccountParameters accountParameters) | Функция для добавления содержимого текущего экземпляра в роль учётной записи. | ||||||||||||||||||||||||||||||||||
GetAccountRoles() | Функция для получения назначенных ролей на УЗ. Возвращает список объектов ScriptRole. | ||||||||||||||||||||||||||||||||||
GetAccountInProfile() | Функция для получения учетной записи со свойствами в профиле ресурса. Возвращает объект ScriptAccount, в который включены свойства. | ||||||||||||||||||||||||||||||||||
GetAccountsWherePropertyContains(resourceId, propertyName, value) | Функция для получения учетных записей заданного ресурса, расширенные свойства которых содержат заданное значение. Принимает на вход идентификатор ресурса, имя свойства и значение свойства. Возвращает список УЗ. | ||||||||||||||||||||||||||||||||||
list(GetAccountsWhereShadowPropertyEquals(resourceId, propertyName, value)) | Функция для получения списка учетных записей заданного ресурса, значения свойств (в ресурсе) которых равны заданному значению. Принимает на вход идентификатор ресурса, имя свойства и значение свойства. Возвращает список УЗ. | ||||||||||||||||||||||||||||||||||
GetAccountsLinkedTo(linkTypeName, destinationId) | Функция для получения учетных записей, которые содержат ссылку на заданный объект. Принимает на вход имя ссылки, настроенной для УЗ, и идентификатор объекта, на который ведет ссылка из учетной записи. Пример использования accounts = GetAccountsLinkedTo('Ролль', 158)
for a in accounts:
Debug.Print(a.Name)
| ||||||||||||||||||||||||||||||||||
GetAccountsWhereNameContains(accountNamePart, resourceId) | Функция для получения учетных записей, имя которых содержит заданное значение. Принимает на вход значение для поиска и идентификатор ресурса. | ||||||||||||||||||||||||||||||||||
GetAccountsWhereNameEqual(accountName, resourceId) | Функция для получения учетных записей, имя которых совпадает с заданным значением. Принимает на вход значение для поиска и идентификатор ресурса. | ||||||||||||||||||||||||||||||||||
GetAccountsByOwner(ownerId, resourceId, profileId) | Функция для получения учетных записей заданного владельца. Принимает на вход идентификатор владельца (числовой id, строковый guid или типизированный Guid), идентификатор ресурса (может принимать None), идентификатор профиля (может принимать None) Пример использования from System import Guid
for x in GetAccountsByOwner(Guid.Parse('f533e43d-5a48-4924-8b9d-2b55a29621ff'), None, None):
Debug.Print(str(x.Name))
| ||||||||||||||||||||||||||||||||||
GetAccountsInProfile() | Функция для получения учетных записей со свойствами в профиле ресурса. Возвращает массив объектов ScriptAccount, в который включены свойства. | ||||||||||||||||||||||||||||||||||
Transliterate(string str) | Функция применения транслитерации к возвращаемому значению. | ||||||||||||||||||||||||||||||||||
GetOwnedAccountInResource(resourceId) | Функция для получения имени учетной записи текущего сотрудника в произвольном ресурсе. Принимает на вход идентификатор ресурса. | ||||||||||||||||||||||||||||||||||
GetUsedAccountInResource(resourceId) | Функция для получения имени учетной записи текущего сотрудника или совместителя в произвольном ресурсе. Принимает на вход идентификатор ресурса. | ||||||||||||||||||||||||||||||||||
GetManagerReference() | Функция для получения имени учётной записи менеджера сотрудника по указанному идентификатору в текущем ресурсе. Используется для установки ссылки на менеджера учётной записи в ActiveDirectory. Неоднозначность разрешается за счёт выбора первой зарегистрированной учётной записи. | ||||||||||||||||||||||||||||||||||
GetEmployeeAccount(employeeId) | Функция для получения имени учётной записи произвольного сотрудника в текущем ресурсе и профиле. Принимает на вход идентификатор сотрудника. | ||||||||||||||||||||||||||||||||||
GetEmployeeIdByExternalId(externalId) | Функция для разрешения ссылки на сотрудника, полученной из кадровой системы. Принимает на вход идентификатор сотрудника во внешнем источнике. | ||||||||||||||||||||||||||||||||||
GetEmployeeById(employeeId) | Функция для получения сотрудника со всеми основными свойствами. Принимает на вход идентификатор сотрудника.
| ||||||||||||||||||||||||||||||||||
GetUnitById(string unitId) | Функция для получения юнита со всеми основными свойствами. Принимает на вход идентификатор юнита. Параметры Unit см. в приложении. | ||||||||||||||||||||||||||||||||||
GetCertificates() | Функция для получения сертификатов текущего субъекта авторизации (сотрудника или юнита). Возвращает IList<CertificateScriptModel>. Параметры объекта CertificateScriptModel см. в приложении. | ||||||||||||||||||||||||||||||||||
GetCertificatesByOwner(ownerId) | Функция для получения сертификатов произвольного субъекта авторизации(сотрудника или юнита). На вход подается числовой идентификатор сотрудника или идентификатор юнита (строковый или Guid). Возвращает IList<CertificateScriptModel>. Параметры объекта CertificateScriptModel см. в приложении. | ||||||||||||||||||||||||||||||||||
Debug | Вспомогательные средства отладки. Свойство типа ScriptDebug. | ||||||||||||||||||||||||||||||||||
Debug.Print(string text) | Функция вывода отладочной информации. | ||||||||||||||||||||||||||||||||||
Configuration | Конфигурация. Свойство типа ICustomConfigurationReadonlyFunctions. Подробнее о конфигурациях см. статью "10.5. Конфигурации" руководства по разработке. | ||||||||||||||||||||||||||||||||||
Configuration.GetConfigurationValueOrDefault(string sectionName, string key) | Функция получения значения конфигурации. Принимает на вход название секции и ключ конфигурации. | ||||||||||||||||||||||||||||||||||
Configuration.GetConfigurationValues(string sectionName) | Функция получения всех значений конфигураций в секции. Принимает на вход название секции. | ||||||||||||||||||||||||||||||||||
Unit | Юнит, запись которого генерируется. Свойство типа UnitScriptModel. Параметры Unit см. в приложении. |
Примечание:
О применении сценариев генерации атрибутов учетной записи в веб-интерфейсе администратора см. статью "6.1.4. Настройка интеграции с целевыми системами" руководства по администрированию
Приложение. Параметры Employee
| Параметр | Описание |
|---|---|
Employee.Id | Идентификатор сотрудника. Целочисленный тип. |
Employee.EMail | Почтовый адрес сотрудника. Строковый тип. |
Employee.FirstName | Имя сотрудника. Строковый тип. |
Employee.LastName | Фамилия сотрудника. Строковый тип. |
Employee.Patronymic | Отчество сотрудника. Строковый тип. |
Employee.PersonnelNumber | Табельный номер сотрудника. Строковый тип. |
Employee.Extension | Расширенные данные сотрудника, предоставленные кадровой системой (без наследования). Свойство типа ExtensionBag. |
Employee.Extension.Properties | Массив свойств сотрудника, предоставленных кадровой системой. |
Employee.BirthDate | Дата рождения в формате ISO 8061 (гггг-мм-дд). Строковый тип. |
Employee.Division | Подразделение сотрудника с ссылкой на родительское подразделение. Свойство типа ScriptDivision. |
Employee.Division.Id | Идентификатор подразделения сотрудника. Целочисленный тип. |
Employee.Division.Name | Название подразделения сотрудника. Строковый тип. |
Employee.Division.Extension | Расширенные данные подразделения, предоставленные кадровой системой (без наследования). Свойство типа ExtensionBag. |
Employee.Division.Extension.Properties | Массив свойств подразделения, предоставленных кадровой системой. |
Employee.Division.Parent | Ссылка на родительское подразделения (рекурсивная). Свойство типа ScriptDivision. |
Employee.Division.ManagerId | Идентификатор руководителя подразделения. Целочисленный тип. |
Employee.Division.ExternalId | Идентификатор подразделения сотрудника в кадровой системе. Строковый тип. |
Employee.Division.GetFullName() | Функция для получения полного названия подразделения в формате DN (в качестве OU берутся либо первые 64 символа названия подразделения, либо значение Extension.OU) |
Employee.Division.GetFullNameExplicit(bool ignoreMissing = false) | Функция для получения полного названия подразделения в формате DN без вывода OU из названий подразделений (в качестве OU берётся только значение Extension.OU) При ignoreMissing=True, если хотя бы одно значение не заполнено, возвращается None, иначе компонент DN пропускается. |
Employee.Division.GetPath() | Функция для получения списка подразделений на пути к этому подразделению начиная от корневого и заканчивая текущим. Employee.Division.GetPath()[0] всегда корневое. |
Employee.Position | Должность сотрудника. Свойство типа ScriptPosition. |
Employee.Position.Id | Идентификатор должности сотрудника. Целочисленный тип. |
Employee.Position.Name | Название должности сотрудника. Строковый тип. |
Employee.Position.ExternalId | Идентификатор должности сотрудника в кадровой системе. Строковый тип. |
Employee.ExternalId | Идентификатор сотрудника в кадровой системе. Строковый тип. |
Employee.PersonId | Идентификатор физического лица в кадровой системе. Строковый тип. |
Employee.GetManagerId() | Функция для получения идентификатора руководителя ближайшего по иерархии подразделения кроме тех подразделений, которыми руководит указанный работник. |
Employee.GetDirectManagerId() | Функция для получения идентификатора текущего непосредственного руководителя работника. |
Приложение. Параметры Unit
| Параметр | Описание |
|---|---|
Unit.Id | Идентификатор юнита. Строковый тип. |
Unit.Name | Имя юнита. Строковый тип. |
Unit.ParentId | Идентификатор родительского юнита. Строковый тип. |
Unit.DisableIdentity | Флаг отключения авторизации. Тип boolean. |
Unit.Path | Путь к юниту. Строковый тип. |
Unit.Type | Тип юнита. Свойство типа UnitType. |
Unit.Type.Id | Идентификатор типа юнита. Тип Guid. |
Unit.Type.Name | Название типа юнита. Строковый тип. |
Unit.Type.AllowAssignments | Флаг разрешения назначения юнитов данного типа сотрудникам. Тип boolean. |
Unit.Type.IsIdentitySubject | Флаг, показывающий, являются ли юниты данного типа субъектами авторизации. Тип boolean. |
Unit.Type.Icon | Иконка типа юнита. Строковый тип. |
Unit.Type.Links | Ссылки на другие типы юнитов. Массив значений типа UnitTypeLink. Данный тип содержит свойства:
|
Unit.Type.Properties | Свойства типа юнитов. Массив значений типа UnitTypeProperty. Данный тип содержит свойства:
|
Unit.Type.Children | Дочерние типы юнитов. Массив значений типа UnitTypeChild. Данный тип содержит свойства:
|
Unit.Properties | Расширенные свойства юнита. Массив с парами значений string - UnitPropertyValueScriptModel. Данный тип содержит свойства:
|
Unit.Links | Ссылки юнита. Массив значений типа UnitLink. Данный тип содержит свойства:
|
Unit.Responsibles | Ответственные за юнит. Массив значений типа UnitEmployeeResponsibleScriptModel. Данный тип содержит свойства:
|
Unit.Assignments | Назначения юнита сотрудникам. Массив значений типа UnitAssignment. Данный тип содержит свойства:
|
Unit.Children | Дочерние юниты. Массив значений типа Unit. Данный тип содержит свойства и методы:
|
Приложение. Параметры объекта CertificateScriptModel
| Параметр | Описание |
|---|---|
Id | Идентификатор сертификата. Тип Guid. |
Subject | Название сертификата. Строковый тип. |
Cn | Cn сертификата. Строковый тип. |
Content | Данные сертификата. Массив byte. |
KeyAlgorithm | Тип алгоритма ключа. Строковый тип. |
Imported | Дата импорта. Строковый тип. |
NotBefore | Дата, до которой недействителен сертификат. Строковый тип. |
NotAfter | Дата, после которой недействителен сертификат. Строковый тип. |
SerialNumber | Серийный номер. Строковый тип. |
ToX509Certificate() | Функция для преобразования сертификата в формат x509. Возвращает объект X509Certificate2. |