Назначение UserMatchAttribute
После того как система находит пользователя в каталоге LDAP с помощью заданного фильтра (UserFilter), ей необходимо определить, какой именно атрибут из найденной записи будет использоваться в качестве уникального идентификатора пользователя (UserID) внутри Business Studio. За это отвечает параметр UserMatchAttribute.
Пример конфигурации appsettings.json:
"Ldap": {
"UserFilter": "(&(objectCategory=person)(objectClass=user)(userPrincipalName={UserIdClaimValue}))",
"UserMatchAttribute": "objectSid",
"UserMatchAttributeIsStringValue": false
}
В данном примере поиск выполняется по атрибуту userPrincipalName, значение которого сопоставляется с UserIdClaimValue, полученным из токена аутентификации. Идентификатором пользователя в Business Studio станет objectSid найденной записи.
Параметр UserMatchAttributeIsStringValue указывает на то, как интерпретировать значение атрибута:
false— атрибут бинарный (какobjectSid). Система конвертирует его в строковое представление SID вида S-1-5-21-….true— атрибут строковый (какsAMAccountName,mail,userPrincipalName).
Зачем это нужно на практике:
- Обеспечение работы прав доступа.
В десктопном клиенте Business Studio права на ветки баз данных и горизонтальные права настраиваются для доменных пользователей и групп. В системе они хранятся с привязкой к SID. ЕслиUserIDпользователя в Business Studio не совпадает с его доменным SID, система не сможет сопоставить учетную запись, и назначенные права перестанут работать. - Сохранение настроек при изменении данных пользователя.
ИдентификаторobjectSidв Active Directory остается неизменным, даже если пользователь сменил email или был переименован. Использование SID гарантирует, что все настройки прав сохранятся. Если бы в качествеUserIDиспользовалсяemail, то после его смены пользователь потерял бы доступ к своим правам и был бы создан в системе заново.