KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST-Struktur (ntsecapi.h)
Ermöglicht es dem Benutzer, eine Bindung an einen bestimmten Domänencontroller (DC) zu binden, wodurch der Kerberos-Domänenbindungscache überschrieben wird. Kerberos erzwingt eine DC-Suche, wenn dynamische Access Control (DAC) aktiviert ist, sodass die Authentifizierung in der Regel nicht an einen bestimmten DC gebunden ist. Bestimmte Benutzer möchten möglicherweise eine Bindung an den bestimmten DC herstellen, für den sie ein Konto erstellt haben, oder ein neues Kennwort festlegen, um die Verzögerung der DC-Replikation zu vermeiden. Sie müssen die SeTcbPrivilege-Berechtigung festgelegt haben.
Syntax
typedef struct _KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST {
KERB_PROTOCOL_MESSAGE_TYPE MessageType;
UNICODE_STRING RealmName;
UNICODE_STRING KdcAddress;
ULONG AddressType;
ULONG DcFlags;
} KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST, *PKERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST;
Member
MessageType
Ein Wert der KERB_PROTOCOL_MESSAGE_TYPE-Enumeration, der die Nachrichtentypen auflistet, die durch Aufrufen der LsaCallAuthenticationPackage-Funktion an das Kerberos-Authentifizierungspaket gesendet werden können. Dieser Member muss auf KerbAddBindingCacheEntryExMessage festgelegt werden.
RealmName
Der Name des Bereichs des Domänencontrollers.
KdcAddress
Die Adresse des Schlüsselverteilungscenters (Key Distribution Center, KDC) des Servers, an den Sie binden möchten.
AddressType
Der Zeichenfolgentyp, der im KdcAddress-Member enthalten ist. Dies kann einer der folgenden Werte sein.
DcFlags
Die vom Aufrufer bereitgestellten Domänencontrollerflags. Diese Flags werden benötigt, um an die DsGetDcName-Funktion zu übergeben.
Hinweise
Um sowohl die Anforderungen des Benutzers als auch die Anforderungen von Kerberos zu erfüllen, müssen Sie zwei Aufrufe ausführen, um den Kerberos-Domänenbindungscache außer Kraft zu setzen.
- Zunächst erstellen Sie einen Anforderungsnachrichtentyp von KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST , in dem das MessageType-Element auf KerbQueryDomainExtendedPoliciesMessage festgelegt werden muss. Das DomainName-Mitglied wird auf den tatsächlichen Domänennamen festgelegt, nach dem die erweiterten Domänenrichtlinien abgefragt werden. Wenn DomainName auf NULL festgelegt ist, wird die Domäne des lokalen Computers angenommen.
-
Als Nächstes rufen Sie die LsaCallAuthenticationPackage-Funktion mit Kerberos-Authentifizierungspaket und der Anforderungsnachricht auf. Nach erfolgreicher Rückgabe wird KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE zurückgegeben.
- Wenn der lokale Computer die DAC deaktiviert hat, wird das Flags-Element auf KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE_FLAG_DAC_DISABLED festgelegt.
- Wenn für die angegebene Domäne Flexible Authentication Secure Tunneling (FAST) aktiviert ist, wird das ExtendedPolicies-Mitglied auf KERB_EXTENDED_POLICY_FAST_CAPABLE (0x10000) festgelegt.
- Wenn für die angegebene Domäne Ansprüche aktiviert sind, wird das ExtendedPolicies-Element auf KERB_EXTENDED_POLICY_CLAIMS_CAPABLE (0x40000) festgelegt.
- Wenn die Domäne des lokalen Computers die DAC nicht deaktiviert und für die angegebene Domäne entweder FAST oder Ansprüche aktiviert ist, wird das DsFlags-Mitglied der DsGetDcName-Funktion auf DS_DIRECTORY_SERVICE_8_REQUIRED festgelegt. Andernfalls ist DsFlags 0.
- Wenn die Funktion einen Fehler im ProtocolStatus-Member zurückgibt, gibt STATUS_NOT_FOUND an, dass die angegebene Domäne nicht abgefragt werden kann, da der lokale Computer der angegebenen Domäne nicht vertraut. Andere Fehlercodes geben den tatsächlich aufgetretenen Fehler an.
- Anschließend müssen Sie DsGetDcName aufrufen, wobei die zurückgegebene DsFlags-Klasse mit Flags festgelegt ist, die Ihre eigenen Anforderungen darstellen, die mehrere sein können. Verwenden Sie daher den logischen Operator OR. Das DomainControllerInfo-Mitglied wird zurückgegeben.
- Schließlich rufen Sie die LsaCallAuthenticationPackage-Funktion erneut mit dem Kerberos-Authentifizierungspaket und der Anforderung KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST auf, in der das DcFlags-Element auf die DomainControllerInfo-Flags festgelegt ist. Alle anderen Member sollten auf die gleiche Weise wie KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST aufgefüllt werden. Wenn die DsFlags der KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE null sind, sollte entweder DcFlags beim Aufrufen von KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST auf Null festgelegt werden, oder standardmäßig auf die vorhandene KERB_ADD_BINDING_CACHE_ENTRY_REQUEST-Anforderung zurückgesetzt werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [nur Desktop-Apps] |
Kopfzeile | ntsecapi.h |