![]() |
|
Модераторы: feodorv |
![]()
|
|
| Patjomkin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
Здравствуйте. Передо мной стоит следующая задача: нужно написать клиент-сервер, с возможностью авторизации клиента "tr" на сервере "tr" используя windows аутентификацию: 1) используя текущий логин и пароль (если компьютер входит в тот домен, в котором работает "tr" сервер) и 2) используя вводимые пользователем логин, пароль и домен (если машина не входит в данный домен). Аналогичная авторизации производится в довольно известном продукте - Traffic Inspector.
Задача для меня новая (не приходилось сталкиваться с windows аутентификацией), хотя и интересная, но времени как бы не очень много на реализацию этих функций. Может кто сталкивался с такой задачей или может объяснить или намекнуть как грамотно реализовать её ... где порыться, чего почитать... Буду очень обязан любой помощи. PS: поиском пользоваться умею ... походу в этот раз не повезло. |
|||
|
||||
| Pulse69 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 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 Там в разделе Using Authentification->Using SSPI есть пример WINSOCK-клиента и WINSOCK-сервера, которые аутентифицируются с помощью SSPI. Эти примеры как раз для использования текущей учётной записи. Чтобы использовать указанные имя пользователя, домен и пароль, нужно на стороне клиента, при вызове функции AcquireCredentialsHandle, в параметре pAuthData передать указатель на структуру SEC_WINNT_AUTH_IDENTITY, в которой нужно указать домен, имя пользователя и его пароль. Естественно, так же можно поступить и на стороне сервера, только мысла в этом нет. Да, ещё важно не забыть, что по умолчанию в доменах Windows применяется Kerberos-протокол аутентификации. Для того, чтобы всё прошло корректно, для учётной записи, под которой запускается сервер, нужно создать SPN. Именно это значение должно указываться на стороне клиента в функции InitializeSecurityContext в параметре pszTargetName. Обычно, это делается с помощью программы setspn.exe --------------------
Ctrl+Alt+Reset |
|||
|
||||
| Patjomkin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
Pulse69, спасибо большое .. загрузка 100% оказывается я вообще не в курсе этой темы
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |