Autenticação Servlet – Parte 02
Dentro da especificação Servlet existe uma parcela que compreende a segurança dos recursos acessados por cliente. Dentre estes recursos esta autenticação através de formulário, certificados digitais e ate mesmo por tela autenticação gerada pelo próprio browser.
Dividirei o conteúdo em algumas partes e logo que for terminando de compor estarei disponibilizando. Segue abaixo em negrito o conteúdo que terminei:
Parte 01: Os quatro mecanismo de autenticação
Implantando mecanismos de autenticação para aplicações web
Todas as configuração de autenticação são feitas no descritor de implantação (web.xml) e são conhecidas como segurança declarativa. Por padrão todos os recursos de uma aplicação web são acessíveis por todos. Para restringir acesso aos recursos, precisamos identificar três coisas:
- Coleção de recursos web (Web resource collection): São os recursos que realmente precisam de restrições, tais como arquivos HTML, Servlets, entre outros.
- Restrição de autorização (Authorization constraint): São as regras que um usuário/cliente do recurso precisa ter para acessar.
- Restrição de dados do usuário (User data constraint): Especifica o caminho que os dados devem seguir para serem transmitidos do emissor ate o receptor. Em outras palavras, específica a camada de transporte que mantém a política de integridade dos dados e confidencialidade.
A configuração destes itens acontece no descritor de implantação (web.xml) através do elemento <security-constraint>, que fica diretamente abaixo do elemento <web-app>.
<web-app>
…
<security-constraint>
<web-resource-collection>
<web-resource-name>relatorios</web-resource-name>
<url-pattern>/servlet/YRossRelatoriosServlet/*</url-pattern>
<url-pattern>/servlet/YRossFinanceirosServlet/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENCIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
…
</web-app>
Onde:
<web-resource-collection>: Especifica uma coleção de recursos que devem ser aplicadas restrições de segurança.
<web-resource-name>: Nome do recurso
<url-pattern>: Específica o padrão URL em que o recurso será acessado. Semelhante ao <url-pattern> do elemento <servlet-mapping> do mapeamento de URL para um servlet.
<http-method>: Provém um controle sobre requisições HTTP. Específica o método HTTP que as regras de segurança serão aplicadas.
No exemplo anterior serão aplicadas regras de segurança para todas as requisições aos servlets YRossRelatoriosServlet e YRossFinanceirosServlet, sejam elas GET ou POST.
Observação: A ausência do elemento <http-method>, fará com que todas as requisições, independente do método HTTP, sejam restringidas por regras de segurança, caso exista.
É possível observar que dentro do elemento <security-constraint> no exemplo anterior o elemento <security-constraint> é declarado informando o tipo de canal de comunição entre o cliente e servidor.
<user-data-constraint>
<transport-guarantee>CONFIDENCIAL</transport-guarantee>
</user-data-constraint>
Onde:
<transport-guarantee>: Especifica a comunicação entre o cliente e o servidor. Pode assumir os seguintes valores:
- NONE: A aplicação não requer um transporte garantido.
- INTEGRAL: A aplicação requer que os dados enviados do cliente ao servidor estejam em um caminho em que as informações não podem ser alteradas em trânsito. Princípio da Integridade.
- CONFIDENTIAL: A aplicação requer que os dados sejam transmitidos em uma forma que impede que outras entidades observem o conteúdo da transmissão. Geralmente utilizado sobre SSL.
O trecho abaixo, ainda do exemplo anterior, informa que tipo de autenticação será realizada entre o cliente e o servidor.
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
Onde:
<auth-method>: Indica qual o método de autenticação. Assume como valor: BASIC, CLIENT-CERT e FORM.
Tags: Authentication, HTTP Basic authentication, HTTP Digest authentication, HTTP FORM-based authentication, HTTPS Client authentication, Servlet
You can comment below, or link to this permanent URL from your own site.
20/08/2009 at 22:09
[...] Parte 02: Implantando [...]