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 für die 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;

Member

Version

Die Versionsnummer der -Struktur. Dies muss SEC_WINNT_AUTH_IDENTITY_VERSION_2 sein.

cbHeaderLength

Die Größe des Strukturheaders in Bytes.

cbStructureLength

Die Größe der Struktur in Byte.

UserOffset

Der Offset vom Anfang der Struktur bis zum Anfang der Benutzernamenzeichenfolge.

UserLength

Die Größe der Benutzernamenzeichenfolge in Bytes.

DomainOffset

Der Offset vom Anfang der Struktur bis zum Anfang der Domänennamenzeichenfolge.

Identitätsanmeldeinformationen sollten den Namen des Identitätsanbieters anstelle des Domänennamens enthalten.

DomainLength

Die Größe der Domänennamenzeichenfolge in Bytes.

PackedCredentialsOffset

Der Offset vom Anfang der Struktur bis zum Anfang der gepackten Anmeldeinformationen.

Die gepackten 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 für die gepackten Anmeldeinformationen in Bytes.

Flags

Ein nicht signiertes long-Flag , das den Typ angibt, der von verhandelbaren Sicherheitspaketen verwendet 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-Sicherheitsunterstützungsanbieter (Security Support Provider, 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 im ANSI-Format.
SEC_WINNT_AUTH_IDENTITY_UNICODE
2 (0x2)
Anmeldeinformationen befinden sich im Unicode-Format.
SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER
524288 (0x80000)
Wenn der Anmeldeinformationstyp kennwort ist, gibt das Vorhandensein dieses Flags an, dass es sich bei der Struktur um Online-ID-Anmeldeinformationen handelt. Die Mitglieder DomainOffset und DomainLength 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 von der Funktion SspiEncryptAuthIdentity oder von der Funktion SspiEncryptAuthIdentityEx mit der Option SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_PROCESS verschlüsselt. Sie 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 von der Funktion SspiEncryptAuthIdentityEx mit der Option SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON unter dem Sicherheitskontext SYSTEM verschlüsselt. Sie 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 von der Funktion SspiEncryptAuthIdentityEx mit der Option SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON unter einem Nicht-SYSTEM-Sicherheitskontext verschlüsselt. Es kann nur von einem Thread entschlüsselt werden, der in derselben Anmeldesitzung ausgeführt wird, in der er 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 Auffüllungsbytes, 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 Bytes.

Hinweise

Dieser Authentifizierungsidentitätspuffer kann von mehreren Anmeldeinformations-APIs zurückgegeben werden, z. B. von der GetSerialization-Methode und den Funktionen CredUIPromptForWindowsCredential und SspiPromptForCredentials .

Die -Struktur beschreibt einen Header des Authentifizierungsidentitätspuffers, und die Daten werden am Ende der Struktur angefügt. Obwohl die Puffergröße vom cbStructureLength-Element angegeben wird, kann die tatsächliche Puffergröße größer oder kleiner als cbStructureLength sein. Einige Funktionen, z. B. SspiValidateAuthIdentity, verwenden 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 bei der Behandlung 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 zu erhalten, und diesen Zeiger dann an die Funktionen übergeben.

Die SEC_WINNT_AUTH_IDENTITY_EX2-Struktur kann von QueryContextAttributes(CredSSP) zurückgegeben und von AcquireCredentialsHandle(CredSSP), LsaLogonUser und anderen Identitätsanbieterschnittstellen verwendet werden.

SEC_WINNT_AUTH_PACKED_CREDENTIALS können einen Kennwortanmeldeinformationstyp enthalten, der als SEC_WINNT_AUTH_DATA_TYPE_PASSWORD definiert ist. Dieser Anmeldeinformationstyp beschreibt Die Kennwortanmeldeinformationen eines Domänenbenutzers sowie andere Onlineidentitäten. Anwendungen müssen _SEC_WINNT_AUTH_TYPES definieren, um Code zu kompilieren, der auf diesen Anmeldeinformationstyp sowie auf andere Definitionen der SEC_WINNT_AUTH_PACKED_CREDENTIALS-Struktur verweist.

Anwendungen sollten den Flags-Member nicht direkt abfragen oder festlegen. Verwenden Sie die Funktionen SspiIsAuthIdentityEncrypted, SspiEncryptAuthIdentityEx und SspiDecryptAuthIdentityEx , um die Ver- 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, ein Flags-Element , das den SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER-Wert enthält, und ein DomainOffset-Element zu erstellen, das auf den Anbieternamen festgelegt ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Kopfzeile sspi.h