A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Segurança Aplicações Java EE Utilizando JAAS

Apresentações semelhantes


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
Rodrigo Cândido da Silva

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.”

5 Princípios da Segurança
Autenticação Autorização Auditoria Confidencialidade Integridade Disponibilidade Não Repudiação

6 Objetivos de Segurança
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
Fonte de Informação Destino da Informação Fluxo Normal F D F D I Interrupção Interceptação F D F D M F Modificação Fabricação

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

18 Autorização

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).

24 Perguntas e Respostas ?


Carregar ppt "Segurança Aplicações Java EE Utilizando JAAS"

Apresentações semelhantes


Anúncios Google