SEC_WINNT_AUTH_IDENTITY_EX2 Struktur (sspi.h)
Enthält Informationen zu einer Authentifizierungsidentität. Die SEC_WINNT_AUTH_IDENTITY_EX2 Struktur enthält Authentifizierungsdaten, die der AcquireCredentialsHandle-Funktion bereitgestellt werden.
Syntax
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;
Angehörige
Version
Die Versionsnummer der Struktur. Dies muss SEC_WINNT_AUTH_IDENTITY_VERSION_2sein.
cbHeaderLength
Die Größe des Strukturheaders in Bytes.
cbStructureLength
Die Größe der Struktur in Bytes.
UserOffset
Der Offset vom Anfang der Struktur bis zum Anfang der Benutzernamenzeichenfolge.
UserLength
Die Größe der Benutzernamenzeichenfolge in Byte.
DomainOffset
Der Offset vom Anfang der Struktur bis zum Anfang der Domänennamenzeichenfolge.
Eine Identitätsanmeldeinformation sollte den Identitätsanbieternamen anstelle des Domänennamens enthalten.
DomainLength
Die Größe der Domänennamenzeichenfolge in Byte.
PackedCredentialsOffset
Der Offset vom Anfang der Struktur bis zum Anfang der verpackten Anmeldeinformationen.
Die verpackten Anmeldeinformationen sind eine SEC_WINNT_AUTH_PACKED_CREDENTIALS Struktur, die einen Anmeldeinformationstyp enthält, der den Anmeldeinformationstyp eindeutig angibt.
PackedCredentialsLength
Die Größe der Zeichenfolge mit den gepackten Anmeldeinformationen in Bytes.
Flags
Ein nicht signiertes langes Flag, das den Typ angibt, der von verhandelbaren Sicherheitspaketenverwendet wird.
Wert | Bedeutung |
---|---|
|
Alle Daten befinden sich in einem Puffer. |
|
Wird mit dem Kerberos-Sicherheitssupportanbieter (SSP) verwendet. Anmeldeinformationen sind nur für Identitäten vorgesehen. Das Kerberos-Paket wird angewiesen, keine Autorisierungsdaten in das Ticket einzuschließen. |
|
Anmeldeinformationen befinden sich in ANSI-Formular. |
|
Anmeldeinformationen befinden sich in Unicode-Form. |
|
Wenn der Anmeldeinformationstyp ein Kennwort ist, gibt das Vorhandensein dieses Flags an, dass es sich bei der Struktur um eine Online-ID-Anmeldeinformationen handelt. Die DomainOffset und DomainLength Mitglieder entsprechen dem Namen des Online-ID-Anbieters.
Windows Server 2008 R2 und Windows 7: Dieses Flag wird nicht unterstützt. |
|
Die Struktur wird durch die SspiEncryptAuthIdentity Funktion oder durch die SspiEncryptAuthIdentityEx Funktion mit der option SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_PROCESS verschlüsselt. Es kann nur durch denselben Prozess entschlüsselt werden.
Windows Server 2008 R2 und Windows 7: Dieses Flag wird nicht unterstützt. |
|
Die Struktur wird durch die SspiEncryptAuthIdentityEx--Funktion mit der Option SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON im SYSTEM-Sicherheitskontext verschlüsselt. Er kann nur von einem Thread entschlüsselt werden, der als SYSTEM ausgeführt wird.
Windows Server 2008 R2 und Windows 7: Dieses Flag wird nicht unterstützt. |
|
Die Struktur wird durch die SspiEncryptAuthIdentityEx--Funktion mit der Option SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON unter einem Nicht-SYSTEM-Sicherheitskontext verschlüsselt. Sie kann nur von einem Thread entschlüsselt werden, der in derselben Anmeldesitzung ausgeführt wird, in der sie verschlüsselt wurde.
Windows Server 2008 R2 und Windows 7: Dieses Flag wird nicht unterstützt. |
|
Der Authentifizierungsidentitätspuffer ist cbStructureLength + 8 Abstandsbytes, die für die direkte Verschlüsselung oder Entschlüsselung der Identität erforderlich sind. |
PackageListOffset
Der Offset vom Anfang der Struktur bis zum Anfang der Liste der unterstützten Pakete.
PackageListLength
Die Größe der unterstützten Paketliste in Byte.
Bemerkungen
Dieser Authentifizierungsidentitätspuffer kann von mehreren Anmeldeinformations-APIs zurückgegeben werden, z. B. die GetSerialization-Methode und die CredUIPromptForWindowsCredential und SspiPromptForCredentials Funktionen.
Die Struktur beschreibt einen Header des Authentifizierungsidentitätspuffers, und die Daten werden am Ende der Struktur angefügt. Obwohl die Puffergröße durch das cbStructureLength Member angegeben wird, kann die tatsächliche Puffergröße größer oder kleiner als cbStructureLengthsein. Einige Funktionen, z. B. SspiValidateAuthIdentity-, nehmen einen Zeiger, aber nicht die Puffergröße, auf die Identitätsstruktur als Eingabe. Daher können diese Funktionen die internen Pufferdaten überprüfen, aber die Puffergröße nicht überprüfen. Dies kann dazu führen, dass Daten außerhalb des Pufferbereichs gelesen oder geschrieben werden. Um Pufferüberläufe beim Behandeln eines nicht vertrauenswürdigen Identitätspuffers zu vermeiden, sollten Anwendungen SspiUnmarshalAuthIdentity- aufrufen, um einen Zeiger auf eine Identitätsstruktur mit einer überprüften Größe abzurufen und diesen Zeiger dann an die Funktionen zu übergeben.
Die SEC_WINNT_AUTH_IDENTITY_EX2 Struktur kann von QueryContextAttributes(CredSSP) und von AcquireCredentialsHandle(CredSSP)-, LsaLogonUser-und anderen Identitätsanbieterschnittstellen zurückgegeben werden.
SEC_WINNT_AUTH_PACKED_CREDENTIALS kann einen Kennwortanmeldeinformationstyp enthalten, der als SEC_WINNT_AUTH_DATA_TYPE_PASSWORD definiert ist. Dieser Anmeldeinformationstyp beschreibt Kennwortanmeldeinformationen eines Domänenbenutzers sowie andere Onlineidentitäten. Anwendungen müssen _SEC_WINNT_AUTH_TYPES definieren, um Code zu kompilieren, der auf diesen Anmeldeinformationstyp verweist, sowie andere Definitionen der SEC_WINNT_AUTH_PACKED_CREDENTIALS-Struktur.
Anwendungen sollten die Flags nicht direkt abfragen oder festlegen. Verwenden Sie die SspiIsAuthIdentityEncrypted, SspiEncryptAuthIdentityExund SspiDecryptAuthIdentityEx- funktionen, um die Verschlüsselung und Entschlüsselung der SEC_WINNT_AUTH_IDENTITY_EX2 Struktur zu verwalten.
Identitätsanbieter müssen explizit SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER und die Domänennamenfelder überprüfen oder festlegen, um ihre Kennwortanmeldeinformationen von einem Domänenkennwort und dem Kennwort eines anderen Identitätsanbieters zu unterscheiden.
Die CredPackAuthenticationBuffer--Funktion kann mit der Option CRED_PACK_ID_PROVIDER_CREDENTIALS aufgerufen werden, um eine SEC_WINNT_AUTH_IDENTITY_EX2 Struktur mit den Authentifizierungsdaten SEC_WINNT_AUTH_DATA_TYPE_PASSWORD Anmeldeinformationstyps zu erstellen, einem Flags Member, das den SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER Wert enthält, und ein DomainOffset- Mitglied auf den Anbieternamen festgelegt.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 7 [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2008 R2 [nur Desktop-Apps] |
Header- | sspi.h |