Welcome! Log In Create A New Profile

Advanced

Re: Single Sign On with Nginx

Mikhail Fursov
February 25, 2010 11:34AM
Попробую описать задание, но для начала очень советую посмотреть на опции
mod_auth_form, тк я вижу задачу "со своей колокольни" и запросто могу не
знать о более глобальных вещах.

Итак, задача:

Реализовать опцию аутентификации для ресурсов расположенных по указанному
под-url (location) которая позволяет делать следующее:

1) Требовать аутентификации для доступа к ресурсам расположенным по этому
location при помощи формы.

Для этого должна указаться открытая страница на которой расположена форма с
аутентификацией и имена полей для login/password.

Сервер должен перенаправлять все запросы для неаутентифицированных сессий на
эту форму и отслеживать все сабмиты этой формы. Как только поля формы
содержат правильные поля см пункт 3.

Если поля заполнены неправильными данными (неправильный пароль) см пункт 2.

2) Должна быть указан URL страницы на которую переходить при ошибке
аутентификации. Тут важно передать странице с ошибкой полную информацию об
аутентификации - логин, пароль, тип ошибки (если возможно). В Apache этого
нет, поэтому когда происходит ошибка аутентификации и пользователя требуют
заново ввести пароль совсем непонятно по какой причине: его аккаунт
заблокирован, задан неправильный пароль etc. Это очень неудобно.

3) Если пользователь ввел правильные логин и пароль фронт-энд сервер
позволяет пользователю доступиться до внутренних ресурсов текущего location
при этом модифицируя его http request. Сам сервер запоминает то, что
пользователь успешно аутентифицирован добавляя куку в сессию пользователя.
Возможно что тут можно использовать что-то еще - я просто не специалист.

В куке содержится кодировнный хеш который позволяет серверу сопоставить имя
и пароль пользователя с хранимыми сервером внутри (в памяти) данными.
Возможно что кука может содержать и сам логин и пароль в закодированном
виде. Тут вариантов много и в этом и есть отличие разных реализация для
Апача. Не уверен какое тут решение будет лучше.

Каждый раз когда пользователь обращается к ресурсу по заданному location
нужно на фронт-энд сервере проверять наличие SSO куки и либо пропускать
запрос пользователя либо нет. При этом важно учесть следующее: можно либо
для каждого запроса проверять пользователя на валидность, либо верить первой
аутентификации в течение всей сессии. В апаче эта опция называется
AuthFormSitePassphrase.

После того как у пользователя истечет время сессии - запросить его ввести
логин и пароль заново.

4) Логаут: иметь определенный в config URL перейдя по которому
пользовательская cookie будет удалена и сессия закончена


Еще важные пункты которых не хватает в Apache:

А) Трекинг активной сессии. Действительно если пользователь ходит по части
сайта которая обслуживается одним engine (например svnviewer на php) а я
хочу узнать активен ли пользователь в данный момент из другого приложения
(Java) то единственный шанс это сделать - модифицировать код php приложения
и записывать лог в базу. Если таких приложений много - нужно будет делать
много патчей. Хотелось бы чтобы front-end сервер имел возможность выполнять
custom script передавая ему параметры о пользователя для каждого запроса.
Тогда можно будет логировать активность с front-end

Б) Насильное завершение сессии. Хотелось бы иметь возможность насильно
завершить сессию пользователя из приложения A, когда он аквтивен в
приложении B. Это можно сделать, например, приняв результат работы скрипта
описанного в пункте A, либо через его возвращаемое значение либо предоставив
для скрипту API)

! Вообще если дать возможность модифицировать параметры изначального запроса
при помощи вызова пользовательской подпрограммы на фрон-энд сервере передав
этой подпрограмме некоторый API для доступа к пользовательским данным и
модификации их - то можно большую часть всего этого функционала свести к
возможности вызова этого самого скрипта + набору sample утилит которые
реализуют часто используемые паттерны. Как думате? После этого остается
только написать оптимизированное ядро для самой тяжелой и общей для всех
сценарием операции - аутентификации по правилам SSO.



Михаил.



2010/2/24 Daniel Podolsky <onokonem@gmail.com>

> > А есть пример как это делается?
> Нет, примера нету. Но мне интересно. Так что могу написать. С вас тех.
> задание и документация к готовому модулю. Который будет, естественно,
> опенсорс.
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>



--
Mikhail Fursov
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Single Sign On with Nginx

Mikhail Fursov February 23, 2010 02:34PM

Re: Single Sign On with Nginx

SaveFrom.net February 23, 2010 04:50PM

Re: Single Sign On with Nginx

Mikhail Fursov February 23, 2010 06:32PM

Re: Single Sign On with Nginx

Daniel Podolsky February 23, 2010 07:20PM

Re: Single Sign On with Nginx

Mikhail Fursov February 24, 2010 01:50AM

Re: Single Sign On with Nginx

Daniel Podolsky February 24, 2010 04:32AM

Re: Single Sign On with Nginx

Mikhail Fursov February 25, 2010 11:34AM

Re: Single Sign On with Nginx

Daniel Podolsky February 25, 2010 12:36PM

Re: Single Sign On with Nginx

Mikhail Fursov February 25, 2010 01:50PM

Re: Single Sign On with Nginx

Daniel Podolsky February 25, 2010 03:38PM

Re: Single Sign On with Nginx

Mikhail Fursov February 25, 2010 04:42PM

Re: Single Sign On with Nginx

Andrey N. Oktyabrski February 26, 2010 03:06AM

Re: Single Sign On with Nginx

Sergej Kandyla February 26, 2010 03:58AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 04:04AM

Re: Single Sign On with Nginx

Sergej Kandyla February 26, 2010 04:40AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 07:54AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 12:24PM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 12:26PM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 12:30PM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 12:38PM

Re: Single Sign On with Nginx

Andrew Kopeyko February 26, 2010 02:04AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 03:24AM

Re: Single Sign On with Nginx

Andrew Kopeyko February 26, 2010 04:38AM

Re: Single Sign On with Nginx

Gena Makhomed February 26, 2010 06:18AM

Re: Single Sign On with Nginx

Andrew Kopeyko February 26, 2010 06:46AM

Re: Single Sign On with Nginx

Sergej Kandyla February 26, 2010 09:32AM

Re: Single Sign On with Nginx

Andrew Kopeyko February 26, 2010 10:26AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 10:38AM

Re: Single Sign On with Nginx

Andrew Kopeyko February 26, 2010 10:52AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 11:14AM

Re: Single Sign On with Nginx

Daniel Podolsky February 26, 2010 11:20AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 11:26AM

Re: Single Sign On with Nginx

Daniel Podolsky February 26, 2010 12:18PM

Re: Single Sign On with Nginx

Gena Makhomed February 26, 2010 01:04PM

Re: Single Sign On with Nginx

Alex L. Demidov February 26, 2010 01:34PM

Re: Single Sign On with Nginx

Gena Makhomed February 26, 2010 02:26PM

Re: Single Sign On with Nginx

Alex L. Demidov February 26, 2010 03:04PM

Re: Single Sign On with Nginx

Gena Makhomed February 26, 2010 03:38PM

Re: Single Sign On with Nginx

Andrey N. Oktyabrski February 26, 2010 07:18AM

Re: Single Sign On with Nginx

Andrew Kopeyko February 26, 2010 08:02AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 08:00AM

Re: Single Sign On with Nginx

Andrew Kopeyko February 26, 2010 08:08AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 09:38AM

Re: Single Sign On with Nginx

Andrew Kopeyko February 26, 2010 10:36AM

Re: Single Sign On with Nginx

Mikhail Fursov February 26, 2010 10:44AM

Re: Single Sign On with Nginx

Kirill A. Korinskiy February 27, 2010 04:46AM

Re: Single Sign On with Nginx

Daniel Podolsky February 27, 2010 05:20AM

Re: Single Sign On with Nginx

Kirill A. Korinskiy February 27, 2010 06:54AM

Re: Single Sign On with Nginx

Sergey Averyanov February 27, 2010 07:16AM

Re: Single Sign On with Nginx

Kirill A. Korinskiy February 27, 2010 01:22PM

Re: Single Sign On with Nginx

Daniel Podolsky February 27, 2010 07:34AM

Re: Single Sign On with Nginx

Kirill A. Korinskiy February 27, 2010 01:20PM

Re: Single Sign On with Nginx

Daniel Podolsky February 27, 2010 04:42PM

Re: Single Sign On with Nginx

Sergej Kandyla February 24, 2010 03:20AM

Re: Single Sign On with Nginx

Mikhail Fursov February 25, 2010 10:52AM

Re: Single Sign On with Nginx

Kirill A. Korinskiy February 27, 2010 04:46AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 139
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready