|
|
|
Вопрос по теории авторизации на сервере приложений внутри домена
|
|||
|---|---|---|---|
|
#18+
Вопрос, скорее, из области программирования, но хотелось бы уточнить теоретические основы у гуру-админов. Задача Есть серверное приложение, предоставляющее клиентам некоторые свои сервисы. Сейчас клиенты авторизуются через логин/пароль. Серверное приложение держит список логинов и назначенные им полномочия (доступные сервисы). Требуется модернизировать эту схему так, чтобы серверное приложение могло идентифицировать пользователя, авторизовавшегося в домене. То есть имеем традиционную тройственную схему: домен-контроллер - клиент - сервер приложений. Клиент обращается к серверу приложений через WinSockеt. В литературе все красиво написано: Есть SID (пользователя/группы/компа), есть Access Token, который пользователь получает при входе и далее предоставляет его всем и везде для олицетворения себя любимого. К сожалению, на практике не так все красиво (или я просто не туда копаю). Возникает ряд вопросов 1. Как? Как передается Access Token от клиента к серверу приложений? Или как на сервере приложений получить Access Token клиента? 2. Можно считать на кленте его SID, передать его серверу приложений и он уже по этому SID-у раскрутит все группы и привелегии. Но! Насколько уникальна комбинация "Имя домена + SID пользователя"? То есть не возникнет ли ситуации, когда клиент Вася авторизуется в домене "Домен.com" где у него есть свой "SID1", далее он "стучится" на сервер приложений и передает ему всю эту информацию. Сервер приложений реально расположен в где-нибудь другой стране, но его домен совершенно случайно тоже называется "Домен.com", он по полученному SID1 пытается определить пользователя в своем "Домен.com" - и, о чюдо!, есть такой пользователь и он совершенно случайно тоже Вася. Мы его пускаем, но он реально не тот Вася. 3. Исходя из ситуации в вопросе 2: Как 100% точно определить, находятся ли мой сервер приложений и пытающийся подконнектиться клиент в рамках одного домена (леса доменов) или это просто может оказаться случайное совпадение имен доменов? 4. Или, может, вообще все не так? Истина где-то рядом... Вариант 2 мне вообще не нравиться, так как не безопасен (возможна подмена своего SIDа чьим-то чужим). Спасибо всем за то, что дочитали сей пост до конца! Заранее благодарен за ответы и тыканье носом в мануалы! Всех с наступающим Новым годом! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2010, 12:00 |
|
||
|
Вопрос по теории авторизации на сервере приложений внутри домена
|
|||
|---|---|---|---|
|
#18+
MustDie, msdn+WinAPI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2010, 12:13 |
|
||
|
Вопрос по теории авторизации на сервере приложений внутри домена
|
|||
|---|---|---|---|
|
#18+
это называется делегирование полномочий kerberos ... гуглитесь ... точно есть реальные описания например для IIS->MSSQL ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2010, 22:17 |
|
||
|
Вопрос по теории авторизации на сервере приложений внутри домена
|
|||
|---|---|---|---|
|
#18+
Biz©это называется делегирование полномочий kerberos ... гуглитесь ... точно есть реальные описания например для IIS->MSSQL ... 1. Ну... до делегирования тама как до небес. Делегирование, схематично, = клиент->промежуточный сервер->целевой сервер. 2. А у тредстартера тривиальная схема клиент->сервер. 3. Есть два варианта: a) перейти на NamedPipes и пользовать встроенную систему авторизации Windows не задумываясь; б) разобраться с Trusted Authentication для домена. http://technet.microsoft.com/en-us/library/bb742535.aspx Пример, использующий обе схемы, MS SQL сервер. 4. Придумывать собственную систему можно, но не очень продуктивно. Сложное это дело и долгое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2010, 07:00 |
|
||
|
Вопрос по теории авторизации на сервере приложений внутри домена
|
|||
|---|---|---|---|
|
#18+
aleks2Biz©это называется делегирование полномочий kerberos ... гуглитесь ... точно есть реальные описания например для IIS->MSSQL ... 1. Ну... до делегирования тама как до небес. Делегирование, схематично, = клиент->промежуточный сервер->целевой сервер. 2. А у тредстартера тривиальная схема клиент->сервер. то, что хочет автор (отказ от внутренней аутентикации) частенько перерождается в трёхзвенку с отказом и от внутренней авторизации и тут делегирования не избежать ... впрочем с поправкой согласен ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2010, 13:31 |
|
||
|
Вопрос по теории авторизации на сервере приложений внутри домена
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за ответы! Направили в нужное русло (SSPI). Начитался, аж голова пухнет. Надеюсь, до делегирования не дойдет. Остановился на SSPI через WinSocks, - круче вроде не требуется. Кстати, наткнулся, может кому пригодиться - очень толково и наглядно этот процесс описан в книге Рихтера Дж. и Кларка Д.Д. - "Программирование серверных приложений". К ней есть диск с примерами. Также есть хорошие примеры в SDK (...\Microsoft SDK\samples\security\SSPI\). Глубоко не копал, но почему-то пакет безопасности (security package) Kerberos не инициализируется на клиентской машине под XP sp2 (вируталка). Не понял пока, с чем это связано. NTLM - нормально и Negotiate нормально. Где-то читал, что Negotiate включает в себя и Kerberos и NTLM. То есть можно его использовать и не париться, а он сам разберется? Еще раз спасибо за ответы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2011, 18:19 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=37043164&tid=1498791]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 329ms |

| 0 / 0 |
