Функция SaslAcceptSecurityContext (sspi.h)
Функция SaslAcceptSecurityContext создает стандартный вызов функции AcceptSecurityContext (General)интерфейса поставщика поддержки безопасности и включает создание файлов cookie сервера SASL.
Синтаксис
SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
[in] PCredHandle phCredential,
[in, optional] PCtxtHandle phContext,
[in] PSecBufferDesc pInput,
[in] unsigned long fContextReq,
[in] unsigned long TargetDataRep,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
Параметры
[in] phCredential
Дескриптор учетных данных сервера. Сервер вызывает функцию AcquireCredentialsHandle с установленным флагом INBOUND для получения этого дескриптора.
[in, optional] phContext
Указатель на структуру CtxtHandle . При первом вызове AcceptSecurityContext (General) этот указатель имеет значение NULL. При последующих вызовах phContext — это дескриптор частично сформированного контекста, который был возвращен в параметре phNewContext при первом вызове.
[in] pInput
Указатель на структуру SecBufferDesc , созданную вызовом клиента функции InitializeSecurityContext (General), содержащей дескриптор входного буфера.
ДЛЯ SASL требуется один буфер типа SECBUFFER_TOKEN. Буфер пуст для первого вызова функции AcceptSecurityContext (general) и содержит ответ на запрос, полученный от клиента для второго вызова.
[in] fContextReq
Битовые флаги, указывающие атрибуты, необходимые серверу для установления контекста. Битовые флаги можно объединять с помощью побитовых операций ИЛИ . В следующей таблице приводятся возможные значения.
[in] TargetDataRep
Указывает представление данных, например упорядочение байтов, в целевом объекте. Это значение может быть SECURITY_NATIVE_DREP или SECURITY_NETWORK_DREP.
[out] phNewContext
Указатель на структуру CtxtHandle . При первом вызове AcceptSecurityContext (General) этот указатель получает новый дескриптор контекста. При последующих вызовах phNewContext может совпадать с дескриптором, указанным в параметре phContext .
[in, out] pOutput
Указатель на структуру SecBufferDesc , содержащую дескриптор выходного буфера. Этот буфер отправляется клиенту для ввода в дополнительные вызовы InitializeSecurityContext (Общие). Выходной буфер может быть создан, даже если функция возвращает SEC_E_OK. Любой созданный буфер должен быть отправлен обратно в клиентское приложение.
[out] pfContextAttr
Указатель на переменную, которая получает набор битовых флагов, указывающих атрибуты установленного контекста. Описание различных атрибутов см. в разделе Требования к контексту. Флаги, используемые для этого параметра, имеют префикс ASC_RET, например ASC_RET_DELEGATE.
Не проверка атрибутов, связанных с безопасностью, до тех пор, пока не будет успешно выполнен окончательный вызов функции. Флаги атрибутов, не связанные с безопасностью, такие как флаг ASC_RET_ALLOCATED_MEMORY, можно проверить перед окончательным возвратом.
[out, optional] ptsExpiry
Указатель на структуру TimeStamp , которая получает время окончания срока действия контекста. Рекомендуется, чтобы пакет безопасности всегда возвращал это значение в местное время.
Возвращаемое значение
Если вызов выполнен успешно, эта функция возвращает SEC_E_OK. В следующей таблице показаны некоторые возможные значения, возвращаемые сбоем.
Код возврата | Описание |
---|---|
|
Обработка authz запрещена. |
|
Недостаточно памяти для выполнения запроса. |
|
В параметре pOutput буфер маркера отсутствует, или сообщение не удалось расшифровать. |
Комментарии
Определяется последний вызов функции AcceptSecurityContext (General), которая возвращает SEC_E_OK. При создании возвращаемого маркера обработка SASL приостанавливается на один круговой путь обратно клиенту, чтобы разрешить обработку окончательного маркера. После завершения обмена SEC_E_CONTINUE_NEEDED возвращается в приложение с дополнительным файлом cookie сервера SASL, зашифрованным с помощью функций сообщений SSPI. Исходный файл cookie сервера указывает, поддерживаются ли INTEGRITY и PRIVACY. Этот исходный файл cookie сервера обрабатывается клиентом, и клиент возвращает файл cookie клиента, чтобы указать, какие службы запрашивает клиент. Затем файл cookie клиента расшифровывается сервером, и конечные службы определяются для следующего трафика сообщений.
Требования
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | sspi.h (включая Security.h) |
Библиотека | Secur32.lib |
DLL | Secur32.dll |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по