Rest e Segurança
Olá Pessoal,
Estou começando a pesquisar sobre Rest para tentar encontrar uma solução para ambientes multidevice (desktop, smartfone, tablet, etc). Vou contar uma historinha para que vocês entendam meu objetivo:
No passado a principal forma de acessar informações online, as pessoas abriam o navegador e acessavam um site por exemplo, a principal preocupação do desenvolvedor era se o site funcionava no navegador, ou navegadores.
O tempo foi passando e apareceram os smartphones, e as pessoas começaram a acessar os sites dos seus celulares e suas telas pequenas, com isso os desenvolvedores começaram a precisar fazer layouts que funcionem tanto no desktop quanto no celular. Observe que aqui começamos a fazer ajustes somente na camada de apresentação, o resto do site continua basicamente o mesmo. Para ajudar nisso surgiu o MVC, etc...
O tempo passou mais um pouco, os Apps ficaram famosos, e as empresas começaram a solicitar Apps(IPhone ou Android) para que seus clientes instalem em seus smartphones. Observe que agora não estamos mais falando somente de navegador, agora estamos tendo uma aplicação para o site(navegador), outra aplicação para o IPhone, outra para o Android, etc.
Fim da historia. O que quero dizer, está vai ficar complicado ter tantas aplicações, principalmente porque existe muita coisa em comum, já que as regras de negócio precisam ser a mesma para todas.
Pesquisei e achei o Rest, idéia muito legal. Poderia ter uma aplicação/qqcoisa com as regras de negócio, o site e Apps seriam apenas interfaces para a aplicação. Se no futuro aparecer um gadget novo, é só fazer uma nova "interface" que as regras já estarão implementadas, mudar a regra nao precisa mudar todas as interfaces(site, IPhone, Android, etc), ou muda muita pouca coisa, etc. Tudo muito lindo.
Agora minha dúvida, como funciona a segurança disso tudo? Em um site normal, o site sabe quem está logado porque ele passou os dados no início e ficou armazenado na session/coockie/qqlugar, mas no modelo usando Rest, quem acessa a aplicação não é um usuário, e sim um site/IPhone/Android/seiláoque.
Olha um modelo simples para entender:
Usuário <=> Interface(Site ou App) <=> Aplicação de negocio(+banco de dados)
Como minha aplicação de negocio controla isso? Pergunto porque no Rest o acesso é feito via HTTP e não queremos que o usuário, ou algum outro espertinho, tente acessar a Aplicação de negocio diretamente. Quais questões de segurança preciso levar em consideração? O que o pessoal normalmente faz, etc.
Obrigado pela ajuda
Discussão (7)
Carregando comentários...