Condividi tramite


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.

Valore Significato
DS_INET_ADDRESS
L'indirizzo è un indirizzo IP stringa del controller di dominio, ad esempio "\\157.55.94.74").
DS_NETBIOS_ADDRESS
L'indirizzo è un nome NetBIOS del controller di dominio, ad esempio "\\phoenix".

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.

  1. 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.
  2. 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.
  3. È 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 .
  4. 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

Vedi anche

LsaCallAuthenticationPackage