структура SEC_WINNT_AUTH_IDENTITY_EX2 (sspi.h)
Содержит сведения об удостоверении проверки подлинности. Структура SEC_WINNT_AUTH_IDENTITY_EX2 содержит данные проверки подлинности, предоставляемые функции AcquireCredentialsHandle .
Синтаксис
typedef struct _SEC_WINNT_AUTH_IDENTITY_EX2 {
unsigned long Version;
unsigned short cbHeaderLength;
unsigned long cbStructureLength;
unsigned long UserOffset;
unsigned short UserLength;
unsigned long DomainOffset;
unsigned short DomainLength;
unsigned long PackedCredentialsOffset;
unsigned short PackedCredentialsLength;
unsigned long Flags;
unsigned long PackageListOffset;
unsigned short PackageListLength;
} SEC_WINNT_AUTH_IDENTITY_EX2, *PSEC_WINNT_AUTH_IDENTITY_EX2;
Члены
Version
Номер версии структуры. Это должно быть SEC_WINNT_AUTH_IDENTITY_VERSION_2.
cbHeaderLength
Размер заголовка структуры (в байтах).
cbStructureLength
Размер структуры (в байтах).
UserOffset
Смещение от начала структуры к началу строки имени пользователя.
UserLength
Размер строки имени пользователя (в байтах).
DomainOffset
Смещение от начала структуры до начала строки доменного имени.
Учетные данные удостоверения должны содержать имя поставщика удостоверений, а не доменное имя.
DomainLength
Размер строки доменного имени в байтах.
PackedCredentialsOffset
Смещение от начала структуры до начала упакованных учетных данных.
Упакованные учетные данные — это структура SEC_WINNT_AUTH_PACKED_CREDENTIALS , содержащая тип учетных данных, который однозначно указывает тип учетных данных.
PackedCredentialsLength
Размер строки упакованных учетных данных (в байтах).
Flags
Длинный флаг без знака, указывающий тип, используемый оборотными пакетами безопасности.
Значение | Значение |
---|---|
|
Все данные находится в одном буфере. |
|
Используется с поставщиком поддержки безопасностиKerberos (SSP). Учетные данные предназначены только для удостоверения. Пакет Kerberos направлен на то, чтобы не включать данные авторизации в билет. |
|
Учетные данные находятся в форме ANSI. |
|
Учетные данные находятся в формате Юникода. |
|
Если тип учетных данных — пароль, наличие этого флага указывает, что структура является учетными данными сетевого идентификатора. Члены DomainOffset и DomainLength соответствуют имени поставщика сетевых идентификаторов.
Windows Server 2008 R2 и Windows 7: Этот флаг не поддерживается. |
|
Структура шифруется функцией SspiEncryptAuthIdentity или функцией SspiEncryptAuthIdentityEx с параметром SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_PROCESS. Он может быть расшифрован только тем же процессом.
Windows Server 2008 R2 и Windows 7: Этот флаг не поддерживается. |
|
Структура шифруется функцией SspiEncryptAuthIdentityEx с параметром SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON в контексте безопасности SYSTEM. Он может быть расшифрован только потоком, работающим под управлением SYSTEM.
Windows Server 2008 R2 и Windows 7: Этот флаг не поддерживается. |
|
Структура шифруется функцией SspiEncryptAuthIdentityEx с параметром SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON в контексте безопасности, отличном от SYSTEM. Он может быть расшифрован только потоком, запущенным в том же сеансе входа, в котором он был зашифрован.
Windows Server 2008 R2 и Windows 7: Этот флаг не поддерживается. |
|
Буфер удостоверения проверки подлинности — cbStructureLength + 8 байт заполнения, необходимых для шифрования на месте или расшифровки удостоверения. |
PackageListOffset
Смещение от начала структуры к началу списка поддерживаемых пакетов.
PackageListLength
Размер списка поддерживаемых пакетов (в байтах).
Комментарии
Этот буфер удостоверений проверки подлинности можно вернуть из нескольких API учетных данных, например метода GetSerialization и функций CredUIPromptForWindowsCredential и SspiPromptForCredentials .
Структура описывает заголовок буфера удостоверения проверки подлинности, а данные добавляются в конце структуры. Хотя размер буфера определяется элементом cbStructureLength , фактический размер буфера может быть больше или меньше , чем cbStructureLength. Некоторые функции, например SspiValidateAuthIdentity, принимают в качестве входных данных указатель, но не размер буфера. В результате эти функции могут проверять данные внутреннего буфера, но не могут проверить размер буфера. Это может привести к чтению или записи данных за пределами буферного диапазона. Чтобы избежать переполнения буфера при обработке буфера ненадежных удостоверений, приложения должны вызывать SspiUnmarshalAuthIdentity , чтобы получить указатель на структуру удостоверения с проверенным размером, а затем передать этот указатель в функции.
Структура SEC_WINNT_AUTH_IDENTITY_EX2 может быть возвращена QueryContextAttributes(CredSSP) и использована AcquireCredentialsHandle(CredSSP),LsaLogonUser и другими интерфейсами поставщика удостоверений.
SEC_WINNT_AUTH_PACKED_CREDENTIALS может содержать тип учетных данных пароля, определенный как SEC_WINNT_AUTH_DATA_TYPE_PASSWORD. Этот тип учетных данных описывает учетные данные пароля пользователя домена, а также другие сетевые удостоверения. Приложения должны определять _SEC_WINNT_AUTH_TYPES для компиляции кода, который ссылается на этот тип учетных данных, а также другие определения структуры SEC_WINNT_AUTH_PACKED_CREDENTIALS .
Приложения не должны запрашивать или задавать член Flags напрямую. Используйте функции SspiIsAuthIdentityEncrypted, SspiEncryptAuthIdentityEx и SspiDecryptAuthIdentityEx для управления шифрованием и расшифровкой структуры SEC_WINNT_AUTH_IDENTITY_EX2 .
Поставщики удостоверений должны явно проверка или задать SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER и поля доменного имени, чтобы отличить свои учетные данные пароля от пароля домена и пароля другого поставщика удостоверений.
Функцию CredPackAuthenticationBuffer можно вызвать с параметром CRED_PACK_ID_PROVIDER_CREDENTIALS для создания структуры SEC_WINNT_AUTH_IDENTITY_EX2 с данными проверки подлинности SEC_WINNT_AUTH_DATA_TYPE_PASSWORD типа учетных данных, элементом Flags , содержащим значение SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER, и членом DomainOffset с именем поставщика.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Верхняя часть | sspi.h |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по