Compartilhar via


COM Access Control

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Após um bem-sucedido autenticação, o caixa de seleção de acesso é executada contra a lista acessar. A lista acessar é criada a partir de DefaultAccessPermission Configurações Registro ou programaticamente fornecido através de DCOMAccessControl objeto durante inicialização servidor. Se for o caixa de seleção de acesso bem-sucedido, o usuário é concedido acessar para o computador como um todo. Nenhuma caixa de seleção de acesso é executada para local ativações; acessar as solicitações são concedidas automaticamente.

Para todas as plataformas

Windows Embedded CE contém um DCOMAccessControl objeto que usa o tempo de execução DCOM para verificação de segurança interna todos os. Por padrão, o DCOMAccessControl objeto é inicializado com o conteúdo de AccessPermission e DefaultAccessPermission Chaves Registro. Como alternativa, o Registro chaves podem ser fornecido programaticamente por meio de CoInitializeSecurity função. Autenticação de usuário é baseada em NTLM verificação de nome usuário e senha. Uma lista dos nomes usuário pode ser usada para determinar os privilégios acessar de cada usuário. Esse processo é descrito o seguinte tópicos.

Em Windows Embedded CE, após um aplicativo modifica as configurações de segurança-deve chamar a função UpdateDCOMSettings para instruir DCOM para recarregar o DCOM as configurações de segurança a partir de Registro.

Além disso, todos os DCOM componentes que já estão execução deve ser recarregada para novas configurações tenham efeito sobre eles. De exemplo, se um usuário fosse para alteração de LaunchPermission e AccessPermission teclas Registro para um componente específico e o componente já tinham sido iniciadas, o componente deve ser recarregadas para permissões tenham efeito.

OEnableRemoteConnecte LegacyMutualAthenticationRegistro configurações não estão com suporte em Windows Embedded CE e, se eles estiverem presentes, elas são ignoradas.

O DefaultAccessPermission, DefaultLaunchPermission, AccessPermission, e LaunchPermission Chaves mantenha um valor REG_BINARY que contém a access-control list (ACL) dos objetos de quem podem iniciar classes no atual sistema. O seguinte mostra a estrutura de ACL exemplo de código.

typedef struct {
    WORD  wVersion;
    WORD  wPad;
    GUID  gClass;
    WCHAR szPerms[1];
} Permissions;

O wVersion membro deve ser definido para = 3.

O gClass membro contém a identificador exclusivo (GUID) das AccessControl objeto e deve ser definida como CLSID_DCOMAccessControl. Esse valor é ignorado na LaunchPermission e DefaultLaunchPermission As chaves.

O szPerms membro é um seqüência de caracteres acessar que AccessControl::Load Recebe das IStream interface. O seguinte exemplo de código mostra a sintaxe BNF usada pelo szPerms.

szPerms := ""
szPerms := AccessList
AccessList := IndividualControl
AccessList := IndividualControl;AccessList
IndividualControl := Principal
IndividualControl := -Principal
Principal := @groupname
Principal := username
Principal := @star
star := *

Exemplos

O seguinte seqüência de caracteres permite usuário1 User2 e GRUPO o administrador e restringe o usuário user3 e GRUPO o villains.

"user1;user2;-user3;@administrators;-@villains"

Seqüências são interpretadas em seqüência — em outras palavras, se User1 é um membro de GRUPO o Grupo1, a seguinte seqüências irá permitir que USER1.

user1
@group1
@group1;user1
user1;@group1
@group1;-user1
user1;-@group1
user1;-user1
*;-user1;-@group1

O seguinte seqüências de caracteres serão restringir usuário1.

-user1
-@group1
-user1;@group1
-@group1;user1
-user1;user1
-user1;*

Essa sintaxe incorpora o seguinte regras:

  • Nomes de grupo são prefixados com a sinal de arroba (@).
  • Nomes de usuários ou grupos são prefixados com um hífen (-) para acessar desautorizar.
  • O caractere curinga asterisco (*) ou sinal de arroba e asterisco (@ *) permite que todos os usuários, enquanto o caractere curinga hífen e asterisco (-*) ou hífen, sinal de arroba e asterisco (- @ *) nega todos os usuários. O caractere curinga asterisco (*) é um GRUPO e deve ser marcado como tal. Analisadores dentro DCOM entender tanto as sinal de arroba e asterisco (@ *) e a sintaxe asterisco (*), mas elas sempre usar o asterisco e sinal de arroba (@ *) sintaxe próprios.

Além disso, para poder usar o remoto funcionalidade de DCOM, as credenciais acessar do usuário deve estar definida no HKEY_CURRENT_USER\Comm\Ident. O nome do computador deve ser definido como um exclusivo valor sobre o local na rede HKEY_LOCAL_MACHINE\Ident. Para autenticação NTLM para trabalho, o domínio deve ser configurado no HKEY_LOCAL_MACHINE\Comm\Redir, conforme o seguinte exemplo de código.

Exemplo

[HKEY_LOCAL_MACHINE\Ident]
    Name=WinCEDCOMServer
    Desc=DCOM server box
    OrigName=WinCE
[HKEY_LOCAL_MACHINE\Comm\Redir]
    DefaultDomain=REDMOND

Para Windows incorporado CE

Para obter mais informações configurações Registro, consulte COM and DCOM Registry Settings.

Para obter mais informações sobre local e passagem autenticação, incluindo o uso e Registro configuração instruções, consulte Security Support Provider Interface Architecture.**

Para Mobile Windows

Observação

Para obter informações sobre as diferenças entre a implementação COM disponível para dispositivos Windows Mobile powered e que disponível para dispositivos Windows Embedded CE , consulte COM and DCOM in Windows Mobile Powered Devices.

See Also

Concepts

COM Authentication
DCOM Security Configuration Utility
Developing Secure ActiveX Controls
COM and DCOM Registry Settings

Other Resources

Component Services (COM and DCOM)
Enhancing the Security of a Device