Если рассматривать все очень глубоко и детально - я с Вами согласен задача сложная. Но есть одно но: не для всех, но для очень большого количества случаев задача решается очень просто. <br><br>Пример: Пусть мы хотим объединить несколько различных сервисов под шапкой одного сайта: wiki, svnviewer, какая-то собственная логика и при этом хотим чтобы пользователь ввел логин только 1 раз.<br>
<br>Front-end SSO может закрыть доступ ко всем этим ресурсам пока не введен логин и пароль (проверка через LDAP/SQL) . После этого доступ открывается и во внутренние запросы добавляется BASIC header с логином и паролем. Конечно и wiki и svnviewer и наше самописное решение могут дополнительно авторизировать пользователя разобрав Basic поля используя те же LDAP или SQL или access lists, но, если при этом все хорошо - пользователь введя пароль только 1 раз получит доступ ко всем ресурсам. Logout может делаться также через ссылку на front-end ресурс который просто "забудет" пользователя (удалит куку) и перестанет его пускать на защищенные ресурсы.<br>
<br>Я попробую описать требования и особые моменты в ответе на письмо Данилы Подольского ниже.<br><br><div class="gmail_quote">2010/2/24 Sergej Kandyla <span dir="ltr"><<a href="mailto:sk.paix@gmail.com">sk.paix@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">Mikhail Fursov wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Вижу по этой ссылке только то, как настроить Basic, но не SSO.<br>
<br>
Basic же подразумевается только внутри приватной сети, для передачи логина и пароля внутренним серверам проксирующимся через фронт-сервер. Логин же и пароль получать на фронт-сервере нужно не при помощи basic, а, например, при помощи html формы.<br>
<br>
Именно это позволяет mod_auth_form из Апача. (И все бы хорошо c этим mod_auth_form если бы в нем не было кучи багов или хотя бы на эти баги кто-нибудь реагировал).<br>
</blockquote>
<br></div>
есть еще некий mod_auth_tkt для апача.<br>
<a href="http://www.openfusion.com.au/labs/mod_auth_tkt/" target="_blank">http://www.openfusion.com.au/labs/mod_auth_tkt/</a><br>
<br>
но если брать в более глобальном плане, то вы хотите от nginx слишком много.<br>
SSO подразумевает собой гораздо больше, и для того чтобы оно успешно работало, соотвествующий бекенд (динамика)<br>
должен понимать как логиниться на SSO сервер, и что делать дальше с пользователями.<br>
Практически все бекенды со сложной логикой имеют разделение прав, пользователей и т.д. и вот в этих бекендах<br>
и происходит аутентификация, и соотвественно бекенды должны понимать SSO.<br>
<br>
Например, у вас есть Jira, для которой вы хотите SSO (У Atlassian в качестве SSO солюшина предлагается crowd),<br>
сколько вы не бейтесь с идеями sso на фронтенде, атентификация то пользователей происходит на бекенде...<br>
<br>
Конечно если у вас на проксируемом сервере 100 сайтов васи пупкина, то в качестве SSO солюшина подойдет и BASIC аутентификация.<br>
<br>
Ну и второй момент, что в сложных структурах, где нужен SSO, на одной машине не может и не должно быть все централизированно.<br>
Это сводит на нет всю идею SSO на фронтенде.<br>
<br>
Вы вообще определитесь для чего вам нужен SSO.<br>
Практика показывает, что в большинстве случаев всем хватает централизированного LDAP, что работает красиво и прозрачно.<br>
<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
2010/2/24 SaveFrom.net <<a href="mailto:savefrom@gmail.com" target="_blank">savefrom@gmail.com</a> <mailto:<a href="mailto:savefrom@gmail.com" target="_blank">savefrom@gmail.com</a>>><div class="im"><br>
<br>
<a href="http://sysoev.ru/nginx/docs/http/ngx_http_auth_basic_module.html" target="_blank">http://sysoev.ru/nginx/docs/http/ngx_http_auth_basic_module.html</a><br>
=/<br>
<br>
23 февраля 2010 г. 22:32 пользователь Mikhail Fursov<br></div>
<<a href="mailto:mike.fursov@gmail.com" target="_blank">mike.fursov@gmail.com</a> <mailto:<a href="mailto:mike.fursov@gmail.com" target="_blank">mike.fursov@gmail.com</a>>> написал:<div class="im"><br>
<br>
Привет всем!<br>
<br>
Скажите пожалуйста, возможно ли при помощи модулей/расширений<br>
Nginx организовать единую аутентификацию для внутренней<br>
подсети по типу mod_auth_form который войдет в Apache 2.4 ?<br>
<br>
Изнутри это может работать примерно так:<br>
<br>
1) пользователь вводит пароль на странице фронт-енд сервера<br>
<br>
2) после этого серсер его пускает его на "внутренние" ресурсы<br>
добавляя при этом Basic auth header во все внутренние HTTP<br>
запросы.<br>
<br>
Заранее спасибо за ответы.<br>
<br>
<br>
</div></blockquote><div><div></div><div class="h5">
<br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Mikhail Fursov<br>