EOLE_AUTHENTICATION_CAPABILITIES enumeração (objidl.h)

Especifica vários recursos em CoInitializeSecurity e IClientSecurity::SetBlanket (ou sua função 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 nenhum sinalizador de funcionalidade está definido.
EOAC_MUTUAL_AUTH
Valor: 0x1
Se esse sinalizador for especificado, ele será ignorado. O suporte para autenticação mútua é fornecido automaticamente por alguns serviços de autenticação. Consulte COM e Pacotes de Segurança para obter mais informações.
EOAC_STATIC_CLOAKING
Valor: 0x20
Define o manto estático. Quando esse sinalizador é definido, o DCOM usa o token de thread (se presente) ao determinar a identidade do cliente. No entanto, a identidade do cliente é determinada na primeira chamada em cada proxy (se SetBlanket não for chamado) e sempre que CoSetProxyBlanket for chamado no proxy. Para obter mais informações sobre o manto estático, consulte Camuflagem.


CoInitializeSecurity e IClientSecurity::SetBlanket retornam erros se ambos os sinalizadores de camuflagem estiverem definidos ou se um dos sinalizadores estiver definido quando schannel for o serviço de autenticação.
EOAC_DYNAMIC_CLOAKING
Valor: 0x40
Define o camuflagem dinâmica. Quando esse sinalizador é definido, o DCOM usa o token de thread (se presente) ao determinar a identidade do cliente. Em cada chamada para um proxy, o token de thread atual é examinado para determinar se a identidade do cliente foi alterada (incorrendo em um custo de desempenho adicional) e o cliente é autenticado novamente somente se necessário. O camuflagem dinâmica só pode ser definido por clientes. Para obter mais informações sobre o camuflagem dinâmica, consulte Camuflagem.


CoInitializeSecurity e IClientSecurity::SetBlanket retornam erros se ambos os sinalizadores de camuflagem estiverem definidos ou se um dos sinalizadores estiver definido quando schannel for o serviço de autenticação.
EOAC_ANY_AUTHORITY
Valor: 0x80
Esse sinalizador é obsoleto.
EOAC_MAKE_FULLSIC
Valor: 0x100
Faz com que o DCOM envie nomes de entidade de segurança do servidor Schannel em formato completo aos clientes como parte da negociação de segurança padrão. O nome é extraído do certificado do servidor. Para obter mais informações sobre o formulário completo, consulte Nomes de entidade de segurança.
EOAC_DEFAULT
Valor: 0x800
Informa ao DCOM para usar os recursos válidos da chamada para CoInitializeSecurity. Se CoInitializeSecurity não tiver sido chamado, EOAC_NONE será usado para o sinalizador de funcionalidades. Esse sinalizador só pode ser definido por clientes em uma chamada para IClientSecurity::SetBlanket ou CoSetProxyBlanket.
EOAC_SECURE_REFS
Valor: 0x2
Autentica chamadas de contagem de referência distribuída para impedir que usuários mal-intencionados liberem objetos que ainda estão sendo usados. Se esse sinalizador estiver definido, o que só poderá ser feito em uma chamada para CoInitializeSecurity pelo cliente, o nível de autenticação (em dwAuthnLevel) não poderá ser definido como nenhum.

O servidor sempre autentica chamadas de versão. Definir esse sinalizador impede que um cliente autenticado libere os objetos de outro cliente autenticado. É recomendável que os clientes sempre definam esse sinalizador, embora o desempenho seja afetado devido à sobrecarga associada à segurança extra.
EOAC_ACCESS_CONTROL
Valor: 0x4
Indica que o parâmetro pSecDesc para CoInitializeSecurity é um ponteiro para uma interface IAccessControl em um objeto de controle de acesso. Quando o DCOM faz verificações de segurança, ele chama IAccessControl::IsAccessAllowed. Esse sinalizador é definido apenas pelo servidor.


CoInitializeSecurity retornará um erro se os sinalizadores EOAC_APPID e EOAC_ACCESS_CONTROL estiverem definidos.
EOAC_APPID
Valor: 0x8
Indica que o parâmetro pSecDesc para CoInitializeSecurity é um ponteiro para um GUID que é um AppID. A função CoInitializeSecurity pesquisa o AppID no registro e lê as configurações de segurança nela. Se esse sinalizador for definido, todos os outros parâmetros para CoInitializeSecurity serão ignorados e deverão ser zero. Somente o servidor pode definir esse sinalizador. Para obter mais informações sobre esse sinalizador de funcionalidade, consulte a seção Comentários abaixo.


CoInitializeSecurity retornará um erro se os sinalizadores EOAC_APPID e EOAC_ACCESS_CONTROL estiverem definidos.
EOAC_DYNAMIC
Valor: 0x10
Reservado.
EOAC_REQUIRE_FULLSIC
Valor: 0x200
Faz com que o DCOM falhe nas chamadas de CoSetProxyBlanket em que um nome de entidade de segurança do Schannel é especificado em qualquer formato diferente de fullsic. Atualmente, esse sinalizador é apenas para clientes. Para obter mais informações sobre o formulário completo, consulte Nomes de entidade de segurança.
EOAC_AUTO_IMPERSONATE
Valor: 0x400
Reservado.
EOAC_DISABLE_AAA
Valor: 0x1000
Faz com que qualquer ativação em que um processo de servidor seja iniciado sob a identidade do chamador (ativar como ativador) falhe com E_ACCESSDENIED. Esse valor, que só pode ser especificado em uma chamada para CoInitializeSecurity pelo cliente, permite que um aplicativo executado em uma conta privilegiada (como LocalSystem) ajude a impedir que sua identidade seja usada para iniciar componentes não confiáveis.

Uma chamada de ativação que usa CLSCTX_ENABLE_AAA da enumeração CLSCTX permitirá ativações ativadas como ativadoras para essa chamada.
EOAC_NO_CUSTOM_MARSHAL
Valor: 0x2000
Especificar esse sinalizador ajuda a proteger a segurança do servidor ao usar DCOM ou COM+. Ele reduz as chances de executar DLLs arbitrárias porque permite o marshaling apenas de CLSIDs implementados em Ole32.dll, ComAdmin.dll, ComSvcs.dll ou Es.dll ou que implementam a ID da categoria CATID_MARSHALER. Qualquer serviço crítico para a operação do sistema deve definir esse sinalizador.
EOAC_RESERVED1
Valor: 0x4000

Comentários

Quando o sinalizador EOAC_APPID é definido, CoInitializeSecurity procura o nível de autenticação no AppID. Se o nível de autenticação não for encontrado, ele procurará o nível de autenticação padrão. Se o nível de autenticação padrão não for encontrado, ele gerará um nível de autenticação padrão de conexão. Se o nível de autenticação não for RPC_C_AUTHN_LEVEL_NONE, CoInitializeSecurity procurará o valor da permissão de acesso no AppID. Se não for encontrado, ele procurará o valor de permissão de acesso padrão. Se não for encontrado, ele gerará uma permissão de acesso padrão. Todas as outras configurações de segurança são determinadas da mesma maneira que para um aplicativo herdado.

Se o AppID for NULL, CoInitializeSecurity procurará o aplicativo .exe nome no registro e usará o AppID armazenado lá. Se o AppID não existir, os padrões do computador serão usados.

O método IClientSecurity::SetBlanket e a função CoSetProxyBlanket retornarão um erro se algum dos seguintes sinalizadores estiver definido no parâmetro de funcionalidades: EOAC_SECURE_REFS, EOAC_ACCESS_CONTROL, EOAC_APPID, EOAC_DYNAMIC, EOAC_REQUIRE_FULLSIC, EOAC_DISABLE_AAA ou EOAC_NO_CUSTOM_MARSHAL.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho objidl.h (inclua Objidl.h)

Confira também

CoInitializeSecurity

CoSetProxyBlanket

Iaccesscontrol

IClientSecurity::SetBlanket