Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация авторизации в домене, клиент-сервер-домен-авторизация 
:(
    Опции темы
Patjomkin
Дата 9.4.2008, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



Здравствуйте. Передо мной стоит следующая задача: нужно написать клиент-сервер, с возможностью авторизации клиента "tr" на сервере "tr" используя windows аутентификацию: 1) используя текущий логин и пароль (если компьютер входит в тот домен, в котором работает "tr" сервер) и  2) используя вводимые пользователем логин, пароль и домен (если машина не входит в данный домен). Аналогичная авторизации производится в довольно известном продукте - Traffic Inspector.
 Задача для меня новая (не приходилось сталкиваться с windows аутентификацией), хотя и интересная, но времени как бы не очень много на реализацию этих функций. 
Может кто сталкивался с такой задачей или может объяснить или намекнуть как грамотно реализовать её ... где порыться, чего почитать... Буду очень обязан любой помощи.
PS: поиском пользоваться умею ... походу в этот раз не повезло.

PM MAIL   Вверх
Pulse69
Дата 10.4.2008, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 28.4.2006
Где: Хабаровск

Репутация: нет
Всего: 10



В Windows это реализуется посредством Security Service Provider Interface (SSPI). Вообще, тема довольно обширная, так что просто на этот вопрос ответить не выйдет.
Для начала, надо прочитать раздел Authentification из Platform SDK.
http://msdn2.microsoft.com/en-us/library/a...735(VS.85).aspx
Если время поджимает, сразу переходим в раздел Using SSPI smile

Там в разделе Using Authentification->Using SSPI есть пример WINSOCK-клиента и WINSOCK-сервера, которые аутентифицируются с помощью SSPI. Эти примеры как раз для использования текущей учётной записи.
Чтобы использовать указанные имя пользователя, домен и пароль, нужно на стороне клиента, при вызове функции AcquireCredentialsHandle, в параметре pAuthData передать указатель на структуру SEC_WINNT_AUTH_IDENTITY, в которой нужно указать домен, имя пользователя и его пароль. Естественно, так же можно поступить и на стороне сервера, только мысла в этом нет.

Да, ещё важно не забыть, что по умолчанию в доменах Windows применяется Kerberos-протокол аутентификации. Для того, чтобы всё прошло корректно, для учётной записи, под которой запускается сервер, нужно создать SPN. Именно это значение должно указываться на стороне клиента  в функции InitializeSecurityContext в параметре pszTargetName. Обычно, это делается с помощью программы setspn.exe

--------------------
Ctrl+Alt+Reset 
PM MAIL   Вверх
Patjomkin
Дата 10.4.2008, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



Pulse69, спасибо большое .. загрузка 100% оказывается я вообще не в курсе этой темы smile) Зато теперь ясно в чём разбираться нужно. Пошёл рыться в документации. Ещё раз спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0380 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.