OpenSSO

Материал из Eludia
Перейти к: навигация, поиск
Muzzle.jpg Тема этой заметки имеет некоторое отношение к компьютерной так называемой "безопасности".

Если вы разрабатываете Eludia-приложение для организации, в которой развёрнут OpenSSO-сервер, то им вполне можно воспользоваться для авторизации.

Для этого достаточно включить в conf/httpd.conf LDAP-секцию и добавить в неё один дополнительный параметр: opensso.

		ldap => { 		
		
			host     => 'ldap.my_corporation.ru',
			base     => 'dc=my_corporation,dc=ru',
			pk       => 'uid',
			
			fields   => {
			
				login => 'uid',
				label => 'cn',
				mail  => 'mail',

			},
			
			opensso => 'http://opensso.my_corporation.ru:8080',
			
		},

После перезапуска система начинает вести себя следующим образом: неавторизованных пользователей без OpenSSO cookie отправляет на форму OpenSSO-авторизации, а для неавторизованных (в смысле, с пустым $_REQUEST {sid}) автоматически заводит сессию.

Запись пользователя обнаруживается (или генерируется) в таблице users по значению поля login. При этом берётся значение того OpenSSO-атрибута, который задан как $preconf -> {ldap} -> {fields} -> {login}.

Остальные поля записи заполняются не из OpenSSO-атрибутов, а из результата LDAP-запроса на тот же самый login. Это может показаться излишним, но если кто-нибудь знает, как обеспечить выдачу результата identity/attributes в кодировке, отличной от ISO-8859-1 — сообщите, пожалуйста.

В текущей реализации предусмотрена одна закладка (поддержка которой в дальнейшем не гарантируется): предполагается, что таблица users содержит поля f, i, o и is_female соответственно. Первые 3 — это ФИО, их значение получается из label нарезкой по пробелу; is_female — как можно догадаться, 0 для М и 1 для Ж, пол определяется по окончанию отчества.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты