enumeración EOLE_AUTHENTICATION_CAPABILITIES (objidl.h)

Especifica varias funcionalidades en CoInitializeSecurity e IClientSecurity::SetBlanket (o su función auxiliar CoSetProxyBlanket).

Syntax

typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
  EOAC_NONE = 0,
  EOAC_MUTUAL_AUTH = 0x1,
  EOAC_STATIC_CLOAKING = 0x20,
  EOAC_DYNAMIC_CLOAKING = 0x40,
  EOAC_ANY_AUTHORITY = 0x80,
  EOAC_MAKE_FULLSIC = 0x100,
  EOAC_DEFAULT = 0x800,
  EOAC_SECURE_REFS = 0x2,
  EOAC_ACCESS_CONTROL = 0x4,
  EOAC_APPID = 0x8,
  EOAC_DYNAMIC = 0x10,
  EOAC_REQUIRE_FULLSIC = 0x200,
  EOAC_AUTO_IMPERSONATE = 0x400,
  EOAC_DISABLE_AAA = 0x1000,
  EOAC_NO_CUSTOM_MARSHAL = 0x2000,
  EOAC_RESERVED1 = 0x4000
} EOLE_AUTHENTICATION_CAPABILITIES;

Constantes

 
EOAC_NONE
Valor: 0
Indica que no se han establecido marcas de funcionalidad.
EOAC_MUTUAL_AUTH
Valor: 0x1
Si se especifica esta marca, se omitirá. Algunos servicios de autenticación proporcionan automáticamente compatibilidad con la autenticación mutua. Consulte Com y paquetes de seguridad para obtener más información.
EOAC_STATIC_CLOAKING
Valor: 0x20
Establece el ocultamiento estático. Cuando se establece esta marca, DCOM usa el token de subproceso (si existe) al determinar la identidad del cliente. Sin embargo, la identidad del cliente se determina en la primera llamada en cada proxy (si no se llama a SetBlanket ) y cada vez que se llama a CoSetProxyBlanket en el proxy. Para obtener más información sobre el ocultamiento estático, vea Cloaking.


CoInitializeSecurity e IClientSecurity::SetBlanket devuelven errores si se establecen ambas marcas de ocultación o si se establece una marca cuando Schannel es el servicio de autenticación.
EOAC_DYNAMIC_CLOAKING
Valor: 0x40
Establece el ocultamiento dinámico. Cuando se establece esta marca, DCOM usa el token de subproceso (si existe) al determinar la identidad del cliente. En cada llamada a un proxy, se examina el token del subproceso actual para determinar si la identidad del cliente ha cambiado (incurriendo en un costo de rendimiento adicional) y el cliente se autentica de nuevo solo si es necesario. Los clientes solo pueden establecer el ocultamiento dinámico. Para obtener más información sobre el ocultamiento dinámico, vea Cloaking.


CoInitializeSecurity e IClientSecurity::SetBlanket devuelven errores si se establecen ambas marcas de ocultación o si se establece una marca cuando Schannel es el servicio de autenticación.
EOAC_ANY_AUTHORITY
Valor: 0x80
Este marcador está obsoleto.
EOAC_MAKE_FULLSIC
Valor: 0x100
Hace que DCOM envíe nombres de entidad de seguridad de servidor Schannel en formato completo a los clientes como parte de la negociación de seguridad predeterminada. El nombre se extrae del certificado de servidor. Para obtener más información sobre el formulario completo, vea Nombres principales.
EOAC_DEFAULT
Valor: 0x800
Indica a DCOM que use las funcionalidades válidas de la llamada a CoInitializeSecurity. Si no se ha llamado a CoInitializeSecurity , se usará EOAC_NONE para la marca de funcionalidades. Solo los clientes pueden establecer esta marca en una llamada a IClientSecurity::SetBlanket o CoSetProxyBlanket.
EOAC_SECURE_REFS
Valor: 0x2
Autentica las llamadas de recuento de referencias distribuidas para evitar que los usuarios malintencionados liberen objetos que todavía se usan. Si se establece esta marca, que solo se puede realizar en una llamada a CoInitializeSecurity por parte del cliente, el nivel de autenticación (en dwAuthnLevel) no se puede establecer en ninguno.

El servidor siempre autentica las llamadas de versión. Establecer esta marca impide que un cliente autenticado libere los objetos de otro cliente autenticado. Se recomienda que los clientes siempre establezcan esta marca, aunque el rendimiento se ve afectado debido a la sobrecarga asociada a la seguridad adicional.
EOAC_ACCESS_CONTROL
Valor: 0x4
Indica que el parámetro pSecDesc para CoInitializeSecurity es un puntero a una interfaz IAccessControl en un objeto de control de acceso. Cuando DCOM realiza comprobaciones de seguridad, llama a IAccessControl::IsAccessAllowed. El servidor establece esta marca únicamente.


CoInitializeSecurity devuelve un error si se establecen las marcas EOAC_APPID y EOAC_ACCESS_CONTROL.
EOAC_APPID
Valor: 0x8
Indica que el parámetro pSecDesc para CoInitializeSecurity es un puntero a un GUID que es un AppID. La función CoInitializeSecurity busca el AppID en el Registro y lee la configuración de seguridad desde allí. Si se establece esta marca, se omiten todos los demás parámetros en CoInitializeSecurity y deben ser cero. Solo el servidor puede establecer esta marca. Para obtener más información sobre esta marca de funcionalidad, vea la sección Comentarios a continuación.


CoInitializeSecurity devuelve un error si se establecen las marcas EOAC_APPID y EOAC_ACCESS_CONTROL.
EOAC_DYNAMIC
Valor: 0x10
Reservado.
EOAC_REQUIRE_FULLSIC
Valor: 0x200
Hace que DCOM produzca un error en las llamadas a CoSetProxyBlanket en las que se especifica un nombre principal de Schannel en cualquier formato que no sea fullsic. Esta marca solo es para clientes. Para obtener más información sobre el formulario completo, vea Nombres principales.
EOAC_AUTO_IMPERSONATE
Valor: 0x400
Reservado.
EOAC_DISABLE_AAA
Valor: 0x1000
Hace que se produzca un error en cualquier activación en la que se inicie un proceso de servidor bajo la identidad del autor de la llamada (activador como activador) con E_ACCESSDENIED. Este valor, que solo se puede especificar en una llamada a CoInitializeSecurity por parte del cliente, permite que una aplicación que se ejecute en una cuenta con privilegios (como LocalSystem) ayude a evitar que su identidad se use para iniciar componentes que no son de confianza.

Una llamada de activación que usa CLSCTX_ENABLE_AAA de la enumeración CLSCTX permitirá activaciones de activación como activador para esa llamada.
EOAC_NO_CUSTOM_MARSHAL
Valor: 0x2000
Especificar esta marca ayuda a proteger la seguridad del servidor al usar DCOM o COM+. Reduce las posibilidades de ejecutar archivos DLL arbitrarios porque permite la serialización de solo CLSID que se implementan en Ole32.dll, ComAdmin.dll, ComSvcs.dll o Es.dll, o que implementan el identificador de categoría de CATID_MARSHALER. Cualquier servicio que sea crítico para la operación del sistema debe establecer esta marca.
EOAC_RESERVED1
Valor: 0x4000

Comentarios

Cuando se establece la marca EOAC_APPID, CoInitializeSecurity busca el nivel de autenticación en appID. Si no se encuentra el nivel de autenticación, busca el nivel de autenticación predeterminado. Si no se encuentra el nivel de autenticación predeterminado, genera un nivel de autenticación predeterminado de conexión. Si el nivel de autenticación no es RPC_C_AUTHN_LEVEL_NONE, CoInitializeSecurity busca el valor del permiso de acceso en appID. Si no se encuentra, busca el valor de permiso de acceso predeterminado. Si no se encuentra, genera un permiso de acceso predeterminado. Todas las demás configuraciones de seguridad se determinan de la misma manera que para una aplicación heredada.

Si appID es NULL, CoInitializeSecurity busca el nombre de la aplicación .exe en el registro y usa el AppID almacenado allí. Si el AppID no existe, se usan los valores predeterminados de la máquina.

El método IClientSecurity::SetBlanket y la función CoSetProxyBlanket devuelven un error si se establece alguna de las marcas siguientes en el parámetro capabilities: EOAC_SECURE_REFS, EOAC_ACCESS_CONTROL, EOAC_APPID, EOAC_DYNAMIC, EOAC_REQUIRE_FULLSIC, EOAC_DISABLE_AAA o EOAC_NO_CUSTOM_MARSHAL.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado objidl.h (incluya Objidl.h)

Consulte también

CoInitializeSecurity

CoSetProxyBlanket

IAccessControl

IClientSecurity::SetBlanket