Кратко

  • RFC 3744 представлял субъекта как веб-ресурс, у которого может быть несколько URL, но для записи контроля доступа требовал канонический DAV:principal-URL.
  • Поиск по имени и объявленные коллекции субъектов помогали находить кандидатов, но не обещали полный каталог, подтверждение личности или право доступа.

Имя на экране — не ссылка в правиле

WebDAV позволил редактировать удалённые документы и коллекции через HTTP. Расширение контроля доступа должно было выражать, кто какие операции может выполнять над ресурсом. Список имён выглядел удобным интерфейсом, но протоколу требовалось другое: имя помогает человеку узнать запись, а элемент контроля доступа (ACE) должен ссылаться на субъекта, которого сервер сможет проверить.

Опубликованная в мае 2004 года RFC 3744 представляла субъекта — человека или вычислительного агента — сетевым ресурсом. У одного субъекта могли быть разные URL: технический и более читаемый. По их внешнему виду клиент не мог установить, что они обозначают одного и того же актора. DAV:displayname давал понятную человеку метку, но не ключ идентичности.

Поэтому спецификация ввела канонизацию. Защищённое свойство DAV:principal-URL возвращало один и тот же назначенный URL независимо от того, через какой адрес субъекта его запросили. Создавая ACE, клиент должен был использовать URL субъекта. Список участников группы подчинялся тому же правилу: каждый участник указывался через свой principal URL. Так протокол стабилизировал ссылку, не запрещая пользовательские псевдонимы.

Это различие важно, потому что ACL относится к ресурсу, а ACE связывает субъекта с привилегиями. Если правило называло псевдоним, другой клиент не располагал универсальным способом вывести, что второй URL эквивалентен первому. RFC 3744 поместила это соответствие в защищённое свойство, которым управляет сервер, вместо того чтобы заставлять каждого клиента гадать.

Поиск не обещал полного перечня

При сотнях и тысячах субъектов человеку нужен механизм выбора. RFC 3744 определила DAV:principal-property-search — поиск подстроки в некоторых свойствах — и отдельный отчёт о том, какие свойства вообще доступны для поиска. Это удобнее, чем заставлять пользователя проходить фиксированную иерархию коллекций, но не означает, что доступны все атрибуты идентичности.

Сервер мог ограничить перечень поисковых свойств. DAV:principal-collection-set мог указывать некоторые коллекции субъектов либо не указывать ни одной. Это не гарантия полного каталога. Результат означает, что поддерживаемый сервером интерфейс нашёл возможный ресурс. Отсутствие результата не доказывает, что субъекта нет; два результата не доказывают, что это один человек.

Процесс отвечал на два вопроса: «Какой ресурс хочет выбрать оператор?» и «Какой канонический URL следует записать в ACE?». Ни один не отвечает на вопрос «Кто фактически отправил запрос?». RFC 3744 оставила аутентификацию механизмам HTTP. При оценке ACE сервер всё равно должен проверить заявленного отправителя и применить ACL. Отображаемое имя, поисковый результат, каноническая ссылка, учётные данные и действующая привилегия — разные записи.

Интерфейс интеграции, а не полная система идентификации

RFC 3744 не устанавливала, как создавать и обслуживать ресурсы субъектов и группы или как задавать исходную ACL. Она предоставила совместимые ссылки и отчёты поиска для интеграции с разными пользовательскими хранилищами. Полнота каталога и управление жизненным циклом остались за рамками.

Исторический вклад спецификации — узкий, но ясный контракт: псевдонимы могут сосуществовать; ACE нуждаются в каноническом URL субъекта; обнаружение зависит от функций сервера; аутентификация и авторизация остаются разными проверками. RFC доказывает замысел стандарта, но не внедрение в конкретном продукте, полноту реального каталога или исход инцидента.

Источники