Стратегии каталогов
8.2.1 Авторитетные источники
Сохраненная в записи каталога пользователя информация упорядочена в виде раздельных атрибутов (attributes) или полей. Диапазон сохраненной в каталоге информации зачастую устанавливается требованиями приложения или множеством использующих ее приложений. Мы определяем авторитетный источник (authoritative source) как наивысший, компетентный орган в организации, который генерирует, назначает или проверяет достоверность значений атрибутов данных.
Например, рассмотрим следующие атрибуты в очень простой записи каталога для пользователя:
- Имя: официально признанное полное имя служащего или подрядчика. Имя, вероятно, было утверждено неким кадровым ресурсом путем проверки санкционированной государством формы персональной идентификации, такой, как паспорт, водительские права, свидетельство о рождении и т. д.
- Номер служащего: уникальный идентификационный ключ, зачастую комбинация алфавитно-цифровых символов. Как правило, он генерируется кадровой системой, причем гарантируется уникальность по отношению ко всем остальным людям в каталоге, включая прошлые и настоящие записи.
- Номер телефона: телефонный номер, заданный данному человеку обслуживающим персоналом или персоналом связи. Номер задается на основании пула доступных номеров учрежденческой телефонной станции для рабочего места служащего (либо на основании какого-либо другого применяемого критерия).
- Адрес электронной почты в организации: RFC-822-адрес (SMTP) генерируется для пользователя ИT-персоналом. Адрес должен быть уникальным по отношению ко всем другим SMTP-адресам, используемым в системе в рамках электронной почты на текущий момент. Он может быть сгенерирован с применением алгоритмов при использовании элементов полного имени пользователя, его отдела или каких-либо других данных.
В этом примере обратите внимание на то, что мы имеем три авторитетных источника для четырех атрибутов. Кадровый ресурс является авторитетным источником для имени и номера служащего, обслуживающий персонал связи является авторитетным источником для номера телефона, а ИT-персонал является авторитетным источником для адреса электронной почты. В интересах этого примера нам не надо было точно определять, из чего состоит атрибут name (имя) (мы обсуждаем проблемы, связанные с именами, в разделе "Множество личностей").
Множество авторитетных источников для данных – это чрезвычайно распространенное явление, а количество таких источников представляется увеличивающимся в прямой зависимости относительно размеров организации. Это просто наблюдение, основанное на нашем опыте, но любой, кто работал в крупной многонациональной организации, наверняка согласится с нами. Чем больше организация, тем больше требуется специализированных административных обслуживающих групп, которые, в свою очередь, специализируются на конкретных областях или участках управления. Чрезвычайно маловероятно, что специалист по кадрам имеет также достаточную квалификацию и обязанность управлять системой учрежденческой телефонной станции компании. Обратите внимание также на то, что специализация по администрированию данных может не ограничиваться внутренними обслуживающими группами. Некоторые организационные системы могут отдавать свои полномочия третьим сторонам и управляться ими. К примеру, доступом к структуре обслуживания зданий и парковок может управлять внешняя организация.
Мы не предполагаем, что две любые организации одинакового размера имеют одинаковое количество авторитетных источников данных. Мы только указываем на то, что наличие для всех данных о личности единственного, централизованного источника данных весьма маловероятно, так как традиционно каталоги используются в интересах весьма разных бизнес-функций. Мы также не говорим, что единственный, централизованный авторитетный источник "лучше", чем их множество. Настоящую важность при существовании множества авторитетных источников данных принимают опорные (контрольные) точки и то, как управляются данные. Именно это мы и обсудим в следующем разделе.
8.2.2 Опорные точки
Опорная (контрольная) точка (point of control) определяется как интерфейс, который предоставляет возможность выполнения операций записи во всей или части записи данных личности. Операция записи может состоять из добавления новой записи, изменения существующей записи или удаления всей существующей записи. Операция чтения является только выборкой данных без их изменения. Большинство каталогов спроектированы в расчете на значительно большие пропорции операций чтения по отношению к операциям записи.
Как правило, опорные точки имеют ограничения доступа, которые ограничивают или разрешают определенным людям, серверам или приложениям выполнять операции записи. Опорные точки могут быть исключительными и неисключительными. Уровни исключительности могут варьироваться от всего каталога до единственной записи либо даже до отдельного атрибута. Исключительность для опорной точки означает, что другая опорная точка не может перекрывать ее рамки относительно того, какие данные могут быть записаны.
Примером исключительной опорной точки может служить процесс генерирования уникального номера служащего. Процесс должен иметь единоличную возможность определения значения данного атрибута, и никакой другой интерфейс не может предоставить средства его изменения. Этот процесс может подвергаться управлению со стороны вышестоящего процесса или интерфейса, которые располагают единоличной способностью добавлять новую запись служащего.
Примером неисключительной опорной точки может быть атрибут псевдонима человека. Служащий может располагать интерфейсом и возможностью изменять его самостоятельно в дополнение к другим людям или группам, которые располагают интерфейсами и возможностями по изменению этого атрибута, таким, как их менеджер и кадровый персонал.
Опорные точки должны быть идентифицированы по каталогам, записям и атрибутам. Каждый каталог предусматривает разнообразные опорные точки, а централизация или децентрализация управления обычно конфигурируется по нескольким степеням разработчиком.
8.2.3 Управление данными
В предыдущих разделах мы обсуждали, "кто" может изменять данные (авторитетные источники) и "где" они могут быть изменены (опорные точки). Управление данными осуществляет координирование обоих явлений во избежание конфликтов между ними. Управление данными также включает в себя администрирование данных, рассматриваемое как единое целое, с целью поддержания точности, своевременности и совместимости данных. Проблемы в достижении этой цели зачастую группируются вокруг существования множества независимых каталогов, которым требуется хранить идентичные или подобные атрибуты.
Разделение каталогов, по сути, предусматривает разделение опорных точек; таким образом, когда атрибуты перекрываются между любыми парами каталогов, вероятность несовместимости данных становится довольно высокой. Вероятность проблем с совместимостью данных увеличивается, когда доступ к различным опорным точкам распределен между несколькими группами администраторов. Совместимость данных между любыми парами каталогов может быть улучшена путем предоставления доступа к опорным точкам централизованной административной группе, но, когда опорные точки не объединены в одно целое, данные часто необходимо вводить вручную на каждой опорной точке. Каждый раз при необходимости ввода данных вручную существует фактор человеческой ошибки, а значит, точность и совместимость данных все так же будут иметь изъяны даже при централизованном администрировании.
Для содействия улучшению совместимости данных относительно множества каталогов опорные точки для различных атрибутов, совместно используемых в различных каталогах, должны быть ограничены одним каталогом. Это не говорит о том, что единственный каталог должен быть опорной точкой для всех принадлежащих личности атрибутов. Мы имеем в виду, что любой заданный атрибут должен иметь ограниченное число опорных точек, хотя различные опорные точки атрибута могут быть размещены в различных каталогах. К примеру, атрибут "А" должен быть ограничен до возможности изменения из единственной опорной точки в каталоге "1", в то время как атрибут "Б" должен быть ограничен до возможности изменения из единственной опорной точки в каталоге "2" и т. д. Но при наличии множества каталогов это подразумевает, что должно существовать нечто взамен для внесения изменений, сделанных в одном атрибуте из опорной точки в одном каталоге, и в другие каталоги, которым также необходимо хранить этот атрибут. Нам необходимо применять сделанные в одном месте изменения во всех остальных местах (каталогах), в которых должны сохраняться идентичные данные. Это "нечто", что должно применяться взамен, является синхронизацией данных между различными каталогами, которую мы рассмотрим в следующем разделе.
8.3 Синхронизация каталогов
Синхронизация данных между двумя или более различными каталогами называется синхронизацией каталогов. Синхронизация каталогов требует обмена данными между двумя или более системами каталогов. Направление изменений, или поток данных, должно быть согласовано с авторитетными источниками. Данные должны перемещаться от авторитетных источников к неавторитетным источникам. Синхронизация каталогов может быть использована как средство для объединения хранилища мандатов, применяемых для аутентификации пользователей, и употребления единообразных личностей пользователей в интересах элементов управления доступом. Мы обсудили практические приложения для объединения мандатов пользователей в "Принцип единого входа (Single sign-on)" .
Проект синхронизации каталогов должен подробно описывать все аспекты обмена данными или взаимодействия. Такое взаимодействие может быть разложено на следующие составляющие:
- источники данных: системы и устройства, которые взаимодействуют;
- атрибуты: что они должны передавать друг другу;
- потоки данных: как они должны осуществлять такую передачу;
- события: когда они должны осуществлять передачу.
8.3.1 Источники данных
Ранее в этой лекции мы уже обсуждали понятие авторитетных источников. В контексте синхронизации каталогов источниками данных являются каталоги или хранилища (репозитории), между которыми нам необходимо организовать обмен данными.
Перед тем как вы сможете определить инструменты, или методы, которые можно использовать для обмена данными, в первую очередь вы должны обозначить каталоги и интерфейсы, поддерживаемые каждым из них. Как правило, каталоги поддерживают некоторую форму интерфейса прикладного программирования [application programming interface (API)], также они могут поддерживать операции чтения и обновления LDAP, групповой импорт или экспорт файлов. Инструменты для синхронизации каталогов мы обсудим в этой лекции позднее. В практических целях мы можем использовать термины "источник данных" и "каталог" поочередно. Однако обратите внимание на то, что мы должны проводить различие между источником и целевым объектом. Обратите внимание на то, что одинаковые данные могут иметь множество целевых каталогов, но будут иметь только один каталог-источник.