Compartilhar via


AppIDFlags

Um conjunto de sinalizadores que controlam o comportamento de ativação de um servidor COM.

Entrada do Registro

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
   {AppID_GUID}
      AppIDFlags = flags

Observações

Esse é um valor REG_DWORD.

Valor do sinalizador Constante
0x1 APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP
0x2 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND
0x4 APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY

 

Descrição do APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP

Se o sinalizador APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP estiver limpo em AppIDFlags ou se AppIDFlags não estiver presente, o cliente em uma sessão de servidor de terminal que faz uma solicitação de ativação para um servidor com Usuário Interativo, associará ou iniciará e associará ao servidor COM na área de trabalho "padrão" da estação de janela "winsta0" da sessão na solicitação de ativação. Por exemplo, se o cliente estiver executando "winsta0\desktop1" da sessão 3, a solicitação de ativação para a sessão 3 será associada ou será iniciada e vinculada ao servidor COM em "winsta0\default" da sessão 3, mesmo que uma instância do servidor COM já esteja em execução em "winsta0\desktop1" da sessão 3.

Se o sinalizador APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP estiver definido no valor AppIDFlags, COM será associado ou iniciará e associará ao processo do servidor em execução na área de trabalho do cliente e na sessão na solicitação de ativação. Por exemplo, se o cliente estiver executando "winsta0\desktop1" na sessão 3, a solicitação de ativação da sessão 3 será associada ou será iniciada e vinculada ao servidor COM em "winsta0\desktop1" na sessão 3, mesmo que uma instância do servidor COM já esteja em execução em "winsta0\default" na sessão 3.

O cliente pode usar o moniker de sessão para especificar uma sessão diferente da sessão do cliente ao fazer a solicitação de ativação.

O sinalizador APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP aplica-se somente aos servidores COM configurados para RunAs"de Usuário Interativo ".

Descrição do APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND

Se o sinalizador de APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND estiver definido em AppIDFlags, os servidores COM configurados para RunAs "Activator" serão iniciados com um descritor de segurança de processo que permite PROCESS_ALL_ACCESS ao SID logonID do token de processo. Além disso, o proprietário do descritor de segurança será definido como o SID LogonID do token de processo.

Se o sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND for definido em AppIDFlags, os servidores COM configurados para RunAs "Este Usuário" serão iniciados com um descritor de segurança de processo que permite PROCESS_ALL_ACCESS no SID logonID do token de processo. Além disso, o proprietário do descritor de segurança será definido como o SID LogonID do token de processo. Além disso, o SCM (Gerenciador de Controle de Serviços) COM modifica o token do processo do servidor COM da seguinte maneira:

  • Ele adiciona um SID APPID ao token. Ele concede ao SID APPID acesso total na DACL (lista de controle de acesso discricionário) padrão do token. No Windows Vista e versões posteriores do Windows, ele concede a permissão de SID ownerRights READ_CONTROL no DACL padrão do token. Nas versões pré-Windows Vista do Windows, ele define o proprietário do token como o SID APPID.

As seguintes considerações de segurança devem ser levadas em conta ao usar o sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND:

  • O sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND deve ser definido por servidores COM que são iniciados em um dos contextos internos de segurança do serviço; As contas NetworkService ou LocalService. Se os servidores representarem clientes privilegiados e se o sinalizador de APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND não estiver definido, o código mal-intencionado em execução em outros processos com o mesmo contexto de segurança poderá elevar o privilégio ao seqüestrar os tokens de representação dos clientes privilegiados do processo de servidor COM.
  • Quando o sinalizador de APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND é definido, COM protege o descritor de segurança do objeto de processo no caso de servidores COM RunAs "Activator". Para esses servidores, espera-se que o cliente COM proteja o token usado para a ativação com.
  • Quando o sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND é definido, COM protege o descritor de segurança do objeto de processo no caso de servidores COM RunAs "Este Usuário". Ele também protege o token de processo do servidor COM, pois o COM SCM é a entidade que cria o token.

O sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND tem suporte no Windows XP, Windows Server 2003, Windows Vista e Windows Server 2008 somente quando o patch de MSRC8322 ( boletim de segurançaMS09-012) é aplicado. Ele tem suporte nativo no Windows 7 e versões posteriores do Windows.

O sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND aplica-se somente aos servidores COM configurados para RunAs "Activator" ou "This User". Ele não se aplica a servidores COM que são serviços NT.

Descrição do APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY

Se o sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY estiver definido em AppIDFlags, o SCM COM emitirá solicitações de ativação de objeto para o processo de servidor COM usando um nível de representação de RPC_C_IMP_LEVEL_IDENTIFY.

Se o sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY não estiver definido, o SCM COM emitirá solicitações de ativação de objeto para os processos do servidor COM usando um nível de representação de RPC_C_IMP_LEVEL_IMPERSONATE.

As seguintes considerações de segurança devem ser levadas em conta ao usar o sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY:

  • O sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY deve ser usado por servidores COM que não executam trabalho em nome de clientes em solicitações de ativação de objeto. Para esses servidores, ter as solicitações de ativação de objeto de problema do COM SCM em RPC_C_IMP_LEVEL_IDENTIFY minimiza as chances de tokens privilegiados com SE_IMPERSONATE_NAME nível aparecendo no processo.

O sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY tem suporte no Windows 7 e versões posteriores do Windows.

Desktops

níveis de representação

de Usuário Interativo

monikers de sessão