Поделиться через


Инициализация контекста клиента

Чтобы установить безопасное подключение, клиент получает исходящие учетные данные перед отправкой запроса проверки подлинности на сервер. Сервер создает контекст безопасности для клиента из запроса проверки подлинности. Существует две клиентские функции SSPI, участвующие в настройке проверки подлинности:

Код этого процесса можно увидеть в функции GenClientContext в using SSPI с клиентом сокетов Windows.

Если клиентской программе необходимо использовать учетные данные в дополнение к собственным учетным данным входа, таким как другое имя пользователя, доменное имя и пароль, он предоставляет их в вызове AcquireCredentialsHandle со структурой SEC_WINNT_AUTH_IDENTITY, указывающей дополнительные учетные данные. Дополнительные сведения о функциях учетных данных см. в управления учетными данными.

Заметка

Флаги элемент структуры SEC_WINNT_AUTH_IDENTITY можно задать для SEC_WINNT_AUTH_IDENTITY_ANSI, если строки в структуре — ASCI или OEM. Строки ANSI можно использовать с элементом флагов структуры SEC_WINNT_AUTH_IDENTITY значение SEC_WINNT_AUTH_IDENTITY_UNICODE, если они сначала преобразуются в Юникод с помощью функции MultiByteToWideChar.

 

Чтобы инициировать первую часть проверки подлинности, клиент вызывает initializeSecurityContext (General), чтобы получить начальный маркер безопасности, который будет отправлен в сообщении запроса подключения на сервер.

Клиент использует сведения о маркере безопасности, полученные в дескрипторе выходного буфера, чтобы создать сообщение для отправки на сервер. Построение сообщения с точки зрения размещения различных буферов и т. д., является частью протокола приложения и должно быть понято обеими сторонами.

Клиент проверяет состояние возврата из InitializeSecurityContext (General), чтобы узнать, завершится ли проверка подлинности в одном вызове. Состояние возврата SEC_I_CONTINUE_NEEDED указывает, что протокол безопасности требует нескольких сообщений проверки подлинности. Дополнительные сведения о функциях контекста см. в управления контекстами.