struttura SEC_WINNT_AUTH_IDENTITY_EX2 (sspi.h)
Contiene informazioni su un'identità di autenticazione. La struttura SEC_WINNT_AUTH_IDENTITY_EX2 contiene i dati di autenticazione forniti alla funzione AcquireCredentialsHandle .
Sintassi
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;
Members
Version
Numero di versione della struttura. Deve essere SEC_WINNT_AUTH_IDENTITY_VERSION_2.
cbHeaderLength
Dimensione, in byte, dell'intestazione della struttura.
cbStructureLength
Dimensione, in byte, della struttura.
UserOffset
Offset dall'inizio della struttura all'inizio della stringa del nome utente.
UserLength
Dimensione, in byte, della stringa del nome utente.
DomainOffset
Offset dall'inizio della struttura all'inizio della stringa del nome di dominio.
Una credenziale di identità deve contenere il nome del provider di identità anziché il nome di dominio.
DomainLength
Dimensione, in byte, della stringa del nome di dominio.
PackedCredentialsOffset
Offset dall'inizio della struttura all'inizio delle credenziali compresse.
La credenziale compressa è una struttura SEC_WINNT_AUTH_PACKED_CREDENTIALS che contiene un tipo di credenziale che specifica in modo univoco il tipo di credenziale.
PackedCredentialsLength
Dimensione, in byte, della stringa di credenziali compressa.
Flags
Flag long senza segno che indica il tipo utilizzato dai pacchetti di sicurezza negoziabili.
Valore | Significato |
---|---|
|
Tutti i dati si trovano in un unico buffer. |
|
Usato con il provider di supporto per la sicurezzaKerberos( SSP). Le credenziali sono solo per identità. Il pacchetto Kerberos viene indirizzato a non includere i dati di autorizzazione nel ticket. |
|
Le credenziali sono in formato ANSI. |
|
Le credenziali sono in formato Unicode. |
|
Quando il tipo di credenziale è password, la presenza di questo flag specifica che la struttura è una credenziale ID online. I membri DomainOffset e DomainLength corrispondono al nome del provider ID online.
Windows Server 2008 R2 e Windows 7: Questo flag non è supportato. |
|
La struttura viene crittografata dalla funzione SspiEncryptAuthIdentity o dalla funzione SspiEncryptAuthIdentityEx con l'opzione SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_PROCESS. Può essere decrittografata solo dallo stesso processo.
Windows Server 2008 R2 e Windows 7: Questo flag non è supportato. |
|
La struttura viene crittografata dalla funzione SspiEncryptAuthIdentityEx con l'opzione SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON nel contesto di sicurezza SYSTEM. Può essere decrittografata solo da un thread in esecuzione come SYSTEM.
Windows Server 2008 R2 e Windows 7: Questo flag non è supportato. |
|
La struttura viene crittografata dalla funzione SspiEncryptAuthIdentityEx con l'opzione SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON in un contesto di sicurezza non SYSTEM. Può essere decrittografato solo da un thread in esecuzione nella stessa sessione di accesso in cui è stato crittografato.
Windows Server 2008 R2 e Windows 7: Questo flag non è supportato. |
|
Il buffer di identità di autenticazione è cbStructureLength + 8 byte di riempimento necessari per la crittografia sul posto o la decrittografia dell'identità. |
PackageListOffset
Offset dall'inizio della struttura all'inizio dell'elenco dei pacchetti supportati.
PackageListLength
Dimensioni, in byte, dell'elenco di pacchetti supportato.
Commenti
Questo buffer di identità di autenticazione può essere restituito da diverse API delle credenziali, ad esempio il metodo GetSerialization e le funzioni CredUIPromptForWindowsCredential e SspiPromptForCredentials .
La struttura descrive un'intestazione del buffer di identità di autenticazione e i dati vengono accodati alla fine della struttura. Anche se le dimensioni del buffer sono specificate dal membro cbStructureLength , le dimensioni effettive del buffer possono essere maggiori o inferiori a cbStructureLength. Alcune funzioni, ad esempio SspiValidateAuthIdentity, accettano un puntatore, ma non la dimensione del buffer, alla struttura di identità come input. Di conseguenza, tali funzioni possono convalidare i dati interni del buffer, ma non possono verificare le dimensioni del buffer. Ciò può comportare la lettura o la scrittura di dati all'esterno dell'intervallo di buffer. Per evitare sovraccarichi del buffer quando si gestisce un buffer di identità non attendibile, le applicazioni devono chiamare SspiUnmarshalAuthIdentity per ottenere un puntatore a una struttura di identità con una dimensione convalidata e quindi passare tale puntatore alle funzioni.
La struttura SEC_WINNT_AUTH_IDENTITY_EX2 può essere restituita da QueryContextAttributes(CredSSP) e utilizzata da AcquireCredentialsHandle(CredSSP), LsaLogonUser e altre interfacce del provider di identità.
SEC_WINNT_AUTH_PACKED_CREDENTIALS può contenere un tipo di credenziale password, definito come SEC_WINNT_AUTH_DATA_TYPE_PASSWORD. Questo tipo di credenziale descrive le credenziali password di un utente di dominio e altre identità online. Le applicazioni devono definire _SEC_WINNT_AUTH_TYPES per compilare il codice che fa riferimento a questo tipo di credenziale e ad altre definizioni della struttura SEC_WINNT_AUTH_PACKED_CREDENTIALS .
Le applicazioni non devono eseguire query o impostare direttamente il membro Flags . Usare le funzioni SspiIsAuthIdentityEncrypted, SspiEncryptAuthIdentityEx e SspiDecryptAuthIdentityEx per gestire la crittografia e la decrittografia della struttura SEC_WINNT_AUTH_IDENTITY_EX2 .
I provider di identità devono controllare o impostare in modo esplicito SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER e i campi dei nomi di dominio per distinguere le credenziali delle password da una password di dominio e da una password di un altro provider di identità.
La funzione CredPackAuthenticationBuffer può essere chiamata con l'opzione CRED_PACK_ID_PROVIDER_CREDENTIALS per creare una struttura di SEC_WINNT_AUTH_IDENTITY_EX2 con i dati di autenticazione di SEC_WINNT_AUTH_DATA_TYPE_PASSWORD tipo di credenziale, un membro Flags che contiene il valore SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER e un membro DomainOffset impostato sul nome del provider.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Intestazione | sspi.h |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per