Share via


Autenticação e autorização do LightSwitch

Em LightSwitch, você pode fazer seu aplicativo mais seguro evitando usuários não autorizados de leitura, modificando, ou deletando dados. Se você implementar autenticação e autorização, os usuários devem provar as identidades antes que possa acessar o aplicativo. Se você tiver vários usuários, você também pode gerenciar o acesso mais facilmente criando funções de usuário que têm vários níveis de acesso para telas específicos e dados e atribuir a cada usuário ao papel apropriado.

Por exemplo, um aplicativo de folha de pagamento pode permitir que os funcionários visualizem, mas não alterem, suas informações da folha de pagamento. No entanto, um supervisor de folha de pagamento poderia ter a permissão para visualizar e alterar informações do funcionário. Os funcionários seriam atribuídos à função Funcionário e o supervisor seria atribuído à função de Supervisor.

Você também pode administrar permissões mais facilmente adicionando usuários a grupos de segurança no Active Directory e então atribuindo permissões a esses grupos. Devido à participação como membro e às permissões serem herdadas, você pode conceder e negar permissões não apenas a um grupo mas também a todos os seus subgrupos fazendo uma única alteração. Por exemplo, você pode adicionar Bob ao grupo de Vendas no Active Directory. Se Vendas é um subgrupo de Mercado, todas as permissões que você conceder a Mercado também será concedida a Bob.

Autenticação

O primeiro passo para proteger seu aplicativo é habilitar a autenticação. Você pode usar tanto a autenticação de Formulários quanto a autenticação do Windows. A autenticação de formulários é gerenciada pelo próprio aplicativo, e um usuário deve fornecer um nome de usuário e uma senha para acessar o aplicativo. Na autenticação do Windows, as credenciais que foram usadas para fazer logon no computador onde o aplicativo é executado são usadas para autenticar o usuário do aplicativo, e nenhuma senha ou nome de usuário adicional é necessário. Em ambos os casos, um administrador do aplicativo mantém uma lista de usuários autorizados; na autenticação de formulários, o administrador também mantém senhas criptografadas.

Para habilitar a autenticação

  1. Em Gerenciador de Soluções, abra o menu de atalho para o nó de Propriedades , e então escolha Abrir.

  2. No Designer de aplicativo, escolha a guia de Controle de Acesso .

  3. Na lista de Selecione o tipo de autenticação para usar: , escolha Usar Autenticação do Windows ou Usar autenticação do Forms.

    Se você escolher Usar Autenticação do Windows, escolha o botão de opção de Permite somente os usuários especificados na tela de usuários do seu aplicativo ou no botão de opção Permite qualquer usuário autenticado do Windows .

    O aplicativo agora irá exigir que os usuários forneçam credenciais para acessar o aplicativo.

Para desativar a autenticação

  1. Em Gerenciador de Soluções, abra o menu de atalho para o nó de Propriedades , e então escolha Abrir.

  2. No Designer de aplicativo, escolha a guia de Controle de Acesso .

  3. Na lista de Selecione o tipo de autenticação para usar: , escolha Não ativar a autenticação.

    O aplicativo não exigirá que os usuários forneçam credenciais para acessar o aplicativo, e qualquer usuário pode acessar cada parte do aplicativo.

Permissões

A próxima etapa para proteger seu aplicativo é criar permissões. Você pode definir permissões para telas, comandos, entidades de dados e consultas. Primeiro, defina um objeto de permissão no Designer de Aplicativo. Em seguida, você pode referenciar o objeto no código, em um dos métodos Can tal como o CanRun<ScreenName> ou o <QueryName>_CanExecute. O código nesses métodos normalmente verifica se o usuário ou a função atual tem a permissão e então exibe o formulário ou executa a consulta somente se a permissão é validada.

Para testar seu código, execute o aplicativo tanto como um usuário que tenha a permissão quanto como um usuário que não a tenha. Definindo permissões de depuração, você pode representar um usuário quando você testar ou depurar o aplicativo.

Para criar uma permissão

  1. Em Gerenciador de Soluções, abra o menu de atalho para o nó de Propriedades , e então escolha Abrir.

  2. No Designer de aplicativo, escolha a guia de Controle de Acesso .

  3. Na grade de Defina permissões ou selecione permissões usar para depuração , na coluna de Nome , escolha <Add New Permission>, e digite um nome para programático a permissão.

    O nome deve começar com um caractere alfabético, e só pode conter caracteres alfabéticos, numéricos ou sublinhados.

  4. Na coluna de Nome para Exibição , digite o nome de permissão porque você deseja que apareça na tela que o administrador do aplicativo usará para atribuir a funções.

  5. Na coluna de Descrição , digite uma descrição de permissão.

Escrever código para definir permissões para uma tela

  1. Em Gerenciador de Soluções, abra o menu de atalho para um nó da tela, e então escolha Abrir.

    Selecione o designer para essa tela abre.

  2. Na lista de Escreva código , escolha CanRunScreenNameScreenName , onde é o nome da tela selecionada.

  3. Em Editor de Códigos, digite o seguinte código no método de CanRunScreenName :

    If Current.User.HasPermission(Can_View_Products) Then
        result =  True
    Else
        result = False
    End If
    
    if (Current.User.HasPermission(Permissions.Can_View_Products)) 
    {
        result = true;
    } 
    else 
    {
        result = false;
    }
    

    Esse código será avaliado toda vez que o aplicativo for iniciado.

    ObservaçãoObservação

    Observe que o código de exemplo verifica se há uma permissão nomeada Can_View_Products. Sempre que ela aparecer, substitua o nome de uma permissão que você tenha definido em seu aplicativo.

Escrever código para definir permissões para um comando

  1. Em Gerenciador de Soluções, abra o menu de atalho para um nó da tela, e então escolha Abrir.

    Selecione o designer para essa tela abre.

  2. No painel de Árvore de Conteúdo da Tela , expanda o nó de comando, e então escolha o comando para o qual você deseja escrever código.

  3. Abra o menu de atalho para o comando, e então escolha ButtonName**_CanExecute**ButtonName , onde é o nome do comando que você escolher.

  4. Em Editor de Códigos, insira código que você deseja no método de ButtonName**_CanExecute** .

    ObservaçãoObservação

    Para obter um exemplo de código, consulte "Escrever código para definir permissões para uma tela" anteriormente neste tópico.

Escrever código para definir permissões para uma entidade

  1. Em Gerenciador de Soluções, abra o menu de atalho para um nó de entidade, e então escolha Abrir.

    Designer de entidade para a entidade abre.

  2. Na lista de Escreva código , escolha um método de EntityName**_Can**OperaçãoEntityName , onde é o nome de entidade, e Operação é o nome da operação que você deseja escrever código.

    ObservaçãoObservação

    Os métodos disponíveis desde o contexto. Alguns exemplos são CanDelete e CanUpdate.

  3. Em Editor de Códigos, insira código que você deseja no método de EntityName**_Can**Operação .

    ObservaçãoObservação

    Para obter um exemplo de código, consulte "Escrever código para definir permissões para uma tela" anteriormente neste tópico.

Escrever código para definir permissões para uma consulta

  1. Em Gerenciador de Soluções, abra o menu de atalho para um nó de consulta, e então escolha Abrir.

    Designer de Consulta para a consulta é aberta.

  2. Na lista de Escreva código , escolha um dos métodos de QueryName**_CanExecute**QueryName , onde é o nome da consulta.

  3. Em Editor de Códigos, insira código que você deseja no método de QueryName**_CanExecute** .

    ObservaçãoObservação

    Para obter um exemplo de código, consulte "Escrever código para definir permissões para uma tela" anteriormente neste tópico.

Habilitar permissões para depuração

  1. Em Gerenciador de Soluções, abra o menu de atalho para o nó de Propriedades , e então escolha Abrir.

  2. No Designer de aplicativo, escolha a guia de Controle de Acesso .

  3. Na grade de Defina permissões ou selecione permissões usar para depuração , escolha a permissão que você deseja ativar depuração, selecione a caixa de seleção de Concedido para depuração .

Publicação

Quando você ajuda a proteger seu aplicativo, a etapa final é publicá-lo. Quando você publica pela primeira vez, você deve fornecer informações de autenticação para um administrador padrão. Quando você publica novamente, você não tem que repita esta etapa.

Fornecer informações de autenticação quando você publica um aplicativo

  1. Em LightSwitch publica o assistente de aplicativo, escolha a página de Configurações de segurança , e então escolha o botão de opção de Sim, cria um administrador do aplicativo .

    ObservaçãoObservação

    Você deve executar as etapas outros somente se você estiver publicando diretamente a um servidor. Se você estiver criando um pacote, você será solicitado para adicionar uma conta administrativo quando você implantar o pacote.

  2. Na caixa de texto de Nome de Usuário , digite um nome de usuário.

    Se você estiver usando autenticação do Windows, você deve especificar um nome válido de logon do Windows que tenha o formulário Domínio\Nome de usuário.

    Dica

    Você também pode atribuir um grupo de segurança no Active Directory como o administrador padrão.

  3. Na caixa de texto Nome Completo , digite o nome completo do usuário ou de grupo que o administrador serão padrão.

  4. Na caixa de texto de Senha , digite uma senha.

    ObservaçãoObservação

    Se você estiver usando autenticação do Windows, Nome Completo, Senha e os campos de Confirmar Senha não aparecem.

  5. Na caixa de texto de Confirmar Senha , digite a senha novamente.

    Lembre-se do nome de usuário e a senha porque você precisará de especificar a primeira vez que você executar o aplicativo.

  6. Termine de publicar o aplicativo.

Funções e Usuários

Se você for o administrador do aplicativo, você deve executar o aplicativo publicado a primeira vez. Você usa na tela de Funções e a tela de Usuários para definir funções, atribuir permissões funções, e para atribuir usuários a funções ou grupos de usuários. Você pode acessar essas telas no aplicativo em execução em tempo de design ou quando implantar. No tempo de design, defina uma permissão de depuração para acessar as telas. Em um aplicativo implantado, qualquer pessoa que tenha recebido a permissão de Administração de Segurança pode acessar as telas.

ObservaçãoObservação

Para fazer login, você deve usar o nome de usuário e senha que você especificou quando você publicou o aplicativo.

Definir uma função e atribuir permissões

  1. Em um aplicativo publicado que está executando em permissões de administrador, na barra de menu, escolha Funções.

  2. No painel de Funções , escolha o botão de +… adicionar ().

  3. Na caixa de diálogo de Adicionar nova função , digite um nome para a função, e então escolha o botão de OK .

  4. No painel de Permissões , escolha o botão de +… adicionar ().

    Uma nova linha aparece na grade de Permissões.

  5. Na primeira coluna da grade, escolha uma permissão na lista.

    A lista contém todas as permissões disponíveis para seu aplicativo. Você pode adicionar tantas permissões você precisar, mas você deve escolher o botão de +… adicionar () para que cada um adicioná-lo.

  6. Na barra de ferramentas do aplicativo, escolha o botão de Salvar para salvar suas alterações.

Adicionar um usuário ou grupo de usuários

  1. Na barra de menu, escolha Usuários para exibir a tela de Usuários .

  2. No painel de Usuários e Grupos , escolha o botão de +… adicionar ().

  3. Na caixa de texto de Nome , digite um nome de usuário.

    Se você estiver usando autenticação do Windows, você deve especificar um nome de usuário válido na forma de um alias terry (), um domínio e um apelido (\) terry exemplo, um alias e um domínio (terry@example.com), ou um Fully domínio totalmente qualificado (e um alias northamerica.corp.example.com \ terry). A cadeia de caracteres inteira deve conter menor do que 256 caracteres. Você também pode especificar o nome de um grupo de segurança no servidor Active Directory. Se você estiver usando autenticação de formulários, o nome de usuário deve ser exclusivo e conter menos de 256 caracteres.

  4. Na caixa de texto Nome Completo , digite o nome completo do usuário.

    A informação no campo Nome Completo é usada apenas para fins de exibição.

    ObservaçãoObservação

    Para autenticação do Windows, o campo de Nome Completo automaticamente é preenchido com base no nome de usuário e não pode ser editado.

  5. Na caixa de texto de Senha , digite uma senha.

    ObservaçãoObservação

    Os campos de Senha e de Confirmar Senha não aparecerão se você estiver usando autenticação do Windows.

  6. Na caixa de texto de Confirmar Senha , digite a mesma senha.

  7. No painel de Funções , escolha o botão de Adicionar , e então escolha uma função na lista de Funções .

    Você pode atribuir um usuário às várias funções de repetição esta etapa para cada função.

  8. Na barra de ferramentas do aplicativo, escolha o botão de Salvar para salvar as alterações.

Remover um usuário ou grupo de usuários

  1. Na barra de menu, escolha Usuários para exibir a tela de Usuários .

  2. No painel de Usuários e Grupos , escolha a conta que você deseja remover, e então escolha o botão X (excluir).

    ObservaçãoObservação

    Se um usuário está conectado com uma conta que tenha sido excluída, o usuário pode não salvar ou acessar dados no servidor. Se o usuário tentar acessar dados do servidor, uma mensagem acesso negado aparece.

    ObservaçãoObservação

    Se uma conta de grupo for excluída, qualquer usuário cuja função for herdada desse grupo perderá as permissões para essa função.

  3. Na barra de ferramentas do aplicativo, escolha o botão de Salvar para salvar as alterações.

Consulte também

Conceitos

Considerações de segurança para LightSwitch

Outros recursos

Projetos: O contêiner para seu aplicativo.

Grupos de segurança do Active Directory