...

вторник, 31 марта 2015 г.

Single Sign-On (SSO): OpenAM + mod_auth_mellon

Пост расcчитан на новичков, которые только знакомятся с SSO. В интернете не очень много документации по связке OpenAM и mod_auth_mellon, тем более на русском языке.

Для быстрого старта буду использовать образы Docker. Для аутентификации пользователя рассмотрю модуль mod_auth_mellon, но можно использовать и другие методы, к примеру Policy Agent или OpenIG.

Технология единого входа (англ. Single Sign-On) — технология, при использовании которой пользователь переходит из одного раздела портала в другой без повторной аутентификации.

OpenAM (Access Management) — провайдер идентификации (IdP, англ. identity provider), осуществляет аутентификацию пользователя.

mod_auth_mellon — модуль apache, который аутентифицирует пользователя через IdP (OpenAM).



Добавить в /etc/hosts домены для OpenAM и тестовых приложений:

127.0.0.1 openam.example.com fake.mellon.app.one fake.mellon.app.two




Запускаем OpenAM:

docker run -d -t -p 8080:8080 --add-host "openam.example.com:127.0.0.1" wstrange/openam-base-nightly




Запускаем тестовые приложения:

git clone git@bitbucket.org:agobzhelyan/openam_mellon.git
cd openam_mellon



docker build -t fake_mellon_app_one fake_app_1
docker run -d -p 8091:80 --name fake_mellon_app_one fake_mellon_app_one



docker build -t fake_mellon_app_two fake_app_2
docker run -d -p 8092:80 --name fake_mellon_app_two fake_mellon_app_two


Настраиваем OpenAM. Можно было создать docker образ, чтобы не делать это вручную. Но, думаю, будет лучше пройти эти простые шаги самому, чтобы лучше понять, как это работает:


— открываем http://ift.tt/1Ii3kL6;

— нажимаем Create Default Configuration;

— пароль для amAdmin — secret12, для UrlAccessAgent — secret123;

— переходим в Home (amAdmin / secret12), далее Federation и добавляем новый Circle of Trust с именем TestCOT;

— переходим на страницу Create Identity Provider: http://ift.tt/1aemHuc. Меняем Signing Key на test и ждем на Configure, потом Finish;

— переходим на страницу Create Remote Service Provider: http://ift.tt/1Ii3kL8. Ждем на File и загружаем fake_app_1/mellon/fake_mellon_app_one.xml, убеждаемся что COT выбран TestCOT

— тоже самое для fake_mellon_app_two.xml.


Настройка mod_auth_mellon. Тут лучше почитать http://ift.tt/1aemK9g и посмотреть пример реализации в тестовых приложениях http://ift.tt/1Ii3jqq.




— выходим из админки http://ift.tt/1Ii3kL6 и переходим в приложение 1 — http://ift.tt/1aemHKt;

— нажимаем ссылку backend;

— нас перенаправит на логин страницу. Вводим demo / changeit;

— после этого возвращаемся на запрашиваемую (защищенную) страницу;

— переходим в приложение 2 http://ift.tt/1Ii3jqu и обращаем внимание что и тут мы залогинены.

Как видите, все просто, но на этапе знакомства с новой технологией уходит много времени. Надеюсь, время на написание этого поста потрачено не даром и он будет кому-то полезен. Тех, кто имеет опыт работы с данной технологией, прошу делиться им в комментариях.

http://ift.tt/1aemK9i

http://ift.tt/1Ii3jqw

http://ift.tt/1aemHKz

http://ift.tt/HYAVxB

http://ift.tt/1Ij5Pgh

http://ift.tt/1Ii3jqE

http://ift.tt/1bNAB74

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.



This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий