Segurança Aplicações Java EE Utilizando JAAS - ppt carregar
PublicouLaura Silverio Alterado mais de 4 anos atrás
Apresentação em tema: "Segurança Aplicações Java EE Utilizando JAAS"— Transcrição da apresentação:
1 Segurança Aplicações Java EE Utilizando JAAS
2 Objetivo Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.
3 Agenda Segurança Plataforma Java EE JAAS Conclusões
Objetivos da Segurança Princípios de Segurança Algumas Soluções de Segurança Plataforma Java EE JAAS Autenticação Autorização Utilização Conclusões
4 Definição de Segurança
"Um mecanismo de Segurança da Informação providencia meios para reduzir as vulnerabilidades existentes em um Sistema de Informação."
Autenticação Autorização Auditoria Confidencialidade Integridade Disponibilidade Não Repudiação
Proteger os ativos; Garantir os princípios da segurança durante todo o ciclo de vida da informação; Evitar que ameaças explorem as vulnerabilidades; Evitar ou conter os ataques; Gerenciar e reduzir os riscos; Garantir a segurança da informação em qualquer meio.
7 Ameaças de Segurança F D F D F D I F D F D M F Fluxo Normal
8 Algumas Soluções de Segurança
IP Filtering Network Address Translation (NAT) IP Security (IPSec) SOCKS Secure Sockets Layer (SSL) Application Proxies Firewalls Secure Electronic Transactions (SET) …
9 Plataforma Java EE
10 Arquitetura Distribuída
11 Plataforma Java EE
12 Plataforma Java EE Segurança Serviços oferecidos pelos containers:
Escalabilidade Gestão de memória, ciclo de vida de objetos e estado de objetos Conexões, Transações, Serviço de nomes Segurança Tolerância a falhas Integração WebServices Clustering Alta disponibilidade Confiabilidade …
13 JAAS Java Authentication and Authorization Service (JAAS);
Mecanismo de Autenticação e Autorização de Usuários, baseado em uma identidade e role(s) (perfil de acesso) associado(s); Totalmente compatível com o padrão Java EE; Restringe o acesso a uma aplicação Java, limitando acesso a uma url, método de um componente EJB ou Conteúdo de uma tela do usuário; Possibilita uma abordagem declarativa ou programática, dando a possibilidade de um desacoplamento entre segurança e regras de negócio.
14 JAAS Aplicação Login Context LDAP LoginModule DataBase LoginModule
Login Modules – São "plugáveis" e não interferem nos algorítimos de negócio implementados... LDAP LoginModule DataBase LoginModule NT LoginModule Active Directory MySQL NT Server
15 JAAS
16 Autenticação HTTP Basic Authentication Form-Based Authentication
17 Autenticação HTTPS Client Authentication Digest Authentication
19 Utilização Passo 1 - Configurando o LoginModule <!--
Exemplo: File Login Module Arquivo: %JBOSS_HOME%\server\default\conf\login-config.xml --> <application-policy name="exemplojaas"> <authentication> <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required"> <module-option name="usersProperties">props/exemplo-jaas-users.properties</module-option> <module-option name="rolesProperties">props/exemplo-jaas-roles.properties</module-option> </login-module> </authentication> </application-policy>
20 Utilização Passo 2 – Definindo o Tipo de Autenticação
<!— Define Formulário de login (login-config). Arquivo: WEB-INF\web.xml --> <login-config> <auth-method>FORM</auth-method> <realm-name>ExemploJAAS</realm-name> <form-login-config> <form-login-page>/loginpage.do</form-login-page> <form-error-page>/loginfail.do</form-error-page> </form-login-config> </login-config>
21 Utilização Passo 3 – Protegendo o Web Container
<!— Define a constraint de seguranca para as actions do sistema. Arquivo: WEB-INF\web.xml  <security-constraint> <web-resource-collection> <web-resource-name>ExemploJAAS</web-resource-name> <description>Mapeamento da acoes do sistema</description> <url-pattern>/homepage.do</url-pattern> <url-pattern>/funcionario.do</url-pattern> </web-resource-collection> <auth-constraint> <role-name>supervisor</role-name> <role-name>gerente</role-name> </auth-constraint> </security-constraint>
22 Utilização Passo 4 – Protegendo o EJB Container
<!— EJB Via annotation (Java5 ou superior) Definição da classe @DeclareRoles({"supervisor","gerente","operador"}) public class FuncionarioServiceImpl implements FuncionarioService { @RolesAllowed("supervisor") public void delete(Integer idFuncionario) {} @RolesAllowed({"supervisor","gerente"}) public void save(Funcionario funcionario) throws LimiteSalarioException { if ((!context.isCallerInRole("supervisor") && (funcionario.getSalario() > d))){ throw new LimiteSalarioException("limite.salario.exception");} } }
23 Conclusões JAAS fornece uma estrutura simples, produtiva e integrada com a plataforma Java; JAAS não implementa toda estrutura de segurança necessária à uma aplicação. Portanto, ele deve ser combinado com outros mecanismos (SSL, Firewalls, Proxies, etc).