Post: Autenticação no servidor de aplicação

Alessandro Medeiros

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

Mais um post de nossa saga Restful com Datasnap, você já aprendeu aqui no blog MVC no servidor de aplicação, Aplicando método Get no servidor REST, Aplicando método Put no servidor RESTAplicando Método Post no Servidor REST. e a Aplicar o delete no servidor Rest.

Já que agora as fronteiras podem ser quebradas, então temos que ser mais cautelosos quanto à segurança, neste post estarei lhe mostrando como proteger seu servidor de aplicação.

Todo servidor de aplicação tem algumas coisas básicas que agente precisa saber, mas você deve estar falando, você está usando DataSnap e eu não vou usar.

O DataSnap nos permite criar tudo manual mente, apesar dele possuir tudo RAD, e isso é legal porque conhecemos cada coisa, pois quando você conhecer tudo isso que o DataSnap possui fica muito mais fácil quando for para o RestDataWare, que já tem tudo praticamento pronto e trás para nós de uma forma muito mais fácil eu não irei precisar perder tempo para saber o que já está pronto.

Então vamos lá

Até aqui nosso servidor de aplicação está rodando perfeitamente com seus métodos funcionando, mas qualquer um pode acessa-lo desde que conheça nossa URI e pode fazer bagunça no nosso servidor.

É muito importante que possamos colocar esse nível de segurança mesmo que a principio seja básico.

Como você pode observar na imagem acima, eu fiz uma chamada Get e não passei usuário e senha, não passei nada e ele me trouxe todos os dados, se eu fizer o Put, Post e o Delete vai fazer tudo sem eu precisar fazer nenhuma autenticação, e se você observar estou usando um client que não é Delphi, estou usando o Postman.

Vamos então criar um nível de autenticação básico dentro do nosso DataSnap.

Primeiro nós devemos adicionar em nosso projeto um componente DSAuthenticationMAnager.

É esse componente que é responsável por fazer a autenticação do nosso servidor de aplicação.

Iremos somente só fazer um usuário e senha básico, mas você pode especializar isso, fazer uma consulta no banco de dados, criar uma entidade para usuário dentro do Model onde você irá buscar informações do usuário e tudo mais.

Nós colocamos nosso componente DSAuthenticationManager e agora iremos precisar fazer algumas configurações.

No componente DSRESTWebDispatcher iremos setar o AuthenticationManager.

Após isso no nosso componente DSAuthenticationManager vamos no evento OnUserAuthentication.

Dentro desse evento nós iremos configurar nossa regra de autenticação.

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

Toda vez que o servidor fizer uma requisição ele irá validar as operação dentro desse evento, a variável valid é o retorno que esta autenticação está aguardando, no código acima eu setei a variável valid como false e logo em seguida eu faço a validação, dentro do nosso if você pode observar que temos o usuário e senha, isso pode ser buscado no banco e dados, e caso está condição for verdadeira nós setamos a variável valid para true.

A partir desse momento já não conseguimos executar um Get em nosso servidor de aplicação.

Ele já retorna o erro de 401 não autorizado.

Como você pode observar, mesmo com um nível de segurança básico já temos uma segurança.

E para que nosso servidor autorize o acesso devemos no client colocar as autenticações.

No caso do Postman que estamos usando basta ir na aba auto

Com esses parâmetros passados ao clicarmos no botão Send do Postman ele irá fazer a requisição com as autenticações e teremos o retorno do nosso Get.

Agora você já tem um nível de segurança ainda que básico, mas você já tem o nível de segurança que não deixe ele exposto na web.

Este post faz parte de do treinamento RestFul com DataSnap.

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 Autenticação no servidor de aplicação, acesse o nosso portal do CLUBE DE PROGRAMADORES EM DELPHI
Você não terá só conteúdos relacionados ao Autenticação 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