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


Функции проверки подлинности

Функции проверки подлинности классифицируются в соответствии с использованием следующим образом:

Функции SSPI

Функции интерфейса поставщика поддержки безопасности (SSPI) делятся на следующие основные категории.

  • Управление пакетами

    Функции, которые перечисляют доступные пакеты безопасности и выбирают пакет.

  • Управление учетными данными

    Функции, которые создают и работают с дескрипторами учетных данных субъектов.

  • Управление контекстом

    Функции, использующие учетные данные, обрабатываются для создания контекста безопасности.

  • Поддержка сообщений

    Функции, использующие контексты безопасности для обеспечения целостности сообщений и конфиденциальности во время обмена сообщениями через защищенное подключение. Целостность достигается путем проверки подписи сообщений и подписи. Конфиденциальность достигается с помощью шифрования сообщений и расшифровки.

Управление пакетами

Функции управления пакетами SSPI инициируют пакет безопасности, перечисляют доступные пакеты и запрашивают атрибуты пакета безопасности. Следующие функции SSPI предоставляют службы управления для пакетов безопасности.

Function Description
ПеречислениеSecurityPackages Перечисляет доступные пакеты безопасности и их возможности.
InitSecurityInterface Извлекает указатель на таблицу отправки поставщика поддержки безопасности (SSP).
QuerySecurityPackageInfo Извлекает сведения о указанном пакете безопасности. Эти сведения включают границы размеров сведений проверки подлинности, учетных данных и контекстов.

Управление учетными данными

Функции управления учетными данными SSPI предоставляют дескриптор учетных данных, ссылку на непрозрачный объект безопасности для доступа к субъекту. Объект безопасности непрозрачн, так как приложение имеет доступ только к дескриптору, а не к фактическому содержимому структуры.

Все ссылки на содержимое контекста учетных данных проходят через дескриптор объекта, а пакет безопасности разыменовывают дескриптор для доступа к конкретным учетным данным. Дескриптор учетных данных — это 64-разрядное значение между {0x00000000, 0x00000000} и {0xFFFFFFFF, 0xFFFFFFFE}.

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

Функции управления учетными данными также освобождают маркеры учетных данных и запрашивают атрибуты учетных данных. В настоящее время имя, связанное с учетными данными, является единственным атрибутом, который можно запросить.

Следующие функции используются с управлением учетными данными.

Function Description
AcquireCredentialsHandle (General) Получает дескриптор для предварительно созданных учетных данных указанного субъекта.
ExportSecurityContext Экспортирует контекст безопасности в буфер контекста.
FreeCredentialsHandle Освобождает дескриптор учетных данных и связанные ресурсы.
ImportSecurityContext Импортирует контекст безопасности, экспортируемый с помощью ExportSecurityContext в текущий процесс.
QueryCredentialsAttributes Извлекает атрибуты учетных данных, например имя, связанное с учетными данными.

Управление контекстом

Функции управления контекстом SSPI создают и используют контексты безопасности.

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

Контексты безопасности — это непрозрачные объекты безопасности. Сведения в контексте безопасности недоступны для приложения. Функции управления контекстом создают и используют дескриптор контекста, а пакет безопасности разыменовывает дескриптор контекста для доступа к содержимому безопасности.

Дескриптор контекста — это 64-разрядное значение между {0x00000000, 0x00000000} и {0xFFFFFFFF 0xFFFFFFFE}.

Следующие функции используются с управлением контекстом.

Function Description
AcceptSecurityContext (General) Используется сервером для создания контекста безопасности на основе непрозрачного сообщения, полученного от клиента.
ApplyControlToken Применяет дополнительное сообщение безопасности к существующему контексту безопасности.
CompleteAuthToken Завершает маркер проверки подлинности. Эта функция используется протоколами, такими как DCE, которые должны пересмотреть сведения о безопасности после обновления некоторых параметров сообщения в приложении транспорта.
DeleteSecurityContext Освобождает контекст безопасности и связанные ресурсы.
FreeContextBuffer Освобождает буфер памяти, выделенный пакетом безопасности.
ОлицетворенияSecurityContext Олицетворение контекста безопасности, который будет отображаться как клиент в системе.
InitializeSecurityContext (General) Используется клиентом для запуска контекста безопасности путем создания непрозрачного сообщения, передаваемого серверу.
QueryContextAttributes (общие) Позволяет транспортному приложению запрашивать пакет безопасности для определенных атрибутов контекста безопасности.
QuerySecurityContextToken Получает маркер доступа для контекста безопасности клиента и напрямую использует его.
SetContextAttributes Позволяет транспортному приложению задавать атрибуты контекста безопасности для пакета безопасности. Эта функция поддерживается только пакетом безопасности Schannel.
RevertSecurityContext Позволяет пакету безопасности прекратить олицетворение вызывающего объекта и восстановить собственный контекст безопасности.

Поддержка сообщений

Функции поддержки сообщений SSPI позволяют приложению передавать и получать сообщения, устойчивые к незаконному изменению, а также шифровать и расшифровывать сообщения. Эти функции работают с одним или несколькими буферами, содержащими сообщение и контекстом безопасности, созданным функциями управления контекстом. Поведение функций отличается в зависимости от того, используется ли контекст подключения, диаграммы данных или потока. Описание этих различий см. в разделе "Семантика контекста SSPI".

Следующие функции обеспечивают поддержку безопасности сообщений.

Function Description
РасшифровкаMessage (общие) Расшифровывает зашифрованное сообщение с помощью ключа сеанса из контекста безопасности.
EncryptMessage (общие) Шифрует сообщение с помощью ключа сеанса из контекста безопасности.
MakeSignature Создает криптографическую контрольную сумму сообщения, а также содержит сведения о последовательности для предотвращения потери или вставки сообщений.
VerifySignature Проверяет подпись полученного сообщения, подписанного отправителем с помощью функции MakeSignature.

Функции, реализованные SSP/APS

Следующие функции реализуются пакетами безопасности, содержащимися в пакетах проверки подлинности поставщика/поддержки безопасности (SSP/APS).

В следующих таблицах первый набор функций реализуется пакетами безопасности Windows XP SSP/AP. Второй набор функций реализуется только пакетами безопасности SSP/AP.

Локальный центр безопасности (LSA) обращается к этим функциям с помощью структуры SECPKG_FUNCTION_TABLE, предоставляемой функцией SpLsaModeInitialize sSP/AP.

Следующие функции реализуются всеми пакетами проверки подлинности.

Function Description
LsaApCallPackage Вызывается локальным центром безопасности (LSA), когда приложение входа с доверенным подключением к LSA вызывает функцию LsaCallAuthenticationPackage и указывает идентификатор пакета проверки подлинности.
LsaApCallPackagePassthrough Функция отправки запросов сквозного входа, отправляемая в функцию LsaCallAuthenticationPackage
LsaApCallPackageUntrusted Вызывается локальным центром безопасности (LSA), когда приложение с ненадежным подключением к LSA вызывает функцию LsaCallAuthenticationPackage и указывает идентификатор пакета проверки подлинности.
LsaApInitializePackage Вызывается один раз местным центром безопасности (LSA) во время инициализации системы, чтобы предоставить пакет проверки подлинности возможность инициализировать себя.
LsaApLogonTerminated Используется для уведомления пакета проверки подлинности при завершении сеанса входа. Сеанс входа завершается при удалении последнего маркера, ссылающегося на сеанс входа.
LsaApLogonUser Проверяет подлинность учетных данных входа пользователя.
LsaApLogonUserEx Проверяет подлинность учетных данных входа пользователя.
LsaApLogonUserEx2 Используется для проверки подлинности попытки входа пользователя на начальный вход пользователя. Новый сеанс входа устанавливается для пользователя, а сведения о проверке для пользователя возвращаются.

Следующие дополнительные функции реализуются пакетами безопасности SSP/AP.

Function Description
SpAcceptCredentials Вызывается локальным центром безопасности (LSA) для передачи пакета безопасности любых учетных данных, хранящихся для субъекта безопасности, прошедшего проверку подлинности.
SpAcceptLsaModeContext Функция диспетчеризации сервера, используемая для создания контекста безопасности, доступного серверу и клиенту.
SpAcquireCredentialsHandle Вызывается для получения дескриптора учетных данных субъекта.
SpAddCredentials Используется для добавления учетных данных для субъекта безопасности.
SpApplyControlToken Применяет маркер элемента управления к контексту безопасности. Эта функция в настоящее время не вызывается локальным центром безопасности (LSA).
SpDeleteContext Удаляет контекст безопасности.
SpDeleteCredentials Удаляет учетные данные из списка основных или дополнительных учетных данных пакета безопасности.
SpFreeCredentialsHandle Освобождает учетные данные, полученные путем вызова функции SpAcquireCredentialsHandle.
SpGetCredentials Извлекает учетные данные пользователя.
SpGetExtendedInformation Предоставляет расширенные сведения о пакете безопасности.
SpGetInfo Предоставляет общие сведения о пакете безопасности, например его имени и возможностях.
SpGetUserInfo Извлекает сведения о сеансе входа.
SPInitialize Вызывается один раз местным центром безопасности (LSA) для предоставления пакета безопасности с общими сведениями о безопасности и таблицей отправки функций поддержки.
SpInitLsaModeContext Функция диспетчеризации клиента, используемая для установления контекста безопасности между сервером и клиентом.
SpQueryContextAttributes Извлекает атрибуты контекста безопасности.
SpQueryCredentialsAttributes Извлекает атрибуты для учетных данных.
SpSaveCredentials Сохраняет дополнительные учетные данные для объекта пользователя.
SpSetExtendedInformation Задает расширенные сведения о пакете безопасности.
SpShutdown Выполняет любую очистку, необходимую до выгрузки SSP/AP.
SslCrackCertificate Возвращает структуру X509Certificate со сведениями, содержащимися в указанном BLOB-объекте сертификата.
SslEmptyCache Удаляет указанную строку из кэша Schannel.
SslFreeCertificate Освобождает сертификат, выделенный предыдущим вызовом функции SslCrackCertificate .

Функции, реализованные sSP/APS в пользовательском режиме

Следующие функции реализуются пакетами проверки подлинности поставщика/поддержки безопасности (SSP/APS), которые можно загрузить в клиентские и серверные приложения.

SSP/AP указывает, что он реализует функции пользовательского режима, возвращая значение TRUE в параметре MappedContext функций SpInitLsaModeContext и SpAcceptLsaModeContext. Функция SpInitLsaModeContext используется клиентом приложения уровня транспорта, а spAcceptLsaModeContext используется серверной стороной.

Загрузка SSP/AP в клиентский процесс или серверный процесс обрабатывается библиотекой DLL поставщика безопасности либо Security.dll или Secur32.dll. БИБЛИОТЕКА DLL поставщика безопасности загружает SSP/AP путем поиска адреса функции SpUserModeInitialize , реализованной поставщиком услуг или API, и вызывая ее. Эта функция возвращает набор таблиц, содержащих указатели на функции пользовательского режима, реализованные в каждом пакете безопасности.

После загрузки SSP/AP в клиент или серверный процесс локальный центр безопасности (LSA) будет копировать сведения о контексте безопасности (возвращенные spInitLsaModeContext или SpAcceptLsaModeContext) и любые дополнительные контекстные данные, связанные с процессом, и вызвать функцию spInitUserModeContext пакета безопасности.

Клиентские и серверные приложения получают доступ к функциям пользовательского режима, вызывая функции интерфейса поставщика поддержки безопасности (SSPI). Функции SSPI сопоставляются библиотекой DLL поставщика безопасности с помощью SECPKG_USER_FUNCTION_TABLE , предоставленной пакетом.

Function Description
SpCompleteAuthToken Завершает маркер проверки подлинности.
Реализует функцию SSPI CompleteAuthToken .
SpDeleteContext Удаляет контекст безопасности.
Реализует функцию SSPI DeleteSecurityContext .
SpExportSecurityContext Экспорт контекста безопасности в другой процесс.
Реализует функцию SSPI ExportSecurityContext .
SpFormatCredentials Форматирует учетные данные для хранения в объекте пользователя.
SpGetContextToken Получает маркер для олицетворения.
Используется функцией SSPI ImpersonateSecurityContext .
SpImportSecurityContext Импортирует контекст безопасности из другого процесса.
Реализует функцию SSPI ImportSecurityContext .
SpInitUserModeContext Создает контекст безопасности в пользовательском режиме из упакованного контекста локального центра безопасности (LSA).
SpInstanceInit Инициализирует пакеты безопасности в режиме пользователя в SSP/AP.
SpMakeSignature Создает сигнатуру на основе указанного контекста сообщения и безопасности.
Реализует функцию SSPI MakeSignature .
SpMarshallSupplementalCreds Преобразует дополнительные учетные данные из общедоступного формата в формат, подходящий для локальных вызовов процедур.
SpQueryContextAttributes Извлекает атрибуты контекста безопасности.
Реализует функцию SSPI QueryContextAttributes (Общие).
SpSealMessage Шифрует сообщение, обменяемое между клиентом и сервером.
Реализует функцию SSPI EncryptMessage (General).
SpUnsealMessage Расшифровывает сообщение, которое ранее было зашифровано с помощью функции SpSealMessage.
Реализует функцию decryptMessage (General) SSPI.
SpUserModeInitialize Вызывается при загрузке dll пакета проверки подлинности поставщика/поддержки безопасности (SSP/AP) в пространство процесса клиентского или серверного приложения. Эта функция предоставляет таблицы SECPKG_USER_FUNCTION_TABLE для каждого пакета безопасности в библиотеке DLL SSP/AP.
SpVerifySignature Проверяет правильность полученного сообщения в соответствии с подписью.
Реализует функцию SSPI VerifySignature .

Функции LSA, вызываемые SSP/APS

Локальный центр безопасности (LSA) предоставляет следующие функции для пакетов безопасности, развернутых в пакетах проверки подлинности поставщика/поддержки безопасности (SSP/APS). Функции доступны в структуре LSA_SECPKG_FUNCTION_TABLE и могут вызываться во время загрузки SSP/AP в пространство процессов LSA. Для всех APS доступны следующие функции.

Function Description
AddCredential Добавляет учетные данные пользователя.
AllocateClientBuffer Выделяет память в адресном пространстве клиента пакета.
AllocateLsaHeap Выделяет память в куче. Ожидается, что некоторые сведения, передаваемые в LSA, будут выделены с помощью этой функции.
CopyFromClientBuffer Копирует сведения из адресного пространства клиентского процесса в буфер в текущем процессе.
CopyToClientBuffer Копирует сведения из буфера в текущем процессе в адресное пространство клиентского процесса.
CreateLogonSession Создает сеансы входа.
DeleteCredential Удаляет учетные данные пользователя.
DeleteLogonSession Удаляет сеанс входа В СИСТЕМУ LSA.
FreeClientBuffer Освобождает память в адресном пространстве клиента пакета.
FreeLsaHeap Отменяет выделение памяти кучи, ранее выделенной ВыделеннымLsaHeap.
GetCredentials Извлекает учетные данные, связанные с сеансом входа.

Следующие функции доступны для SSP/APS.

Function Description
AllocateSharedMemory Выделяет раздел общей памяти.
AuditAccountLogon Создает записи аудита для попыток входа.
AuditLogon Создает путь аудита для сеанса входа.
CallPackage Вызывает пакет.
CallPackageEx Вызывает другой пакет.
CallPackagePassthrough Вызывает один пакет безопасности из другого.
CancelNotification Отменяет уведомление для специальных событий.
ClientCallback Позволяет пакету безопасности вызывать функцию в процессе клиента.
Прототип функции ClientCallback см. в разделе "Прототип функции ClientCallback".
CloseSamUser Закрывает дескриптор записи базы данных Диспетчера учетных записей безопасности.
ConvertAuthDataToToken Преобразует данные авторизации в маркер пользователя.
CrackSingleName Преобразует имя из одного формата в другой.
CreateSharedMemory Создает раздел памяти, общий доступ между клиентами и SSP/AP.
CreateThread Создает новый поток.
CreateToken Создает маркер.
DeleteSharedMemory Удаляет раздел общей памяти.
ДубликатHandle Дублирует дескриптор.
FreeReturnBuffer Освобождает буфер, выделенный LSA.
FreeSharedMemory Освобождает раздел общей памяти.
GetAuthDataForUser Извлекает данные авторизации для учетной записи пользователя.
GetCallInfo Извлекает сведения о последнем вызове функции.
GetClientInfo Извлекает сведения о процессе пользователя пакета безопасности.
GetUserAuthData Возвращает данные авторизации для пользователя.
GetUserCredentials Еще не реализовано.
ОлицетворенияClient Вызывается пакетами безопасности для олицетворения пользователя пакета.
MapBuffer Сопоставляет структуру SecBuffer с адресным пространством пакета проверки подлинности поставщика/поддержки безопасности (SSP/AP).
OpenSamUser Извлекает дескриптор учетной записи пользователя в базе данных диспетчера учетных записей безопасности (SAM).
RegisterNotification Предоставляет механизм, в котором пакет безопасности уведомляется. Уведомление может происходить через фиксированные интервалы, когда объект события сигнализирует или во время определенных системных событий.
SaveSupplementalCredentials Является устаревшей. Не используйте.
ВыгрузкаPackage Выгружает пакет проверки подлинности поставщика/поддержки безопасности (SSP/AP).
UpdateCredentials Предоставляет механизм для одного пакета безопасности для уведомления других пакетов о том, что учетные данные для сеанса входа были изменены.

Функции LSA, вызываемые SSP/APS в пользовательском режиме

Пакет безопасности в пакете проверки подлинности поставщика/поддержки безопасности (SSP/AP), выполняемом в пользовательском режиме, может использовать указатели в таблице SECPKG_DLL_FUNCTIONS для доступа к следующим функциям.

Function Состояние PSDK
ВыделениеHeap Выделяет память для буферов, возвращаемых локальному центру безопасности (LSA).
FreeHeap Освобождает память, которая ранее была выделена с помощью AllocateHeap.
RegisterCallback Регистрирует функции обратного вызова в режиме пользователя.

Функции экспорта GINA

Библиотека DLL GINA должна экспортировать следующие функции.

Примечание.

Библиотеки DLL GINA игнорируются в Windows Vista.

Function Description
WlxActivateUserShell Активирует программу оболочки пользователя.
WlxDisplayLockedNotice Позволяет GINA отображать сведения о блокировке, например, кто заблокировал рабочую станцию и когда он был заблокирован.
WlxDisplaySASNotice Winlogon вызывает эту функцию, если пользователь не вошел в систему.
WlxDisplayStatusMessage Winlogon вызывает эту функцию, когда библиотека DLL GINA должна отображать сообщение.
WlxGetConsoleSwitchCredentials Winlogon вызывает эту функцию для чтения учетных данных пользователя, вошедшего в систему, для прозрачного переноса их в целевой сеанс.
WlxGetStatusMessage Winlogon вызывает эту функцию, чтобы получить сообщение о состоянии, отображаемое библиотекой DLL GINA.
WlxInitialize Winlogon вызывает эту функцию один раз для каждой станции окон, присутствующих на компьютере. В настоящее время операционная система поддерживает одну станцию окон на рабочую станцию.
WlxIsLockOk Winlogon вызывает эту функцию перед попыткой заблокировать рабочую станцию.
WlxIsLogoffOk Winlogon вызывает эту функцию, когда пользователь инициирует операцию выхода.
WlxLoggedOnSAS Winlogon вызывает эту функцию при получении события безопасной последовательности внимания (SAS), когда пользователь вошел в систему, и рабочая станция не заблокирована.
WlxLoggedOutSAS Winlogon вызывает эту функцию, когда она получает событие безопасной последовательности внимания (SAS), пока пользователь не вошел в систему.
WlxLogoff Winlogon вызывает эту функцию, чтобы уведомить GINA о операции выхода на этой рабочей станции, что позволяет GINA выполнять любые операции выхода, которые могут потребоваться.
WlxNegotiate Функция WlxNegotiate должна быть реализована заменой библиотекой DLL GINA. Это первый вызов Winlogon в библиотеку GINA DLL. WlxNegotiate позволяет GINA проверить, поддерживает ли она установленную версию Winlogon.
WlxNetworkProviderLoad Winlogon вызывает эту функцию для сбора допустимых сведений о проверке подлинности и идентификации.
WlxRemoveStatusMessage Winlogon вызывает эту функцию, чтобы сообщить библиотеке DLL GINA прекратить отображение сообщения о состоянии.
WlxScreenSaverNotify Winlogon вызывает эту функцию непосредственно перед активацией средства сохранения экрана, позволяя GINA взаимодействовать с программой сохранения экрана.
WlxShutdown Winlogon вызывает эту функцию непосредственно перед завершением работы, что позволяет GINA выполнять любые задачи завершения работы, такие как извлечение смарт-карты из средства чтения.
WlxStartApplication Winlogon вызывает эту функцию, когда системе требуется запустить приложение в контексте пользователя.
WlxWkstaLockedSAS Winlogon вызывает эту функцию, когда она получает последовательность безопасного внимания (SAS) и рабочая станция заблокирована.

Функции пользователя входа в систему

Следующие функции предоставляют возможность входа в систему пользователя.

Function Description
LogonUser Пытается войти на локальный компьютер.
LogonUserEx Пытается войти на локальный компьютер. Эта функция представляет собой расширенную версию функции LogonUser и извлекает сведения об идентификаторе безопасности пользователя (SID), профиле и квотах для входа.
LogonUserExW Функция LogonUserExW пытается войти пользователя на локальный компьютер. Эта функция не объявлена в общедоступном заголовке и не имеет связанной библиотеки импорта. Для динамической связи с Advapi32.dll необходимо использовать функции LoadLibrary и GetProcAddress.

Функции поддержки Winlogon

Библиотеки DLL GINA могут вызывать следующие функции поддержки Winlogon.

Примечание.

Библиотеки DLL GINA игнорируются в Windows Vista.

Function Вызывается GINA
WlxAssignShellProtection Вызывается GINA, чтобы назначить защиту программе оболочки нового пользователя, вошедшего в систему.
WlxChangePasswordNotify Вызывается GINA, чтобы указать, что он изменил пароль.
WlxChangePasswordNotifyEx Вызывается GINA, чтобы сообщить определенному поставщику сети (или всем поставщикам сети), что пароль изменился.
WlxCloseUserDesktop Вызывается GINA, чтобы закрыть альтернативный рабочий стол пользователя и очистить после закрытия рабочего стола.
WlxCreateUserDesktop Вызывается GINA для создания альтернативных рабочих столов приложений для пользователя.
WlxDialogBox Вызывается GINA для создания модального диалогового окна из шаблона диалогового окна.
WlxDialogBoxIndirect Вызывается GINA для создания модального диалогового окна из шаблона диалогового окна в памяти.
WlxDialogBoxIndirectParam Вызывается GINA для инициализации элементов управления диалогового окна, а затем создает модальное диалоговое окно из шаблона диалогового окна в памяти.
WlxDialogBoxParam Вызывается GINA для инициализации элементов управления диалогового окна, а затем создает модальное диалоговое окно из ресурса шаблона диалогового окна.
WlxDisconnect Вызывается заменой библиотеки DLL GINA, если службы терминалов включены. GINA вызывает эту функцию для отключения от сетевого сеанса служб терминалов.
WlxGetOption Вызывается GINA для получения текущего значения параметра.
WlxGetSourceDesktop Вызывается GINA, чтобы определить имя и дескриптор рабочего стола, который был текущим, прежде чем Winlogon переключился на рабочий стол Winlogon.
WlxMessageBox Вызывается GINA для создания, отображения и работы окна сообщения.
WlxQueryClientCredentials Вызывается заменой библиотеки DLL GINA, если службы терминалов включены. GINA вызывает эту функцию, чтобы получить учетные данные удаленных клиентов служб терминалов, которые не используют лицензию соединителя Интернета.
WlxQueryConsoleSwitchCredentials Вызывается GINA для чтения учетных данных, передаваемых из Winlogon временного сеанса в Winlogon конечного сеанса.
WlxQueryInetConnectorCredentials Вызывается заменой библиотеки DLL GINA, если службы терминалов включены. GINA вызывает эту функцию, чтобы определить, использует ли сервер терминала лицензирование соединителя Интернета и извлекает данные учетных данных.
WlxQueryTerminalServicesData Вызывается GINA для получения сведений о конфигурации пользователей служб терминалов после входа пользователя.
WlxSasNotify Вызывается GINA, чтобы уведомить Winlogon о событии безопасной последовательности внимания (SAS).
WlxSetContextPointer Вызывается GINA, чтобы указать указатель контекста, передаваемый Winlogon в качестве первого параметра для всех будущих вызовов функций GINA.
WlxSetOption Вызывается GINA, чтобы задать значение параметра.
WlxSetReturnDesktop Вызывается GINA, чтобы указать альтернативный рабочий стол приложения, на который Winlogon переключится, когда текущая функция обработки событий безопасности (SAS) завершена.
WlxSetTimeout Вызывается GINA, чтобы изменить время ожидания, связанное с диалоговым окном. Время ожидания по умолчанию — две минуты.
WlxSwitchDesktopToUser Вызывается GINA для переключения на рабочий стол приложения.
WlxSwitchDesktopToWinlogon Разрешает переключение библиотеки DLL GINA на рабочий стол Winlogon.
WlxUseCtrlAltDel Вызывается GINA, чтобы сообщить Winlogon использовать стандартное сочетание клавиш CTRL+ALT+DEL в качестве безопасной последовательности внимания (SAS).
WlxWin31Migrate Вызывается заменой библиотеки DLL GINA, если службы терминалов включены. GINA вызывает эту функцию, чтобы завершить настройку клиента служб терминалов.

Функции поставщика сети

В следующих разделах содержатся справочные сведения о функциях поставщика сети.

Раздел Описание
Функции, реализованные поставщиками сети Подробные сведения о функциях, которые могут быть реализованы сетевыми поставщиками.
Функции поддержки Сведения о функции, реализуемой операционной системой и вызываемой поставщиками сети.
Функции уведомлений о подключении Подробные функции, реализованные приложениями, которые должны получать уведомления от маршрутизатора нескольких поставщиков (MPR) при подключении или отключении сетевого ресурса.

Функции, реализованные поставщиками сети

Следующие функции можно реализовать поставщиками сети. Единственная функция, которую требуют поставщики сетей для поддержки, — NPGetCaps.

Function Description
NPAddConnection Подключает локальное устройство к сетевому ресурсу.
NPAddConnection3 Подключает локальное устройство к сетевому ресурсу.
NPCancelConnection Отключает сетевое подключение.
NPCloseEnum Закрывает перечисление.
NPDeviceMode Указывает родительское окно устройства. В этом окне имеются все диалоговые окна, исходящие из устройства.
NPDirectoryNotify Уведомляет сетевого поставщика определенных операций каталогов.
NPEnumResource Выполняет перечисление на основе дескриптора, возвращаемого NPOpenEnum.
NPFormatNetworkName Форматирует сетевое имя в формате, определенном поставщиком, для отображения в элементе управления.
NPGetCaps Возвращает сведения о том, какие службы поддерживаются в сети.
NPGetConnection Извлекает сведения о подключении.
NPGetConnection3 Извлекает сведения о сетевом подключении, даже если он в настоящее время отключен.
NPGetConnectionPerformance Возвращает сведения о ожидаемой производительности подключения, используемого для доступа к сетевому ресурсу. Запрос может быть только для сетевого ресурса, подключенного в данный момент.
NPGetDirectoryType Определяет тип сетевого каталога.
NPGetPropertyText Извлекает имена кнопок, добавляемых в диалоговое окно свойства для сетевого ресурса.
NPGetResourceInformation Отделяет часть сетевого ресурса, доступного через API WNet, от части, доступ к ней через API, относящиеся к типу ресурса.
NPGetResourceParent Извлекает родительский элемент указанного сетевого ресурса в иерархии обзора.
NPGetUniversalName Извлекает универсальное имя сетевого ресурса. Функция NPGetUniversalName может получить это универсальное имя в формате UNC или в более старом формате удаленного имени.
NPGetUser Извлекает значение текущего имени пользователя по умолчанию или имени пользователя, используемого для установления сетевого подключения.
NPOpenEnum Открывает перечисление сетевых ресурсов или существующих подключений. Чтобы получить допустимый дескриптор перечисления, необходимо вызвать функцию NPOpenEnum.
NPPropertyDialog Вызывается, когда пользователь нажимает кнопку, добавленную с помощью функции NPPropertyDialog. Функция NPPropertyDialog вызывается только для свойств сети файлов и каталогов.
NPSearchDialog Позволяет поставщикам сети предоставлять собственную форму просмотра и поиска, помимо иерархического представления, представленного в диалоговом окне "Подключение ".

Функции поддержки

Следующая функция реализуется операционной системой и может вызываться поставщиками сети.

Function Description
WNetSetLastError Задает расширенные сведения об ошибке. Сетевые поставщики должны вызывать эту функцию вместо SetLastError.

Функции уведомлений о подключении

Следующие функции реализуются приложениями, которые должны получать уведомления от маршрутизатора нескольких поставщиков (MPR) при подключении или отключении сетевого ресурса. Дополнительные сведения о написании приложения, получающего такие уведомления, см. в разделе "Получение уведомлений о подключении".

Function Description
AddConnectNotify Вызывается до и после каждой операции добавления подключения (WNetAddConnection, WNetAddConnection2 и WNetAddConnection3).
CancelConnectNotify Вызывается до и после каждой операции отмены подключения (WNetCancelConnection или WNetCancelConnection2).

Функции входа В систему LSA

Следующие функции проверки подлинности локального центра безопасности (LSA) проходят проверку подлинности и вход пользователей, а также предоставляют сведения о сеансе входа.

Function Description
LsaCallAuthenticationPackage Запрашивает службу для конкретного пакета из пакета проверки подлинности.
LsaConnectUntrusted Устанавливает ненадежное подключение к LSA.
LsaDeregisterLogonProcess Отключается от LSA и освобождает ресурсы, выделенные контексту вызывающего объекта.
LsaEnumerateLogonSessions Извлекает локальные уникальные идентификаторы (LUID) для существующих сеансов входа.
LsaFreeReturnBuffer Освобождает память, выделенную для буфера, возвращенного вызывающей объекту.
LsaGetLogonSessionData Извлекает сведения об указанном сеансе входа.
LsaLogonUser Выполняет проверку подлинности данных входа пользователей в сохраненные учетные данные. В случае успешного выполнения создается новый сеанс входа и возвращается маркер пользователя.
LsaLookupAuthenticationPackage Получает уникальный идентификатор пакета проверки подлинности.
LsaQueryDomainInformationPolicy Извлекает сведения о домене из объекта Policy .
LsaQueryForestTrustInformation Извлекает сведения о доверии леса для указанного объекта TrustedDomain локального центра безопасности.
LsaRegisterLogonProcess Устанавливает подключение к серверу LSA и проверяет, является ли вызывающий объект приложением входа.
LsaSetDomainInformationPolicy Задает сведения о домене для объекта Policy .
LsaSetForestTrustInformation задает сведения о доверии леса для указанного объекта TrustedDomain локального центра безопасности.

Функции, реализованные пакетами проверки подлинности

Пользовательские пакеты проверки подлинности должны реализовывать эти функции, которые вызываются локальным центром безопасности (LSA). Эти функции реализуются пакетами проверки подлинности MSV1_0 и Kerberos, предоставляемыми корпорацией Майкрософт.

Function Description
LsaApCallPackage Вызывается при указании идентификатора пакета проверки подлинности в вызове LsaCallAuthenticationPackage приложением, использующим доверенное подключение.
Эта функция позволяет приложениям входа напрямую взаимодействовать с пакетами проверки подлинности.
LsaApCallPackagePassthrough Вызывается, когда идентификатор пакета проверки подлинности был указан в вызове LsaCallAuthenticationPackage для запроса сквозного входа.
LsaApCallPackageUntrusted Вызывается при указании идентификатора пакета проверки подлинности в вызове LsaCallAuthenticationPackage приложением с использованием недоверенного подключения. Эта функция используется для взаимодействия с процессами, у которых нет привилегий SeTcbPrivilege.
LsaApInitializePackage Вызывается во время инициализации системы, чтобы разрешить пакету проверки подлинности выполнять задачи инициализации.
LsaApLogonTerminated Вызывается, когда сеанс входа завершается, чтобы разрешить пакет проверки подлинности освободить все ресурсы, выделенные для сеанса входа.
LsaApLogonUser Вызывается при указании пакета проверки подлинности в вызове LsaLogonUser. Эта функция проверяет подлинность данных входа субъекта безопасности.
LsaApLogonUserEx Идентичен LsaApLogonUser, за исключением того, что он возвращает имя рабочей станции для целей аудита.
Пакет проверки подлинности может реализовать LsaApLogonUser, LsaApLogonUserEx или LsaApLogonUserEx2. Он не должен реализовывать их все.
LsaApLogonUserEx2 Идентичен LsaApLogonUserEx, за исключением того, что он возвращает первичные и дополнительные учетные данные субъекта безопасности. Пакет проверки подлинности может реализовать LsaApLogonUser, LsaApLogonUserEx или LsaApLogonUserEx2. Он не должен реализовывать их все.

Функции LSA, вызываемые пакетами проверки подлинности

Следующие функции локального центра безопасности (LSA) можно вызывать из пользовательского пакета проверки подлинности. Когда LSA вызывает LsaApInitializePackage для инициализации пакета, он передает таблицу функций поддержки.

Function Description
AddCredential Добавляет учетные данные в сеанс входа.
AllocateClientBuffer Выделяет буфер в адресном пространстве клиента.
AllocateLsaHeap Выделяет буферы, которые должны быть возвращены из пакета проверки подлинности в LSA.
CopyFromClientBuffer Копирует содержимое буфера в адресное пространство клиента в локальный буфер.
CopyToClientBuffer Копирует содержимое локального буфера в адресное пространство клиента.
CreateLogonSession Используется пакетами проверки подлинности для создания сеанса входа.
DeleteCredential Удаляет существующие учетные данные.
DeleteLogonSession Очищает все сеансы входа, созданные при определении допустимости сведений о проверке подлинности пользователя.
FreeClientBuffer Освобождает ранее выделенный буфер клиента с помощью функции AllocateClientBuffer.
FreeLsaHeap Освобождает буферы, ранее выделенные с помощью функции AllocateLsaHeap.
GetCredentials Извлекает учетные данные, ранее кэшированные с помощью AddCredential.

Функции подотчетной проверки подлинности

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

Function Description
Msv1_0SubAuthenticationFilter Выполняет проверку подлинности входа пользователя, относящуюся к контроллерам домена.
Msv1_0SubAuthenticationRoutine Выполняет проверку подлинности на клиенте или сервере.

Функции управления учетными данными

В следующих разделах приведены справочные сведения о функциях управления учетными данными.

Раздел Описание
Функции пользовательского интерфейса управления учетными данными Функции сведений, используемые для пользовательского интерфейса управления учетными данными.
Функции управления учетными данными низкого уровня Функции сведений, используемые для управления учетными данными низкого уровня.
Функции уведомлений об управлении учетными данными Функции сведений, реализованные диспетчерами учетных данных для получения уведомлений при изменении сведений о проверке подлинности.

Функции пользовательского интерфейса управления учетными данными

Ниже приведены функции пользовательского интерфейса управления учетными данными.

Function Description
CredUICmdLinePromptForCredentials Запрос и принятие учетных данных пользователя от пользователя, работающего в программе командной строки.
CredUIConfirmCredentials Подтвердите допустимость учетных данных, возвращаемых CredUIPromptForCredentials или CredUICmdLinePromptForCredentials.
CredUIParseUserName Извлеките имя домена и учетной записи пользователя из полного имени пользователя.
CredUIPromptForCredentials Отображение диалогового окна, которое принимает данные учетных данных от пользователя.
CredUIPromptForWindowsCredentials Создает и отображает настраиваемое диалоговое окно, позволяющее пользователям предоставлять учетные данные с помощью любого поставщика учетных данных, установленного на локальном компьютере.
CredUIReadSSOCredW Извлекает имя пользователя для одного учетных данных входа.
CredUIStoreSSOCredW Сохраняет один учетные данные для входа.

Функции управления учетными данными низкого уровня

Ниже приведены функции управления учетными данными низкого уровня.

Function Description
CredDelete Удалите учетные данные из набора учетных данных пользователя.
CredEnumerate Перечислите учетные данные в наборе учетных данных пользователя.
CredFindBestCredential Выполняет поиск базы данных управления учетными данными (CredMan) для набора универсальных учетных данных, связанных с текущим сеансом входа в систему, и лучше всего соответствует указанному целевому ресурсу.
CredFree Освобождает память, используемую для буфера, возвращаемого любой из функций управления учетными данными.
CredGetSessionTypes Получение максимального сохраняемости, поддерживаемого текущим сеансом входа.
CredGetTargetInfo Получение всех известных сведений о имени целевого объекта для именованного ресурса.
CredIsMarshaledCredential Определяет, является ли указанная строка имени пользователя маршалированные учетные данные, ранее маршалированные CredMarshalCredential.
CredIsProtected Указывает, шифруются ли указанные учетные данные предыдущим вызовом функции CredProtect .
CredMarshalCredential Преобразование учетных данных в текстовую строку.
CredPackAuthenticationBuffer Преобразует строковое имя пользователя и пароль в буфер проверки подлинности.
CredProtect Шифрует указанные учетные данные таким образом, чтобы только текущий контекст безопасности смог расшифровать их.
CredRead Чтение учетных данных из набора учетных данных пользователя.
CredReadDomainCredentials Чтение учетных данных домена из набора учетных данных пользователя.
CredRename Переименуйте учетные данные из набора учетных данных пользователя.
CredUnmarshalCredential Преобразуйте маршалированную строку учетных данных обратно в немаршалированную форму.
CredUnPackAuthenticationBuffer Преобразует буфер проверки подлинности, возвращаемый вызовом функции CredUIPromptForWindowsCredentials , в строковое имя пользователя и пароль.
CredUnprotect Расшифровывает учетные данные, которые ранее были зашифрованы с помощью функции CredProtect.
CredWrite Создайте новые учетные данные или измените существующие учетные данные в наборе учетных данных пользователя.
CredWriteDomainCredentials Запись учетных данных домена в набор учетных данных пользователя.

Функции уведомлений об управлении учетными данными

Следующие функции реализуются диспетчерами учетных данных для получения уведомлений при изменении сведений проверки подлинности.

Function Description
NPLogonNotify MPR вызывает эту функцию, чтобы уведомить диспетчер учетных данных о том, что произошло событие входа, что позволяет диспетчеру учетных данных возвращать скрипт входа.
NPPasswordChangeNotify MPR вызывает эту функцию, чтобы уведомить диспетчер учетных данных о событии изменения пароля.

Функции смарт-карты

Пакет SDK смарт-карт предоставляет следующие функции.

Function Description
GetOpenCardName Заменен sCardUIDlgSelectCard, в котором отображается диалоговое окно выбора смарт-карты.
SCardAccessStartedEvent Возвращает дескриптор событий при сигнале запуска диспетчера ресурсов смарт-карты.
SCardAddReaderToGroup Добавляет средство чтения в группу чтения.
SCardAudit Записывает сообщения о событиях в журнал приложений Windows-Microsoft-Windows-SmartCard-Audit/Authentication.
SCardBeginTransaction Запускает транзакцию.
SCardCancel Завершает все невыполненные действия в контексте.
SCardCancelTransaction Зарезервировано для последующего использования.
SCardConnect Устанавливает соединение между вызывающим приложением и смарт-картой.
SCardControl Получает прямой контроль средства чтения после вызова SCardConnect.
SCardDisconnect Завершает подключение между вызывающим приложением и смарт-картой.
SCardEndTransaction Завершает транзакцию.
SCardEstablishContext Устанавливает контекст диспетчера ресурсов для доступа к базе данных смарт-карты.
SCardForgetCardType Удаляет ранее определенную смарт-карту из подсистемы смарт-карт.
SCardForgetReader Удаляет ранее определенное средство чтения из подсистемы смарт-карт.
SCardForgetReaderGroup Удаляет ранее определенную группу чтения из подсистемы смарт-карты.
SCardFreeMemory Освобождает память, выделенную диспетчером ресурсов.
SCardGetAttrib Получает атрибуты текущего читателя из заданного средства чтения, драйвера или смарт-карты.
SCardGetCardTypeProviderName Возвращает имя поставщика, заданное именем карты и типом поставщика.
SCardGetDeviceTypeId Возвращает идентификатор типа устройства для средства чтения карт для заданного имени средства чтения. Эта функция не влияет на состояние средства чтения.
SCardGetProviderId Возвращает идентификатор (GUID) основного поставщика услуг для смарт-карты.
SCardGetReaderDeviceInstanceId Возвращает идентификатор экземпляра устройства средства чтения карт для заданного имени средства чтения. Эта функция не влияет на состояние средства чтения.
SCardGetReaderIcon Получает значок средства чтения смарт-карт для заданного имени читателя.
SCardGetStatusChange Блокирует выполнение до тех пор, пока не изменится состояние читателей.
SCardGetTransmitCount Извлекает количество операций передачи, выполненных с момента вставки указанного средства чтения карт.
SCardIntroduceCardType В этой статье представлена новая смарт-карта подсистемы смарт-карт .
SCardIntroduceReader В этой статье представлено новое средство чтения подсистемы смарт-карт.
SCardIntroduceReaderGroup В этой статье представлена новая группа чтения подсистемы смарт-карт.
SCardIsValidContext Проверяет дескриптор контекста смарт-карты.
SCardListCards Предоставляет список смарт-карт, уже представленных подсистеме.
SCardListInterfaces Предоставляет список интерфейсов, предоставляемых данной смарт-картой.
SCardListReaderGroups Предоставляет список групп чтения, уже представленных подсистеме.
SCardListReaders Предоставляет список читателей, уже представленных подсистеме.
SCardListReadersWithDeviceInstanceId Возвращает список читателей, которые предоставили идентификатор экземпляра устройства. Эта функция не влияет на состояние средства чтения.
SCardLocateCards Находит карточки, соответствующие заданной строке ATR.
SCardLocateCardsByATR Находит карточки, соответствующие заданной строке ATR.
SCardReadCache Извлекает часть значения пары "имя-значение" из глобального кэша, поддерживаемого диспетчером ресурсов смарт-карт.
SCardReconnect Повторно возвращает существующее подключение из вызывающего приложения к смарт-карте.
SCardReleaseContext Закрывает установленный контекст диспетчера ресурсов.
SCardReleaseStartedEvent Уменьшает количество ссылок для дескриптора, полученного с помощью функции SCardAccessStartedEvent.
SCardRemoveReaderFromGroup Удаляет средство чтения из существующей группы чтения.
SCardSetAttrib Задает заданный атрибут чтения.
SCardSetTypeProviderName Задает имя поставщика для имени карточки и типа поставщика.
SCardStatus Возвращает текущее состояние средства чтения.
SCardTransmit Отправляет запрос на обслуживание на смарт-карту.
SCardUIDlgSelectCard Отображает диалоговое окно выбора смарт-карты.
SCardWriteCache Записывает пару "имя-значение" из смарт-карты в глобальный кэш, поддерживаемый диспетчером ресурсов смарт-карт.

Функции SASL

Простая проверка подлинности и уровень безопасности (SASL) предоставляет следующие функции.

Функции Description
SaslAcceptSecurityContext Упаковывает стандартный вызов функции SSPI AcceptSecurityContext (General) и включает создание файлов cookie сервера SASL.
SaslEnumerateProfiles Перечисляет пакеты, предоставляющие интерфейс SASL.
SaslGetContextOption Извлекает указанное свойство указанного контекста SASL.
SaslGetProfilePackage Возвращает сведения о пакете для указанного пакета.
SaslIdentifyPackage Возвращает префикс согласования, соответствующий указанному буферу согласования SASL.
SaslInitializeSecurityContext Упаковывает стандартный вызов функции SSPI InitializeSecurityContext (General) и обрабатывает файлы cookie сервера SASL с сервера.
SaslSetContextOption Задает значение указанного свойства для указанного контекста SASL.

Прочие функции

Ниже приведены другие функции, используемые для проверки подлинности.

Function Description
AddSecurityPackage Добавляет поставщика поддержки безопасности в список поставщиков, поддерживаемых Microsoft Negotiate.
ChangeAccountPassword Изменяет пароль для учетной записи домена Windows с помощью указанного поставщика поддержки безопасности.
CredMarshalTargetInfo Сериализует указанный целевой объект в массив байтовых значений.
DeleteSecurityPackage Удаляет поставщика поддержки безопасности из списка поставщиков, поддерживаемых Microsoft Negotiate.
LsaManageSidNameMapping Добавляет или удаляет сопоставления sid/name из набора сопоставлений, зарегистрированного в службе подстановки LSA.
LsaOpenPolicy Открывает дескриптор объекта Policy в локальной или удаленной системе.
LsaQueryInformationPolicy Извлекает сведения об объекте Policy .
LsaSetInformationPolicy Изменяет сведения в объекте Policy .
NPFMXEditPerm Позволяет поставщикам сети предоставлять свои собственные диалоговые окна редактора разрешений.
NPFMXGetPermCaps Извлекает возможности редактора разрешений. Возвращаемое значение — это битовая маска, указывающая, какие элементы меню "Безопасность " в диспетчере файлов должны быть включены.
NPFMXGetPermHelp Извлекает файл справки и контекст диалогового окна редактора разрешений при выборе элемента меню в меню "Безопасность " диспетчера файлов и нажатием клавиши F1.
SeciAllocateAndSetIPAddress Задает IP-адрес вызывающего объекта для отображения в событиях аудита безопасности.
SeciFreeCallContext Освобождает память, выделенную SeciAllocateAndSetIPAddress.
SpGetCredUIContextFn Извлекает сведения о контексте от поставщика учетных данных.
SpLsaModeInitialize Предоставляет LSA с указателями на функции, реализованные каждым пакетом безопасности в библиотеке DLL SSP/AP.
SpQueryMetaDataFn Возвращает метаданные от поставщика поддержки безопасности (SSP) при запуске контекста безопасности.
SpUpdateCredentialsFn Обновляет учетные данные, связанные с указанным контекстом.
SspiCompareAuthIdentities Сравнивает два указанных учетных данных.
SspiCopyAuthIdentity Создает копию указанной непрозрачной структуры учетных данных.
SspiDecryptAuthIdentity Расшифровывает указанные зашифрованные учетные данные.
SspiEncodeAuthIdentityAsStrings Кодирует указанное удостоверение проверки подлинности в виде трех строк.
SspiEncodeStringsAsAuthIdentity Кодирует набор из трех строк учетных данных в виде структуры удостоверения проверки подлинности.
SspiEncryptAuthIdentity Шифрует указанную структуру удостоверений.
SspiExcludePackage Создает новую структуру удостоверений, которая является копией указанной структуры удостоверений, измененной для исключения указанного поставщика поддержки безопасности (SSP).
SspiFreeAuthIdentity Освобождает память, выделенную для указанной структуры удостоверений.
SspiGetCredUIContext Извлекает сведения о контексте от поставщика учетных данных.
SspiGetTargetHostName Возвращает имя узла, связанное с указанным целевым объектом.
SspiIsAuthIdentityEncrypted Указывает, зашифрована ли указанная структура удостоверений.
SspiIsPromptingNeeded Указывает, возвращается ли ошибка после вызова функции InitializeSecurityContext или AcceptSecurityContext, требуется дополнительный вызов функции SspiPromptForCredentials.
SspiLocalFree Освобождает память, связанную с указанным буфером.
SspiMarshalAuthIdentity Сериализует указанную структуру удостоверений в массив байтов.
SspiPrepareForCredRead Создает целевое имя и тип учетных данных из указанной структуры удостоверений.
SspiPrepareForCredWrite Создает значения из структуры удостоверений, которую можно передать в качестве значений параметров в вызове функции CredWrite .
SspiPromptForCredentials Позволяет приложению интерфейса поставщика поддержки безопасности (SSPI) предложить пользователю ввести учетные данные.
SspiUnmarshalAuthIdentity Десериализирует указанный массив байтовых значений в структуру удостоверений.
SspiUnmarshalCredUIContext Десериализирует данные учетных данных, полученные поставщиком учетных данных во время предыдущего вызова метода ICredentialProvider::SetSerialization .
SspiUpdateCredentials Обновляет учетные данные, связанные с указанным контекстом.
SspiValidateAuthIdentity Указывает, является ли указанная структура удостоверений допустимой.
SspiZeroAuthIdentity Заполняет блок памяти, связанный с указанной структурой удостоверений нулями.
WlxQueryTsLogonCredentials Вызывается заменой библиотеки DLL GINA для получения сведений об учетных данных, если включены службы терминалов . Библиотека DLL GINA может использовать эти сведения для автоматического заполнения поля входа и попытки входа пользователя.