Сценарии генерации учетных записей

Навигатор по разделу:

Приложение А. Сценарий генерации учетной записи сотрудника

Сценарий генерации учетной записи сотрудника позволяет заполнять определённые свойства учетных записей, создаваемых в 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.
Данный тип содержит свойства:

  • JsonValue (Строковый тип) Значение свойства в формате JSON.

  • NativeValue (тип object) - значение свойства в виде объекта

AccountName

Имя учетной записи, для которой генерируются параметры. Строковый тип.

Account

Учётная запись, для которой генерируются параметры. Свойство типа GeneratorNewAccount.

Account.SetProperty(string propertyId, string propertyValue,
bool isReadonly = false, bool isIdentity = false)

Функция для установки значения свойства учётной записи по имени. Повторные вызовы для того же свойства заменяют предыдущие его значения.
Принимает на вход идентификатор свойства и его значение.

Account.Merge(InitialAccountParameters accountParameters)

Функция для добавления содержимого текущего экземпляра в роль учётной записи.

GetAccountRoles()

Функция для получения назначенных ролей на УЗ. Возвращает список объектов ScriptRole.

GetAccountInProfile()

Функция для получения учетной записи со свойствами в профиле ресурса. Возвращает объект ScriptAccount, в который включены свойства.

GetAccountsWherePropertyContains(resourceId, propertyName, value)

Функция для получения учетных записей, свойства которых содержат заданное значение. Принимает на вход идентификатор ресурса, имя свойства и значение для свойства. 

GetAccountsWhereNameContains(accountNamePart, resourceId)

Функция для получения учетных записей, имя которых содержит заданное значение. Принимает на вход значение для поиска и идентификатор ресурса.

GetAccountsWhereNameEqual(accountName, resourceId)

Функция для получения учетных записей, имя которых совпадает с заданным значением. Принимает на вход значение для поиска и идентификатор ресурса.

GetAccountsInProfile()

Функция для получения учетных записей со свойствами в профиле ресурса. Возвращает массив объектов ScriptAccount, в который включены свойства.

Transliterate(string str)

Функция применения транслитерации к возвращаемому значению.

GetOwnedAccountInResource(resourceId)

Функция для получения имени учетной записи текущего сотрудника в произвольном ресурсе. Принимает на вход идентификатор ресурса.

GetUsedAccountInResource(resourceId)

Функция для получения имени учетной записи текущего сотрудника или совместителя в произвольном ресурсе. Принимает на вход идентификатор ресурса.

GetManagerReference()

Функция для получения имени учётной записи менеджера сотрудника по указанному идентификатору в текущем ресурсе. Используется для установки ссылки на менеджера учётной записи в ActiveDirectory. Неоднозначность разрешается за счёт выбора первой зарегистрированной учётной записи.

GetEmployeeAccount(employeeId)

Функция для получения имени учётной записи произвольного сотрудника в текущем ресурсе и профиле. Принимает на вход идентификатор сотрудника.

GetEmployeeIdByExternalId(externalId)

Функция для разрешения ссылки на сотрудника, полученной из кадровой системы. Принимает на вход идентификатор сотрудника во внешнем источнике.

Debug

Вспомогательные средства отладки. Свойство типа ScriptDebug.

Debug.Print(string text)

Функция вывода отладочной информации.

Configuration

Конфигурация. Свойство типа ICustomConfigurationReadonlyFunctions.

Подробнее о конфигурациях см. статью "9.2. Конфигурации" руководства по разработке.

Configuration.GetConfigurationValueOrDefault(string sectionName, string key)

Функция получения значения конфигурации. Принимает на вход название секции и ключ конфигурации.

Configuration.GetConfigurationValues(string sectionName)

Функция получения всех значений конфигураций в секции. Принимает на вход название секции.

Employee

Сотрудник, для которого генерируется учетная запись. Свойство типа ScriptEmployee.

Параметры Employee см. в приложении.

Приложение B. Сценарий генерации учетной записи юнита

Сценарий генерации учетной записи юнита позволяет заполнять определённые свойства УЗ, создаваемые в 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.
Данный тип содержит свойства:

  • JsonValue (Строковый тип) Значение свойства в формате JSON.

  • NativeValue (тип object) - значение свойства в виде объекта

AccountName

Имя учетной записи, для которой генерируются параметры. Строковый тип.

Account

Учётная запись, для которой генерируются параметры. Свойство типа GeneratorNewAccount.

Account.SetProperty(string propertyId, string propertyValue,
bool isReadonly = false, bool isIdentity = false)

Функция для установки значения свойства учётной записи по имени. Повторные вызовы для того же свойства заменяют предыдущие его значения.
Принимает на вход идентификатор свойства и его значение.

Account.Merge(InitialAccountParameters accountParameters)

Функция для добавления содержимого текущего экземпляра в роль учётной записи.

GetAccountRoles()

Функция для получения назначенных ролей на УЗ. Возвращает список объектов ScriptRole.

GetAccountInProfile()

Функция для получения учетной записи со свойствами в профиле ресурса. Возвращает объект ScriptAccount, в который включены свойства.

GetAccountsWherePropertyContains(resourceId, propertyName, value)

Функция для получения учетных записей, свойства которых содержат заданное значение. Принимает на вход идентификатор ресурса, имя свойства и значение для свойства. 

GetAccountsWhereNameContains(accountNamePart, resourceId)

Функция для получения учетных записей, имя которых содержит заданное значение. Принимает на вход значение для поиска и идентификатор ресурса.

GetAccountsWhereNameEqual(accountName, resourceId)

Функция для получения учетных записей, имя которых совпадает с заданным значением. Принимает на вход значение для поиска и идентификатор ресурса.

GetAccountsInProfile()

Функция для получения учетных записей со свойствами в профиле ресурса. Возвращает массив объектов ScriptAccount, в который включены свойства.

Transliterate(string str)

Функция применения транслитерации к возвращаемому значению.

GetOwnedAccountInResource(resourceId)

Функция для получения имени учетной записи текущего сотрудника в произвольном ресурсе. Принимает на вход идентификатор ресурса.

GetUsedAccountInResource(resourceId)

Функция для получения имени учетной записи текущего сотрудника или совместителя в произвольном ресурсе. Принимает на вход идентификатор ресурса.

GetManagerReference()

Функция для получения имени учётной записи менеджера сотрудника по указанному идентификатору в текущем ресурсе. Используется для установки ссылки на менеджера учётной записи в ActiveDirectory. Неоднозначность разрешается за счёт выбора первой зарегистрированной учётной записи.

GetEmployeeAccount(employeeId)

Функция для получения имени учётной записи произвольного сотрудника в текущем ресурсе и профиле. Принимает на вход идентификатор сотрудника.

GetEmployeeIdByExternalId(externalId)

Функция для разрешения ссылки на сотрудника, полученной из кадровой системы. Принимает на вход идентификатор сотрудника во внешнем источнике.

Debug

Вспомогательные средства отладки. Свойство типа ScriptDebug.

Debug.Print(string text)

Функция вывода отладочной информации.

Configuration

Конфигурация. Свойство типа ICustomConfigurationReadonlyFunctions.

Подробнее о конфигурациях см. статью "9.2. Конфигурации" руководства по разработке.

Configuration.GetConfigurationValueOrDefault(string sectionName, string key)

Функция получения значения конфигурации. Принимает на вход название секции и ключ конфигурации.

Configuration.GetConfigurationValues(string sectionName)

Функция получения всех значений конфигураций в секции. Принимает на вход название секции.

Unit

Юнит, запись которого генерируется. Свойство типа UnitScriptModel.

Параметры Unit см. в приложении.

Приложение C. Сценарий генерации логина учетной записи сотрудника 

Сценарий генерации логина учетной записи сотрудника позволяет генерировать логины учетных записей, создаваемых в IDM, на основании данных из кадровой системы.
Примеры подходящих свойств: "Имя", "Почтовый адрес", "Должность", "Номер телефона" и т. п.

Пример сценария
Employee.FirstName + Employee.LastName + '_' + Role.Name
Пример сценария
login = str.format('{0}@users',Employee.LastName)
if not UniquenessChecker.IsLoginUnique(login, [2]):
  login = Employee.FirstName + login 
login

Значения свойств определяются одиночными выражениями, выполняющимися в контексте:

ПараметрОписание

ResourceId  

Идентификатор ресурса, для которого выполняется сценарий. Целочисленный тип.

OwnedAccounts 

Учётные записи во всех ресурсах, которыми владеет сотрудник в данный момент.
Массив значений типа LoginGenerationScopeOwnedAccount. Данный тип содержит свойства:

  • ResourceId (целочисленный тип)
  • ProfileId (целочисленный тип)

  • Login(Строковый тип)

UsedAccounts

Учётные записи во всех ресурсах, которыми пользуется сотрудник или совместитель в данный момент.
Массив значений типа LoginGenerationScopeOwnedAccount. Данный тип содержит свойства:

  • ResourceId (целочисленный тип)
  • ProfileId (целочисленный тип)

  • Login(Строковый тип)

NoTranslit()

Функция для указания не применять транслитерацию к возвращаемому значению., на вход которой передается результат сценария генерация логина.

Transliterate(string str)

Функция применения транслитерации к возвращаемому значению., на вход которой передается результат сценария генерация логина.

UniquenessChecker

Проверка уникальности для нескольких ресурсов. Свойство типа LoginUniquenessChecker.

UniquenessChecker.IsLoginUnique(string login, IEnumerable<int> resources)

Функция проверки уникальности, на вход которой передается логин и список идентификаторов ресурсов.

Debug

Вспомогательные средства отладки. Свойство типа ScriptDebug.

Debug.Print(string text)

Функция вывода отладочной информации.

Configuration

Конфигурация. Свойство типа ICustomConfigurationReadonlyFunctions.

Подробнее о конфигурациях см. статью "9.2. Конфигурации" руководства по разработке.

Configuration.GetConfigurationValueOrDefault(string sectionName, string key)

Функция получения значения конфигурации. Принимает на вход название секции и ключ конфигурации.

Configuration.GetConfigurationValues(string sectionName)

Функция получения всех значений конфигураций в секции. Принимает на вход название секции.

Employee

Сотрудник, для которого генерируется логин. Свойство типа ScriptEmployee.

Параметры Employee см. в приложении.

Role

Роль. Свойство типа ScriptRole.
Данное свойство доступно, если учетная запись создается в результате назначения роли, которая создает уникальные учетные записи. В ином случае оно будет пустым.

Параметры Role см. в приложении.

Приложение D. Сценарий генерации логина учетной записи юнита

Сценарий генерации логина учетной записи юнита позволяет генерировать логины учетных записей, создаваемых в IDM, на основании данных из кадровой системы юнитов.
Примеры подходящих свойств: "Имя юнита", "Тип юнита", "Путь к юниту", и т. п.

Пример сценария
Unit.Name + Unit.Type + '_' + Role.Name
Пример сценария
NoTranslit(str.format('{0}@unit',Unit.Name))

Значения свойств определяются одиночными выражениями, выполняющимися в контексте:

ПараметрОписание

ResourceId  

Идентификатор ресурса, для которого выполняется сценарий. Целочисленный тип.

OwnedAccounts

Учётные записи во всех ресурсах, которыми владеет сотрудник в данный момент.
Массив значений типа LoginGenerationScopeOwnedAccount. Данный тип содержит свойства:

  • ResourceId (целочисленный тип)
  • ProfileId (целочисленный тип)

  • Login(Строковый тип)

UsedAccounts

Учётные записи во всех ресурсах, которыми пользуется сотрудник в данный момент.
Массив значений типа LoginGenerationScopeOwnedAccount. Данный тип содержит свойства:

  • ResourceId (целочисленный тип)
  • ProfileId (целочисленный тип)

  • Login(Строковый тип)

NoTranslit()

Функция для указания не применять транслитерацию к возвращаемому значению, на вход которой передается результат сценария генерация логина.

Transliterate(string str)

Функция применения транслитерации к возвращаемому значению, на вход которой передается результат сценария генерация логина.

UniquenessChecker

Проверка уникальности для нескольких ресурсов. Свойство типа LoginUniquenessChecker.

UniquenessChecker.IsLoginUnique(string login, IEnumerable<int> resources)

Функция проверки уникальности, на вход которой передается логин и список идентификаторов ресурсов.

Debug

Вспомогательные средства отладки. Свойство типа ScriptDebug.

Debug.Print(string text)

Функция вывода отладочной информации.

Configuration

Конфигурация. Свойство типа ICustomConfigurationReadonlyFunctions.

Подробнее о конфигурациях см. статью "9.2. Конфигурации" руководства по разработке.

Configuration.GetConfigurationValueOrDefault(string sectionName, string key)

Функция получения значения конфигурации. Принимает на вход название секции и ключ конфигурации.

Configuration.GetConfigurationValues(string sectionName)

Функция получения всех значений конфигураций в секции. Принимает на вход название секции.

Unit

Юнит, для которого генерируется логин. Свойство типа UnitScriptModel.

Параметры Unit см. в приложении.

Role

Роль. Свойство типа ScriptRole.
Данное свойство доступно, если учетная запись создается в результате назначения роли, которая создает уникальные учетные записи. В ином случае оно будет пустым.

Параметры Role см. в приложении.

Приложение E. Параметры Role 

ПараметрОписание

Role.Id

Идентификатор роли. Целочисленный тип.

Role.Name

Название роли. Строковый тип.

Role.Properties

Расширенные свойства роли. Массив с парами значений string - ExtendedPropertyValueScriptMode. Данный тип содержит свойства:

  • JsonValue (Строковый тип) Значение свойства в формате JSON.

  • NativeValue (тип object) - значение свойства в виде объекта

Приложение F. Параметры 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()

Функция для получения идентификатора текущего непосредственного руководителя работника.

Приложение G. Параметры 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. Данный тип содержит свойства:

  • Id (тип Guid) Идентификатор ссылки;
  • Name (Строковый тип) Название ссылки;
  • ParentTypeId (тип Guid) Идентификатор родительского типа юнитов;

  • ChildTypeId (тип Guid) Идентификатор дочернего типа юнитов;

  • ChildType (тип UnitType) Дочерний тип юнитов;

Unit.Type.Properties

Свойства типа юнитов. Массив значений типа UnitTypeProperty. Данный тип содержит свойства:

  • Order (целочисленный тип) Порядок свойства;
  • Name (Строковый тип) Название свойства;
  • Description (Строковый тип) Описание свойства;
  • Required (тип boolean) Флаг обязательности заполения значения свойства;
  • Unique (тип boolean) Флаг уникальности значения свойства;
  • Indexed (тип boolean) Флаг индексируемости свойства;
  • ValueType (тип UnitPropertyValueType) Тип значения свойства;
  • ValueConfig (Строковый тип) Тип ввода значения свойства;
  • DefaultValue (Строковый тип) Значение по умолчанию для свойства;
  • Id (тип Guid) Идентификатор свойства;
  • UnitTypeId (тип Guid) Идентификатор типа юнитов;
  • Validators (массив типа UnitPropertyValidatorConfig) Валидаторы свойства;

Unit.Type.Children

Дочерние типы юнитов. Массив значений типа UnitTypeChild. Данный тип содержит свойства:

  • Id (тип Guid) Идентификатор юнита;
  • ParentTypeId (тип Guid) Идентификатор родительского типа юнитов;
  • ChildTypeId (тип Guid) Идентификатор дочернего типа юнитов;
  • PatentType (тип UnitType) Родительский тип юнитов;
  • ChildType (тип UnitType) Дочерний тип юнитов;

Unit.Properties

Расширенные свойства юнита. Массив с парами значений string - UnitPropertyValueScriptModel. Данный тип содержит свойства:

  • JsonValue (Строковый тип) - значение свойства в формате JSON;

  • NativeValue (тип object) - значение свойства в виде объекта.

Unit.Links

Ссылки юнита. Массив значений типа UnitLink. Данный тип содержит свойства:

  • ParentId (тип Guid) Идентификатор родительского юнита;
  • TypeId (тип Guid) Идентификатор типа юнита;
  • ChildId (тип Guid) Идентификатор дочернего юнита;
  • Type (тип UnitTypeLink) Тип юнита;
  • Parent (тип Unit) Родительский юнит;
  • Child (тип Unit) Дочерний юнит;

Unit.Responsibles

Ответственные  за юнит. Массив значений типа UnitEmployeeResponsibleScriptModel. Данный тип содержит свойства:

  • EmployeeId (целочисленный тип) Идентификатор сотрудника;

  • Employee (тип Employee) Сотрудник;

  • Function (Строковый тип) Функция ответственного;

  • UnitId (тип Guid) Идентификатор юнита;

  • Id (целочисленный тип) Идентификатор ответственного;

Unit.Assignments

Назначения юнита сотрудникам. Массив значений типа UnitAssignment. Данный тип содержит свойства:

  • Id (тип Guid) Идентификатор назначения;
  • UnitId (тип Guid) Идентификатор юнита;
  • EmployeeId (целочисленный тип) Идентификатор сотрудника;
  • Unit (тип Unit) Юнит;
  • Employee (тип Employee) Сотрудник.

Unit.Children

Дочерние юниты. Массив значений типа Unit. Данный тип содержит свойства и методы:

  • Id (тип Guid) Идентификатор юнита;
  • ParentId (тип Guid) Идентификатор родительского юнита;
  • TypeId (тип Guid) Идентификатор типа юнита;
  • Name (Строковый тип) Имя юнита;
  • Deleted (тип boolean) Флаг удаленного юнита;
  • DisableIdentity (тип boolean) Флаг отключения объекта как субъекта авторизации;

  • Version (целочисленный тип) Версия;
  • Signature (тип Signature) Цифровая подпись;

  • GetTextId() Функция, возвращающая идентификатор юнита строкой;
  • GetRef() Функция, возвращающая ссылку на юнит;
  • Path (Строковый тип) Путь к юниту;
  • Type (тип UnitType) Тип юнита;
  • Acl (тип UnitAcl) ACL юнита;
  • Properties (массив значений типа UnitPropertyValue) Расширенные свойства юнита;
  • Links (массив значений типа UnitLink) Ссылки юнита на другие юниты;
  • Responsibles (массив значений типа UnitResponsible) Ответственные за юнит;

  • Assignments (массив значений типа UnitAssigment) Назначения юнита;

  • Children (массив значений типа Unit) Дочерние юниты;

  • ToString() Функция, возвращающая идентификатор и имя юнита строкой.

Обсуждение