Post: Permissão a Nível de Usuário no servidor de aplicação

Alessandro Medeiros

Fala ai Radizeiros e Radizeiras, tudo bem com vocês?

Seguindo nossa saga de RestFul com DataSnap, este post não poderia faltar, onde irei falar de como implementar em nosso servidor de aplicação as permissões a nível de usuário.

Aqui no blog você encontra todos os post dessa saga, caso ainda não tenha acompanhado.

Você já criou seu servidor de aplicação, implementou todos os métodos HTTP, disponibilizou este servidor na web para que seus clientes possam consumir esses dados, mas não atentou a segurança dessas informações deixando veraneável os dados

Toda segurança é de extrema importância, seja no acesso e até mesmo na criptografia de seus dados para aumentar o nível de segurança.

Num post aqui no blog falei sobre Autenticação no servidor de aplicação e agora vamos ver sobre autorização, e isso é muito interessante onde você pode dar permissões a níveis de usuários para determinados métodos dentro do seu servidor de aplicação, por exemplo: o um grupo determinado de usuário pode consultar, o outro grupo pode incluir e consultar…

Você pode implementar esses níveis de segurança de uma forma muito fácil que irei lhe mostrar agora mesmo aqui no blog.

Vamos lá?

Essas autenticações podem ser feitas através do nosso componente DSAuthenticationManager1.


procedure TWebModule1.DSAuthenticationManager1UserAuthenticate(Sender: TObject; const Protocol, Context, User, Password: string; var valid: Boolean; UserRoles: TStrings);
begin
    valid := false;
    if (User='teste') and (Password='1') then
    begin
        UserRoles.Add('Nivel1');
        valid := true;
    end;

    if (User='teste') and (Password='2') then
    begin
        UserRoles.Add('Nivel2');
        valid := true;
    end;
end;

No código acima nós definimos os níveis, onde temos o objeto UserRoles do tipo TStrings, nele nós armazenamos os grupos de permissões.

No método UserAuthorize do componente DSAuthenticationManager1 define quando o usuário está autorizado ou não, sendo assim no código abaixo estamos definido se não for valida a autenticação iremos chamar o código 403, que é o código do protocolo html que diz que não foi autorizado o acesso.


procedure TWebModule1.DSAuthenticationManager1UserAuthorize(Sender: TObject; AuthorizeEvenObject: TDSAuthorizeEventObject; var valid: Boolean);
begin
    if not valid then
        GetInvocationMetadata.ResponseCode := 403;
end;

Em nossa View de Produto iremos adicionar duas uses Datasnap.DSServer e Datasnap.DSAuth, essas duas uses irá nos permitir trabalhar com essas permissões.

No código abaixo definimos os grupo nos devidos métodos que terão permissões para utilizar, onde o grupo Nivel1 tem somente permissão de visualizar, e o grupo de Nivel2 tem permissão para visualizar, alterar, incluir e apagar.


uses
...
    Datasnap.DSServer, Datasnap.DSAuth;
...
[TRoleAuth('Nivel1', 'Nivel2')]
function Produto(const Key : string) : TJsonArray;
[TRoleAuth('Nivel2')]
procedure acceptProduto(const Key : string; JObject : TJsonObject);
[TRoleAuth('Nivel2')]
procedure updateProduto(const Key : string; JObject : TJsonObject);
[TRoleAuth('Nivel2')]
procedure cancelProduto(const Key : string);
...

Com nosso servidor de aplicação rodando vamos verificar no Postman.

Vamos visualizar mas sem definir usuários dos grupos que criamos.

Observe que deu o erro 403 que definimos no UserAuthorize .

Visualizando com o usuário do grupo Nivel1.

Quando tentamos alterar com o usuário do grupo Nivel1 temos o erro 403.

Agora para fazer essa alteração vamos utilizar o usuário do grupo de Nivel2.

O registro é alterado com sucesso.

Veja que dessa forma é muito simples e você pode criar níveis de permissões no seu servidor de aplicação.

O QUE VOCÊ IRÁ APRENDER?

O treinamento de Datasnap Restful dará a você a oportunidade de melhorar seu desenvolvimento, otimizar o seu tempo e te dar a possibilidade de atender melhor os seus clientes.

Desenvolver um servidor de aplicação RestFul com Datasnap e utilizar todos os seus benefícios irá facilitar muito a sua vida,  quando seu cliente disser “preciso dos meus dados na web hoje mesmo” você estará preparado para entregar uma solução robusta e eficaz.

Nesse treinamento você irá aprender de forma prática a criar as principais rotinas de CRUD e Segurança para servidores RestFul Datasnap que podem ser consumidos de qualquer aplicação front-end. 

CLIQUE AQUI PARA SABER MAIS SOBRE O TREINAMENTO RESTFULL COM DATASNAP







Faça sua busca

CATEGORIAS

POSTS RECENTES

E caso você tem interesse de conhecer mais sobre Permissão a Nível de Usuário no servidor de aplicação, acesse o nosso portal do CLUBE DE PROGRAMADORES EM DELPHI
Você não terá só conteúdos relacionados ao Permissão a Nível de Usuário no servidor de aplicação, mas uma quantidade enorme de conteúdos que poderá lhe ajudar muito no seu dia a dia, é uma verdadeira NETFLIX para os programadores Delphi.
Gostou?
Compartilhe:

Embarque no foguete com milhares de devs para aprender desenvolvimento, evoluir de forma contínua e se manter relevante no mercado.

Dúvidas
Cadastre-se em nossa lista

Para ter acesso em primeira mão, a tudo que acontece na Academia do Código, basta se cadastrar em nossa lista

Grupo Thulio Bittencourt | Academia do Código

#FaçaPartedaHistória

Copyright © 2024 – Todos os direitos reservados