estrutura SEC_WINNT_AUTH_IDENTITY_EX2 (sspi.h)
Contém informações sobre uma identidade de autenticação. A estrutura
Sintaxe
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;
Membros
Version
O número de versão da estrutura. Isso deve ser SEC_WINNT_AUTH_IDENTITY_VERSION_2.
cbHeaderLength
O tamanho, em bytes, do cabeçalho da estrutura.
cbStructureLength
O tamanho, em bytes, da estrutura.
UserOffset
O deslocamento do início da estrutura para o início da cadeia de caracteres de nome de usuário.
UserLength
O tamanho, em bytes, da cadeia de caracteres de nome de usuário.
DomainOffset
O deslocamento do início da estrutura para o início da cadeia de caracteres de nome de domínio.
Uma credencial de identidade deve conter o nome do provedor de identidade em vez do nome de domínio.
DomainLength
O tamanho, em bytes, da cadeia de caracteres de nome de domínio.
PackedCredentialsOffset
O deslocamento do início da estrutura até o início das credenciais empacotadas.
A credencial empacotada é uma estrutura SEC_WINNT_AUTH_PACKED_CREDENTIALS que contém um tipo de credencial que especifica exclusivamente o tipo de credencial.
PackedCredentialsLength
O tamanho, em bytes, da cadeia de caracteres de credenciais empacotadas.
Flags
Um sinalizador de longo sem sinal
Valor | Significado |
---|---|
|
Todos os dados estão em um buffer. |
|
Usado com o provedor de suporte de segurança |
|
As credenciais estão no formato ANSI. |
|
As credenciais estão no formulário Unicode. |
|
Quando o tipo de credencial é senha, a presença desse sinalizador especifica que a estrutura é uma credencial de ID online. Os membros Windows Server 2008 R2 e Windows 7: Não há suporte para esse sinalizador. |
|
A estrutura é criptografada pela função SspiEncryptAuthIdentity ou pela função SspiEncryptAuthIdentityEx com a opção SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_PROCESS. Ele só pode ser descriptografado pelo mesmo processo.
Windows Server 2008 R2 e Windows 7: Não há suporte para esse sinalizador. |
|
A estrutura é criptografada pela função SspiEncryptAuthIdentityEx com a opção SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON no contexto de segurança SYSTEM. Ele só pode ser descriptografado por um thread em execução como SYSTEM.
Windows Server 2008 R2 e Windows 7: Não há suporte para esse sinalizador. |
|
A estrutura é criptografada pela função SspiEncryptAuthIdentityEx com a opção SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON em um contexto de segurança não SYSTEM. Ele só pode ser descriptografado por um thread em execução na mesma sessão de logon na qual foi criptografado.
Windows Server 2008 R2 e Windows 7: Não há suporte para esse sinalizador. |
|
O buffer de identidade de autenticação é cbStructureLength + 8 bytes de preenchimento necessários para criptografia in-loco ou descriptografia da identidade. |
PackageListOffset
O deslocamento do início da estrutura até o início da lista de pacotes com suporte.
PackageListLength
O tamanho, em bytes, da lista de pacotes com suporte.
Observações
Esse buffer de identidade de autenticação pode ser retornado de várias APIs de credencial, por exemplo, o método GetSerialization e o CredUIPromptForWindowsCredential e SspiPromptForCredentials funções.
A estrutura descreve um cabeçalho do buffer de identidade de autenticação e os dados são acrescentados no final da estrutura. Embora o tamanho do buffer seja especificado pelo membro cbStructureLength, o tamanho real do buffer pode ser maior ou menor que cbStructureLength. Algumas funções, como SspiValidateAuthIdentity, levam um ponteiro, mas não o tamanho do buffer, para a estrutura de identidade como entrada. Como resultado, essas funções podem validar os dados internos do buffer, mas não podem verificar o tamanho do buffer. Isso pode resultar na leitura ou gravação de dados fora do intervalo de buffers. Para evitar sobrecargas de buffer ao lidar com um buffer de identidade não confiável, os aplicativos devem chamar SspiUnmarshalAuthIdentity para obter um ponteiro para uma estrutura de identidade com um tamanho validado e, em seguida, passar esse ponteiro para as funções.
A estrutura
SEC_WINNT_AUTH_PACKED_CREDENTIALS pode conter um tipo de credencial de senha, definido como SEC_WINNT_AUTH_DATA_TYPE_PASSWORD. Esse tipo de credencial descreve as credenciais de senha de um usuário de domínio, bem como outras identidades online. Os aplicativos devem definir _SEC_WINNT_AUTH_TYPES para compilar o código que faz referência a esse tipo de credencial, bem como a outras definições da estrutura SEC_WINNT_AUTH_PACKED_CREDENTIALS.
Os aplicativos não devem consultar nem definir o Flags membro diretamente. Use as funções SspiIsAuthIdentityEncrypted, SspiEncryptAuthIdentityExe SspiDecryptAuthIdentityEx para gerenciar a criptografia e a descriptografia da estrutura SEC_WINNT_AUTH_IDENTITY_EX2.
Os provedores de identidade devem verificar ou definir explicitamente SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER e os campos de nome de domínio para diferenciar a credencial de senha de uma senha de domínio e a senha de outro provedor de identidade.
A função
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 7 [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
cabeçalho | sspi.h |