SecondAttrId: String;
Свойство SecondAttrId определяет значение в виде пользовательского атрибута для сравнения с заданным атрибутом.
Свойство актуально для сравнения пользовательских атрибутов субъектов или объектов. Первый атрибут задается с помощью свойства IABACTarget.AttributeId. Второй атрибут задается с помощью свойства SecondAttrId и автоматически передает значение в виде пользовательского атрибута свойству IABACTarget.AttributeValue.
Для выполнения примера убедитесь, что в структуре атрибутного доступа содержится набор политик.
Добавьте ссылки на системные сборки: ABAC, Metabase.
Sub UserProc;
Var
PolicyObject: IABACRootPolicyObject;
PolicySet: IABACPolicySet;
Policy: IABACPolicy;
MB: IMetabase;
MS: IMetabaseSecurity;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
// Получим структуру атрибутного доступа
PolicyObject := MB.Security.Policy.ABACRules;
// Добавим политику в первом наборе политик
PolicySet := PolicyObject.Policies.Item(0);
Policy := PolicySet.Policies.Add;
Policy.Name(MB.CurrentLocale) := "Тестовая политика";
// Зададим цель политики
Policy.Target.AttributeId := "SUBJECT.CUSTOM_ATTR1";
Policy.Target.Operation := ABACTargetOperation.Equal;
Policy.Target.SecondAttrId := "OBJECT.CUSTOM_ATTR2";
// Применим изменения в менеджере безопасности
MS.Apply;
// Освободим лицензию
Lic := Null;
End Sub UserProc;
В результате выполнения примера в первом наборе политик будет добавлена политика с заданной целью. Структура атрибутного доступа примет вид:
См. также: