Предыстория LDAP

Colin Robbins, 9 апреля 2013 года. Оригинал статьи.

Перевод Егора Левинца, 2017 год.

Об авторе: Colin Robbins — директор по инновациям в компании Nexor, где он помогает клиентам безопасно использовать облачные технологии и IoT.

Всё началось приблизительно в 1988 году в подвале факультета информатики Лондонского университетского колледжа. Я работал бок о бок с Paul Sharpe, работавшим тогда в GEC, который трудился над пользовательским агентом для проекта Thorn.

А я как раз занимался реализацией DISH — пользовательского агента для X.500-каталога Quipu.

Paul показал мне, как он реализовал пользовательский агент для каталога Thorn в оболочке Unix Bourne shell, используя фоновый процесс и применяя для взаимодействия с командами оболочки именованные каналы. Это показалось мне отличной идеей, и я задумал сделать нечто подобное для DISH, но расширив предложенную концепцию так, чтобы можно было полностью контролировать каталог X.500 из оболочки Unix (позднее это широко использовалось для выполнения массовых обновлений в каталогах проекта Paradise). DISH превратился в DISHD (демон DISH), и я реализовал простой текстовый протокол, основанный на синтаксисе EDB-файлов Quipu (формат файлов, используемых в Quipu в качестве хранилища данных, который позволял представить в виде простого текста все форматы данных X.500), для передачи данных из оболочки Unix в DISHD.

Я отправил этот код Marshall Rose как обновление Quipu-элемента Среды разработки ISO (ISO Development Environment, ISODE). Marshall не понравилась концепция именованных каналов, и он дал мне фрагмент кода из ISODE, чтобы я переделал его для работы поверх TCP/IP. Я внёс соответствующие изменения в Quipu и отправил обратно Marshall. Потом мы совсем немного переписывались по электронной почте по поводу усовершенствования концепции и некоторых обобщений, которые Marshall реализовал как Службу ассистента каталога (Directory Assistance Service, DASED). Параллельно с нами и не зная о нашей работе, Tim Howes реализовал подобную концепцию на копии Quipu, которую он назвал DIXIE.

И DASED, и DIXIE были отправлены в IETF как черновые стандарты, а потом было заключено соглашение об объединении концепций и создании нового чернового стандарта, названного Облегчённым протоколом просмотра каталога (Lightweight Directory Browsing Protocol), позднее переименованного в Облегчённый протокол доступа к каталогам (Lightweight Directory Access Protocol, LDAP).

Для LDAP требовался синтаксис передачи данных. Был использован и обобщён простой текстовый протокол, основанный на формате EDB-файлов Quipu, что стало основой для RFC 1488 и его более поздней ревизии RFC 1778, определяющих абстрактный синтаксис, используемый протоколом LDAP.

Дальнейшая история LDAP хорошо известна. Смотрите, например, статью "Наиболее полная история служб каталогов, какую Вы когда-либо видели".