struttura KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST (ntsecapi.h)
Consente all'utente di eseguire l'associazione a un controller di dominio specifico, eseguendo l'override della cache dell'associazione di dominio Kerberos. Kerberos applica una ricerca del controller di dominio quando è abilitata l'applicazione livello dati dinamica Controllo di accesso, quindi in genere l'autenticazione non è associata a un controller di dominio specifico. Alcuni utenti potrebbero voler eseguire il binding al controller di dominio specifico in cui ha creato un account o impostare una nuova password per evitare il ritardo della replica del controller di dominio. È necessario disporre del set di privilegi SeTcbPrivilege .
Sintassi
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;
Members
MessageType
Valore dell'enumerazione KERB_PROTOCOL_MESSAGE_TYPE che elenca i tipi di messaggi che possono essere inviati al pacchetto di autenticazione Kerberos chiamando la funzione LsaCallAuthenticationPackage . Questo membro deve essere impostato su KerbAddBindingCacheEntryExMessage.
RealmName
Nome dell'area di autenticazione del controller di dominio.
KdcAddress
Indirizzo del Centro distribuzione chiavi (KDC) del server a cui si vuole eseguire l'associazione.
AddressType
Tipo di stringa contenuto nel membro KdcAddress . Può trattarsi di uno dei valori seguenti.
DcFlags
Il controller di dominio contrassegna il chiamante. Questi flag sono necessari per passare alla funzione DsGetDcName .
Commenti
Per soddisfare i requisiti dell'utente e i requisiti di Kerberos, è necessario effettuare due chiamate per eseguire l'override della cache dell'associazione di dominio Kerberos.
- Creare prima di tutto un tipo di messaggio di richiesta di KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST in cui il membro MessageType deve essere impostato su KerbQueryDomainExtendedPoliciesMessage. Il membro DomainName è impostato sul nome di dominio effettivo per il quale vengono sottoposti a query i criteri di dominio estesi. Se DomainName è impostato su Null, verrà utilizzato il dominio del computer locale.
-
Chiamare quindi la funzione LsaCallAuthenticationPackage con il pacchetto di autenticazione Kerberos e il messaggio di richiesta. Al termine della restituzione, viene restituito KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE .
- Se il computer locale ha disabilitato l'applicazione livello dati, il membro Flags è impostato su KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE_FLAG_DAC_DISABLED.
- Se il dominio specificato dispone di Fast Secure Tunneling (Flexible Authentication Secure Tunneling) abilitato, il membro ExtendedPolicies è impostato su KERB_EXTENDED_POLICY_FAST_CAPABLE (0x10000).
- Se il dominio specificato dispone di attestazioni abilitate, il membro ExtendedPolicies è impostato su KERB_EXTENDED_POLICY_CLAIMS_CAPABLE (0x40000).
- Se il dominio del computer locale non disabilita l'applicazione livello dati e il dominio specificato dispone di FAST o Claims abilitato, il membro DsFlags della funzione DsGetDcName è impostato su DS_DIRECTORY_SERVICE_8_REQUIRED. In caso contrario, DsFlags è 0.
- Se la funzione restituisce un errore nel membro ProtocolStatus , STATUS_NOT_FOUND indica che il dominio specificato non può essere sottoposto a query perché il computer locale non dispone di attendibilità per il dominio specificato. Altri codici di errore indicano l'errore effettivo rilevato.
- È quindi necessario chiamare DsGetDcName con il DsFlags restituito impostato con i flag che rappresentano i propri requisiti, che possono essere diversi, quindi usare l'operatore logico OR. Viene restituito il membro DomainControllerInfo .
- Infine, chiamare di nuovo la funzione LsaCallAuthenticationPackage con il pacchetto di autenticazione Kerberos e la richiesta KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST in cui il membro DcFlags è impostato sui flag DomainControllerInfo . Tutti gli altri membri devono essere popolati nello stesso modo di KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST. Se i DsFlags del KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE sono zero, DcFlags deve essere impostato su zero quando si chiama KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST o si torna alla richiesta di KERB_ADD_BINDING_CACHE_ENTRY_REQUEST esistente.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [solo app desktop] |
Server minimo supportato | Windows Server 2012 [solo app desktop] |
Intestazione | ntsecapi.h |