estructura KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST (ntsecapi.h)

Permite al usuario enlazar a un controlador de dominio específico (DC), reemplazando la caché de enlace de dominio Kerberos. Kerberos aplica una búsqueda de controlador de dominio cuando se habilita dynamic Access Control (DAC), por lo que normalmente la autenticación no está enlazada a un controlador de dominio específico. Es posible que determinados usuarios quieran enlazar con el controlador de dominio específico en el que crearon una cuenta o establecer una nueva contraseña para evitar el retraso de replicación del controlador de dominio. Debe tener establecido el privilegio SeTcbPrivilege .

Sintaxis

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;

Miembros

MessageType

Valor de la enumeración KERB_PROTOCOL_MESSAGE_TYPE que enumera los tipos de mensajes que se pueden enviar al paquete de autenticación Kerberos mediante una llamada a la función LsaCallAuthenticationPackage . Este miembro debe establecerse en KerbAddBindingCacheEntryExMessage.

RealmName

Nombre del dominio kerberos del controlador de dominio.

KdcAddress

Dirección del Centro de distribución de claves (KDC) del servidor al que desea enlazar.

AddressType

Tipo de cadena que se encuentra en el miembro KdcAddress . Puede ser uno de los valores siguientes.

Valor Significado
DS_INET_ADDRESS
La dirección es una dirección IP de cadena del controlador de dominio, por ejemplo, "\\157.55.94.74").
DS_NETBIOS_ADDRESS
La dirección es un nombre NetBIOS del controlador de dominio, por ejemplo, "\\phoenix".

DcFlags

El controlador de dominio marca que proporciona el autor de la llamada. Estas marcas son necesarias para pasar a la función DsGetDcName .

Comentarios

Para cumplir los requisitos del usuario y los requisitos de Kerberos, debe realizar dos llamadas para invalidar la caché de enlace de dominio kerberos.

  1. En primer lugar, se crea un tipo de mensaje de solicitud de KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST en el que el miembro MessageType debe establecerse en KerbQueryDomainExtendedPoliciesMessage. El miembro DomainName se establece en el nombre de dominio real para el que se consultan las directivas de dominio extendidas. Si DomainName se establece en null, se supone que el dominio del equipo local.
  2. A continuación, llame a la función LsaCallAuthenticationPackage con el paquete de autenticación Kerberos y el mensaje de solicitud. Tras la devolución correcta, se devuelve KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE .
    • Si el equipo local ha deshabilitado la DAC, el miembro Flags se establece en KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE_FLAG_DAC_DISABLED.
    • Si el dominio especificado tiene habilitada la tunelización segura de autenticación flexible (FAST), el miembro ExtendedPolicies se establece en KERB_EXTENDED_POLICY_FAST_CAPABLE (0x10000).
    • Si el dominio especificado tiene habilitadas las notificaciones, el miembro ExtendedPolicies se establece en KERB_EXTENDED_POLICY_CLAIMS_CAPABLE (0x40000).
    • Si el dominio del equipo local no deshabilita la DAC y el dominio especificado tiene habilitado FAST o Claims, el miembro DsFlags de la función DsGetDcName se establece en DS_DIRECTORY_SERVICE_8_REQUIRED. De lo contrario, DsFlags es 0.
    • Si la función devuelve un error en el miembro ProtocolStatus , STATUS_NOT_FOUND indica que no se puede consultar el dominio especificado porque el equipo local no tiene confianza en el dominio especificado. Otros códigos de error indican el error real encontrado.
  3. A continuación, debe llamar a DsGetDcName con el DsFlags devuelto establecido con marcas que representen sus propios requisitos, que pueden ser varios, por lo que use el operador lógico OR. Se devuelve el miembro DomainControllerInfo .
  4. Por último, llama a la función LsaCallAuthenticationPackage de nuevo con el paquete de autenticación Kerberos y la solicitud KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST en la que el miembro DcFlags se establece en las marcas DomainControllerInfo . Todos los demás miembros deben rellenarse de la misma manera que KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST. Si el DsFlags de la KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE es cero, dcFlags debe establecerse en cero al llamar a KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST o volver de forma predeterminada a la solicitud de KERB_ADD_BINDING_CACHE_ENTRY_REQUEST existente.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Encabezado ntsecapi.h

Consulte también

LsaCallAuthenticationPackage