enumeração EOLE_AUTHENTICATION_CAPABILITIES (objidlbase.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. Confira 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 retornarão 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 manto dinâmico. 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 manto dinâmico, consulte Camuflagem. CoInitializeSecurity e IClientSecurity::SetBlanket retornarão 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 recursos. 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 for 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 a partir daí. 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 em chamadas coSetProxyBlanket em que um nome de entidade de segurança 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 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 na 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 AppID for NULL, CoInitializeSecurity procurará o aplicativo .exe nome no registro e usará a AppID armazenada 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 qualquer um dos seguintes sinalizadores estiver definido no parâmetro capabilities: 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 | objidlbase.h (inclua Objidl.h) |