Микросертификация#

Микросертификация, или ad hoc сертификация — процесс сертификации отдельных объектов. В данном случае сертификационная кампания запускается автоматически для одного определенного объекта при возникновении какой-либо ситуации (как правило при назначении этого объекта).

Включение микросертификации требует настройки двух элементов — правила политики и определения сертификационной кампании.

Правило политики используется для создания микросертификационной кампании при выполнении какого-либо действия. Например:

<policyRule>
  <policyConstraints>
    <assignment>
      <operation>add</operation>
    </assignment>
  </policyConstraints>
  <policyActions>
    <certification>
      <definitionRef oid="540940e9-4ac5-4340-ba85-fd7e8b5e6686" /> <!-- oid определения микросертификационной кампании -->
    </certification>
  </policyActions>
</policyRule>

Такая политика будет запускать микросертификацию каждый раз, когда выполняется назначение чего-либо на объект, на который назначена эта политика.

Блок <certification> указывает на конкретное определение микросертификации, которая будет использоваться в данном элементе. Такие определения немного отличаются от обычных определений сертификационных кампаний:

<accessCertificationDefinition>
  <name>Микросертификация</name>
  <handlerUri>http://midpoint.evolveum.com/xml/ns/public/certification/handlers-3#direct-assignment</handlerUri>
  <remediationDefinition>
    <style>automated</style>
  </remediationDefinition>
  <stageDefinition>
    <number>1</number>
    <duration>P14D</duration>
    <reviewerSpecification>
      <defaultReviewerRef oid="00000000-0000-0000-0000-000000000002" type="UserType" />   <!-- administrator -->
    </reviewerSpecification>
  </stageDefinition>
  <adHoc>true</adHoc>
</accessCertificationDefinition>

Как можно заметить, в данной кампании отсутствует блок scopeDefinition. Это сделано потому, что микросертификация вызывается для конкретной пары Object-Target, и поэтому диапазон проверяемых объектов заранее известен. Также в данной схеме добавлен параметр <adHoc>true</adHoc>, что включает режим поддержки микросертификации для сертификационной кампании.

В остальном процесс микросертификации ничем не отличается от обычной сертификационной кампании.

Альтернативные варианты запуска микросертификации#

Условия запуска сертификации не ограничены только добавлением нового назначения на объект. Например, можно создать правило политики, которое запускает микросертификацию при изменении какого-либо параметра объекта:

<policyRule>
  <policyConstraints>
    <modification>
      <operation>modify</operation>
      <item>employeeType</item>
    </modification>
    <modification>
      <operation>modify</operation>
      <item>organization</item>
    </modification>
  </policyConstraints>
  <policyActions>
    <certification>
      <definitionRef oid="540940e9-4ac5-4340-ba85-fd7e8b5e6686" /> <!-- oid определения микросертификационной кампании -->
    </certification>
  </policyActions>
</policyRule>

Такая политика будет мониторить параметры employeeType и organization объекта, на который она назначена, и запускать микросертификацию если изменяется любой из этих параметров.