IABACTarget.SecondAttrId

Синтаксис

SecondAttrId: String;

SecondAttrId: System.String;

Описание

Свойство SecondAttrId определяет значение в виде пользовательского атрибута для сравнения с заданным атрибутом.

Комментарии

Свойство актуально для сравнения пользовательских атрибутов субъектов или объектов. Первый атрибут задается с помощью свойства IABACTarget.AttributeId. Второй атрибут задается с помощью свойства SecondAttrId и автоматически передает значение в виде пользовательского атрибута свойству IABACTarget.AttributeValue.

Пример

Для выполнения примера убедитесь, что в структуре атрибутного доступа содержится набор политик.

Добавьте ссылки на системные сборки: ABAC, Metabase, ForeSystem (для примера на Fore.NET).

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;

Imports Prognoz.Platform.Interop.ABAC;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Sub Main(Params: StartParams);
Var
    PolicyObject: IABACRootPolicyObject;
    PolicySet: IABACPolicySet;
    Policy: IABACPolicy;
    MB: IMetabase;
    MS: IMetabaseSecurity;
    Lic: Object;
Begin
    MB := Params.Metabase;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
    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.abactoEqual;
    Policy.Target.SecondAttrId := 
"OBJECT.CUSTOM_ATTR2";
    
// Применим изменения в менеджере безопасности
    MS.Apply();
    
// Освободим лицензию
    Lic := Null;
End Sub;

В результате выполнения примера в первом наборе политик будет добавлена политика с заданной целью. Структура атрибутного доступа примет вид:

См. также:

IABACTarget