ASP .NET Web API - Implementando a Segurança via Tokens - IV
Neste artigo vou mostrar como podemos implementar a segurança na Web API ASP .NET usando Tokens. |
Continuando o artigo anterior vamos agora testar a nossa implementação da segurança em uma Web API usando Tokens.
Na figura abaixo vemos o esquema de funcionamento bem resumido do fluxo das informações:
Explicando:
Acessando a Web API
A primeira coisa que vamos fazer é verificar se a nossa Web API esta funcionando. Para isso vamos executar o projeto e vamos tentar acessar os recursos da nossa Web API usando o Postman.
Neste momento nossa Web API ainda não esta protegida e deve permitir o acesso total a todos os serviços.
Nota: Para instalar o Postman acesse esse link : https://www.getpostman.com/apps ou abra o Google Chrome e digite postam e a seguir clique no link: Postman - Chrome Web Store
1- GET - http://localhost:2480/api/funcionarios
2- GET - http://localhost:2480/api/funcionarios/3
3- POST - http://localhost:2480/api/funcionarios
4- PUT - http://localhost:2480/api/funcionarios/1010
5- DELETE - http://localhost:2480/api/funcionarios/1010
Vemos pelo resultado que nossa Web API esta totalmente funcional mas não esta protegia e assim qualquer pode enviar requisições e acessar e realizar as operações usando a Web API.
Protegendo a Web API
Vamos agora proteger a nossa Web API de forma que somente usuários que possuam o token de acesso possam acessar nossa WEb API.
Fazer isso é bem simples, basta incluir no controlador FuncionariosController o atributo [Authorize] conforme mostrado a seguir:
Agora vamos executar o projeto e tentar enviar uma requisição para acessare a Web API.
Vamos tentar obter a lista de funcionários enviando um GET : http://localhost:2840/api/funcionarios
Veja que a reposta obtida foi : 401 Unauthorized , ou seja usuários anônimos não tem mais acesso a Web API. Qualquer outra requisição irá obter o mesmo resultado.
Obtendo um token de acesso
Como podemos acessar a nossa Web API ?
Simples. Vamos usar a implementação feita no artigo anterior e obter um token de acesso usando a classe FuncionariosSeguranca que autentica as credenciais do usuário.
Para isso temos que enviar uma requisição posta para URI: http://localhost:2480/token e informar as credenciais do usuário e o tipo de acesso no corpo do request.
Precisamos passar três informações no Body :
Veja no Postman como fica o request :
Veja que no response temos o token de acesso gerado, o tipo do token e a data de expiração do token.
Agora podemos usar o token gerado para poder acessar a nossa Web API enviando esse token em uma requisição.
Vamos tentar acessar novamente nossa Web API agora usando o token:
A requisição deve informar o verbo HTTP GET e a uri : http://localhost:2480/api/funcionarios
e no Header informar :
Authorization bearer
l9RoaczivJ4tYhxU2WGBDLVQvXoO3JNXxBgokEeU9ZxqXM3sAo77zleKhNTrfQXjhRowulSsxotvznQke0BaBt0Mrw
FbLuKowiPMTN8wfxT2xSeYkucqXqCBGMvUXfnjeudxOSym00EsqoFQ9DegxwcKoYqPLpxBjUaIbaVW5zAEPY
jlsivlM_PvvYEdKN4kd1ij5BY-ZV5Im3JI6nMFR2HMBa_raM7jDC4ks9SZFs
Veja o resultado abaixo:
Vemos que agora, após enviar o token gerado com a requisição, o usuário para quem o token foi gerado já pode acessar a nossa web api.
Concluindo...
Criamos uma WEB API
Implementamos a segurança via Token
Acessamos a Web API usando o token
Pegue o projeto completo aqui : FuncionariosAPIService_Token.zip (sem as referências)
"Jesus disse-lhes: A minha comida é fazer a vontade daquele que me enviou, e
realizar a sua obra."
João 4:34
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
ASP .NET MVC - Filtrando registros com Dropdownlist - Macoratti
ASP .NET MVC - Movendo itens entre dois DropDownList ... - Macoratti
ASP .NET MVC - Exibindo uma lista de itens selecionáveis - Macoratti
ASP .NET MVC 4 - Exibindo dados JSON usando Knockout - Macoratti
ASP .NET MVC - WebGrid : Crud com Entity Framework - I - Macoratti