структура 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 |
|
Учетные данные находятся в форме ANSI. |
|
Учетные данные находятся в форме Юникода. |
|
Если тип учетных данных является паролем, наличие этого флага указывает, что структура является учетными данными онлайн-идентификатора. Члены DomainOffset и DomainLeng th соответствуют имени поставщика идентификаторов в Сети.
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 с параметром Windows Server 2008 R2 и Windows 7: этот флаг не поддерживается. |
|
Буфер удостоверений проверки подлинности cbStructureLength + 8 байтов, необходимых для шифрования на месте или расшифровки удостоверения. |
PackageListOffset
Смещение от начала структуры до начала списка поддерживаемых пакетов.
PackageListLength
Размер в байтах поддерживаемого списка пакетов.
Замечания
Этот буфер удостоверений проверки подлинности можно вернуть из нескольких API учетных данных, например метод
Структура описывает заголовок буфера идентификации проверки подлинности, а данные добавляются в конце структуры. Хотя размер буфера указывается элементом cbStructureLength, фактический размер буфера может быть больше или меньше cbStructureLength. Некоторые функции, такие как SspiValidateAuthIdentity, принимают указатель, но не размер буфера, в структуру удостоверений в качестве входных данных. В результате эти функции могут проверять внутренние данные буфера, но не могут проверить размер буфера. Это может привести к чтению или записи данных за пределами диапазона буфера. Чтобы избежать переполнения буфера при обработке буфера ненадежных удостоверений, приложения должны вызывать SspiUnmarshalAuthIdentity, чтобы получить указатель на структуру удостоверений с проверенным размером, а затем передать этот указатель на функции.
Структура
SEC_WINNT_AUTH_PACKED_CREDENTIALS может содержать тип учетных данных пароля, определенный как SEC_WINNT_AUTH_DATA_TYPE_PASSWORD. Этот тип учетных данных описывает учетные данные пароля пользователя домена, а также другие сетевые удостоверения. Приложения должны определять _SEC_WINNT_AUTH_TYPES для компиляции кода, ссылающегося на этот тип учетных данных, а также другие определения структуры SEC_WINNT_AUTH_PACKED_CREDENTIALS.
Приложения не должны напрямую запрашивать или задавать флаги . Используйте 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, Флаги, содержащий значение SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER, и член DomainOffset, заданный для имени поставщика.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 7 [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2008 R2 [только классические приложения] |
заголовка | sspi.h |