De que se trata o artigo:

Este artigo apresenta as facilidades da plataforma Java EE no que diz respeito ao seu serviço de segurança, que pode ser utilizado por aplicações web. Ele é explicado em detalhes e exemplificado com exemplos práticos.


Para que serve:

Este artigo serve para explicar o funcionamento do serviço de segurança da plataforma Java EE a desenvolvedores que precisam atender requisitos de segurança em suas aplicações.


Em que situação o tema é útil:

Desenvolvedores de aplicações web em Java encontrarão neste artigo uma explicação detalhada a respeito de como utilizar os mecanismos de segurança da plataforma Java EE nas suas aplicações.

Segurança em Java EE:

A plataforma Java EE possui um serviço de segurança robusto e que permite que controles de acesso sejam feitos em aplicações sem que seja necessário alterar o seu código-fonte (segurança declarativa) ou com pouca alteração (segurança programática). Este artigo aborda em detalhes o funcionamento deste serviço e como ele pode ser utilizado para tornar mais seguras as aplicações desenvolvidas em Java para o ambiente web.

A segurança é, sem dúvida, um requisito muito importante que está presente em grande parte das aplicações. Elas normalmente possuem recursos acessíveis a apenas um grupo específico de pessoas, as quais devem ser devidamente identificadas.

A plataforma Java EE dá todo o suporte às aplicações que desejam restringir acesso aos seus recursos. Através da segurança declarativa, é possível habilitar a segurança por meio de configurações na aplicação, o que evita alterações no código. Quando é necessário um controle mais refinado dos acessos, é possível utilizar a segurança programática, também suportada pela plataforma. Estes dois tipos de abordagem permitem uma rápida implementação dos requisitos de segurança com pouca ou nenhuma intrusão no código da aplicação.

A proposta deste artigo é mostrar como o acesso a recursos web de aplicações Java EE podem ser protegidos pelos mecanismos de segurança da plataforma. Serão mostrados alguns exemplos práticos sobre o tema, executando em um servidor web Apache Tomcat.

Autenticação e autorização

Antes de entender como a segurança do Java EE funciona, é fundamental conhecer dois conceitos: autenticação e autorização.

Para entender o que são estes termos, imagine que você trabalha em um prédio de uma grande empresa. Quando você chega ao saguão e se depara com as catracas, é necessário que o seu crachá seja utilizado para liberar o seu acesso. Quando esta atitude é tomada, você está tentando provar para o sistema de segurança do prédio que é realmente a pessoa que diz ser. Isto nada mais é do que um processo de autenticação.

Neste exemplo fictício, a autenticação foi feita através de um crachá. Mas existem outros tipos de autenticação, como biometria, reconhecimento de íris, apresentação de documentos, etc. Em termos de internet, as formas mais comuns de autenticação são através do fornecimento de um nome de usuário e senha e o uso de certificados digitais. Perceba que, seja qual for o mecanismo utilizado, o objetivo deles é a identificação.

Voltando agora ao exemplo. Além da catraca que dá acesso aos funcionários da empresa, suponha que o prédio conta ainda com outras catracas. É possível que, mesmo com o seu crachá, você não consiga passar por todas elas. Isto porque algumas áreas podem ser restritas aos gerentes e diretores, outras ao pessoal operacional, e assim por diante. Esta restrição ao acesso é o processo de autorização, que permite ou nega o acesso a um local dependendo do grupo ao qual o funcionário pertence. Caso você seja um membro do grupo de gerentes da empresa, você tem liberdade para passar pela catraca, por exemplo. Na internet, você pode ou não ter a autorização para acessar determinadas áreas de um site, dependendo dos grupos ao qual você pertence.

Com base no que comentamos, autenticação é o processo de provar que você é você mesmo. Cada usuário autenticado pode pertencer a um ou mais grupos (chamados também de roles de acesso), e é com base nestes grupos que você será autorizado ou não a fazer determinados acessos. Para recursos não protegidos, os quais podem ser acessados publicamente, a autenticação e a autorização não são necessárias.

A Figura 1 mostra o esquema de funcionamento do processo de autenticação. Quando um cliente não autenticado tenta acessar um recurso protegido, o servidor solicita os dados de autenticação para o cliente (as diversas formas de fazer isso serão explicadas na sequência). Uma vez recebidos os dados, o servidor cria uma credencial para aquele usuário específico, que será utilizada depois pelo processo de autorização.

Figura 1. Funcionamento do processo de autenticação.

Agora que o usuário está autenticado, o servidor deve verificar se o mesmo possui acesso ao recurso que ele está tentando acessar. Esta checagem é feita pelo processo de autorização, cujo esquema de funcionamento pode ser visto na ...

Quer ler esse conteúdo completo? Tenha acesso completo