Разграничение#

Раздел delineation используется для определения набора объектов ресурсов, составляющих данный тип объекта ресурса.

В следующем простом примере определяется тип entitlement/unixGroup, который состоит из всех объектов, имеющих класс groupOfNames в данном ресурсе.

Самый простой пример разделения типа объекта

<objectType>
    <kind>entitlement</kind>
    <intent>unixGroup</intent>
    <delineation>
        <objectClass>ri:groupOfNames</objectClass>
    </delineation>
</objectType>

Теперь давайте расширим определение, чтобы включить базовый контекст.

Следующая конфигурация ограничивает тип entitlement/unixGroup объектами класса groupOfNames, которые находятся внутри ou=unixgroups,dc=example,dc=com организационной единицы.

Разделение типа объекта с ограничением базового контекста

<objectType>
    <kind>entitlement</kind>
    <intent>unixGroup</intent>
    <delineation>
        <objectClass>ri:groupOfNames</objectClass>
        <baseContext>
            <objectClass>ri:organizationalUnit</objectClass>
            <filter>
                <q:text>attributes/dn = "ou=unixgroups,dc=example,dc=com"</q:text>
            </filter>
        </baseContext>
    </delineation>
</objectType>

Базовый контекст используется для поиска объектов типа entitlement/unixGroup путем добавления условия базового контекста к запросу поиска. Однако его также можно использовать в качестве правила классификации , которое помогает определить, принадлежит ли входящий объект класса groupOfNames типу entitlement/unixGroup или нет.

Использование базового контекста для классификации имеет некоторые ограничения, а именно:

  1. Корень базового контекста должен быть указан фильтром equal („=“ знак) с единственным значением типа «Отличительное имя LDAP». То, что это отличительное имя, определяется наличием правила сопоставления distinguishedName для атрибута.

  2. Тень, которую классифицируют, должна иметь первичный или вторичный идентификатор, снова с установленным правилом соответствия distinguishedName.

Смотрите DelineationMatcher для получения дополнительной информации.

Все элементы конфигурации разграничения обобщаются в следующей таблице.

Таблица 1. Список элементов конфигурации разграничения

Элемент

Описание

objectClass

Класс объекта (например, ri:inetOrgPerson) для этого типа ресурса объекта.

auxiliaryObjectClass (многозначный)

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

Определения атрибутов из этих классов «импортируются» в тип объекта. Однако в настоящее время эти вспомогательные классы объектов не используются для классификации; а именно решение о классификации не основано на их наличии в конкретном ресурсе объекта.

—

baseContext

Определение базовой контекстной среды (контейнер ресурса объекта). Этот объект будет использоваться в качестве основы для поиска объектов данного типа. Обычно возвращаются только те объекты, которые находятся иерархически ниже baseContext. Например, это используется для указания LDAP organizationalUnit, содержащего пользователей или группы определенного типа. Эта информация также используется для классификации объектов. Смотрите также свойство baseContextClassificationUse.

searchHierarchyScope

Определение области действия поисковой иерархии. Она определяет, насколько «глубоко» следует проводить поиск в иерархии объектов. Это применимо только к ресурсам, поддерживающим иерархическую организацию объектов (например, ресурсы LDAP). Эта информация также используется для классификации объектов (вместе с baseContext) . Смотрите также свойство baseContextClassificationUse.

filter (многозначное)

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

classificationCondition

Выражение, которое оценивается для проверки того, является ли ресурсный объект заданного типа. Предполагается, что он возвращает логическое значение. (Если условие отсутствует, предполагается, что оно всегда истинно, а именно классификация выполняется с использованием других средств.) Предпочтительно использовать декларативные средства для классификации, а именно базовый контекст и фильтр(ы).

classificationOrder

В каком порядке следует использовать эту спецификацию разграничения для классификации? Отсутствие значения означает, что его следует использовать в конце.

baseContextClassificationUse

Как следует использовать базовый контекст для классификации? (Смотрите ниже.)

Таблица 2. Значения свойства baseContextClassificationUse

Значение

Описание

required

Базовый контекст должен использоваться (если он присутствует в разграничении). Если его нельзя применить, разграничение считается не соответствующим.

ifApplicable

Если базовый контекст неприменим, он используется. В противном случае оно игнорируется. Это настройка по умолчанию.

ignored

Базовый контекст не используется для классификации.