JAAS - Alguém utiliza em Sistemas Corporativos com BD?

1 resposta
adriano_si

Prezados, tava atrás de solução de Segurança, pensando em utilizar o ACEGI do Spring, porém to seco em Spring… Pesquisando (GUJ e Google) achei muito material sobre o JAAS, só que todos utilizam o esquema de autorização Declarativa… esse é mesmo o melhor Modelo ?? Alguém de fato utilizou ou utiliza o JAAS com uma Base de Segurança dinâmica,onde o controle da segurança está nas mãos do gestor da aplicação e não na do técnico… Porque nossa realidade aqui é que o Administradores dos Módulos do Sistema, terão autonomia para criarem seus usuários específicos,logo, se tudo isso ficar em um XML no Conteiner, como iremos dar essa flexibilidade ao Usuário ??

Temos tabelas de Usuários, Grupo, Permissao (onde essa permissão é por ação de tela e não por página)… Tô realmente confuso, tem como fazer essa segurança no BD ?? Ou o JAAS é limitado e teremos que achar outra solução ??

Porque sinceramente, fazer tudo na mão, que nem fizemos no PHP, definitivamente não dá…

Abraços;)

1 Resposta

G

Eu possuo uma aplicação muito grande, e uso JAAS, porém uso-o cru, sem Spring Security/Acegy. Essa aplicação utiliza módulo EJB 3 separado da aplicação web.

Para cada ação do sistema há roles de segurança tando no EJB como na criação dos menus. Ou seja, o usuário só vê o que pode fazer, e mesmo que ele digite a URL da ação, o EJB faz a validação via annotation @AllowedRoles. Conforme o perfil há coisas que ele não vê. Por exemplo, ele pode possuir acesso a tela de logs, porém só vê seus próprios logs. Caso for admin vê todos os logs. Isso tudo usando o SecurityContext do EJB.

A authenticação é via JAAS, onde criei um login module. A cada X tentativas o usuário e host são bloqueados, verifica se está com a conta ativa, dentre outras validações. A role que é usada na autenticação é propagada tranquilamente para o modulo EJB, onde conforme a role do usuário faço o controle que expliquei acima.

Enfim, cada ação do sistema possui uma ROLE especifica. Na tela de manutenção dos usuários escolho o grupo que o usuário pertence. Quando o usuário faz login, o JAAS vê qual o grupo do usuário e a partir dele as ROLES desse grupo. Ou seja, quase engessado, pois só posso alterar dinamicamente o grupo do usuário. Para alterar grupo X roles tem que ser manual. Porém para o meu projeto não houve problemas quanto a isso. Nunca mudo esse tipo de coisa.

Não usei Spring Security porque ele não propaga corretamente as Roles para o módulo EJB. No caso o EJB sempre retorna acesso negado. Nos fóruns do Spring não achei nada sobre isso, nem mesmo consegui uma resposta concreta sobre como propagar as roles do Spring para o EJB.

No caso do Spring você consegue fazer as roles dinamicas. A documentação sobre isso é bem extensa e clara. Não tem erro.

Abraços

Criado 8 de outubro de 2009
Ultima resposta 8 de out. de 2009
Respostas 1
Participantes 2