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
SEC_WINNT_AUTH_IDENTITY_MARSHALLED
4 (0x4)
Alle Daten befinden sich in einem Puffer.
SEC_WINNT_AUTH_IDENTITY_ONLY
8 (0x8)
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.
SEC_WINNT_AUTH_IDENTITY_ANSI
1 (0x1)
Anmeldeinformationen befinden sich in ANSI-Formular.
SEC_WINNT_AUTH_IDENTITY_UNICODE
2 (0x2)
Anmeldeinformationen befinden sich in Unicode-Form.
SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER
524288 (0x80000)
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.

SEC_WINNT_AUTH_IDENTITY_FLAGS_PROCESS_ENCRYPTED
16 (0x10)
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.

SEC_WINNT_AUTH_IDENTITY_FLAGS_SYSTEM_PROTECTED
32 (0x20)
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.

SEC_WINNT_AUTH_IDENTITY_FLAGS_USER_PROTECTED
64 (0x40)
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.

SEC_WINNT_AUTH_IDENTITY_FLAGS_RESERVED
65536 (0x10000)
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