Autenticação e controle de permissão baseado em perfis e users  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
antoniopopete
Virtual Machine Man

Membro desde: 27/12/2006 02:37:31
Mensagens: 712
Localização: Salvador - BA
Offline

Sugestões para criar uma camada para todas aplicações da empresa utilizar essa camada.
Li a respeito do jguard, mas não achei ele muito bom porque ele não lê do banco, tem que registrar tudo em xml e no caso de xml, teria que fazer uma gambiarra para a aplicação lê do JBOSS a cada nova mudança.
E fora que esses perfis são para n aplicações, controle e acesso.
LDAP é realmente uma boa ou é algo muito complexo mesmo?

Antonio Lazaro

[Email]
afamorim
JavaEvangelist
[Avatar]

Membro desde: 15/07/2005 09:19:04
Mensagens: 453
Localização: Salvador - Ba
Offline

Meu velho, eu criei um sistema de segurança, ao qual eu ja consegui acoplar sem problemas em tres sistemas meus.

Agora tive que fazer do zero, mais ficou do jeito que eu queria.
Da suporte a 2 tipos de banco e de facil manutenção para suportar outros tipos.

como ja disse antes p/ envcontrar isso acredito que você vai ter que fazer na mão!

se vc não quer ficar alegre, problema seu a vida segue!
[Email]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

antoniopopete wrote:Sugestões para criar uma camada para todas aplicações da empresa utilizar essa camada.
Li a respeito do jguard, mas não achei ele muito bom porque ele não lê do banco, tem que registrar tudo em xml e no caso de xml, teria que fazer uma gambiarra para a aplicação lê do JBOSS a cada nova mudança.
E fora que esses perfis são para n aplicações, controle e acesso.
LDAP é realmente uma boa ou é algo muito complexo mesmo?


LDAP ou qualquer outro meio de armazenamento são boas opções quando vc precisa autorizar/autenticar em Java EE. Agora, se vc prefere reinventar a roda como o cara aí de cima, boa sorte...

Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
antoniopopete
Virtual Machine Man

Membro desde: 27/12/2006 02:37:31
Mensagens: 712
Localização: Salvador - BA
Offline

LDAP ou outra forma de armazenamento?Que oturra forma?

Antonio Lazaro

[Email]
afamorim
JavaEvangelist
[Avatar]

Membro desde: 15/07/2005 09:19:04
Mensagens: 453
Localização: Salvador - Ba
Offline

Taz wrote:
antoniopopete wrote:Sugestões para criar uma camada para todas aplicações da empresa utilizar essa camada.
Li a respeito do jguard, mas não achei ele muito bom porque ele não lê do banco, tem que registrar tudo em xml e no caso de xml, teria que fazer uma gambiarra para a aplicação lê do JBOSS a cada nova mudança.
E fora que esses perfis são para n aplicações, controle e acesso.
LDAP é realmente uma boa ou é algo muito complexo mesmo?


LDAP ou qualquer outro meio de armazenamento são boas opções quando vc precisa autorizar/autenticar em Java EE. Agora, se vc prefere reinventar a roda como o cara aí de cima, boa sorte...


Na verdade minha reinvenção permite que eu autentique usuários em qualquer servidor de jboss a weblogic, já testado.
Permite que você cadastre exatamente quais perfis vão ter acesso a as páginas e no caso de JSF ele captura por ação.
Idependente do banco que for escolhido.

é eu gostei do modelo Aro 17 de minhas rodas.
nunca gostei de aro 13...

se vc não quer ficar alegre, problema seu a vida segue!
[Email]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

antoniopopete wrote:LDAP ou outra forma de armazenamento?Que oturra forma?


BD, txt, xml, o último authentication provider que eu implementei, por exemplo, acessava um legado por JMS (por mais bizonho que isso possa parecer).

Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

afamorim wrote:
Taz wrote:
antoniopopete wrote:Sugestões para criar uma camada para todas aplicações da empresa utilizar essa camada.
Li a respeito do jguard, mas não achei ele muito bom porque ele não lê do banco, tem que registrar tudo em xml e no caso de xml, teria que fazer uma gambiarra para a aplicação lê do JBOSS a cada nova mudança.
E fora que esses perfis são para n aplicações, controle e acesso.
LDAP é realmente uma boa ou é algo muito complexo mesmo?


LDAP ou qualquer outro meio de armazenamento são boas opções quando vc precisa autorizar/autenticar em Java EE. Agora, se vc prefere reinventar a roda como o cara aí de cima, boa sorte...


Na verdade minha reinvenção permite que eu autentique usuários em qualquer servidor de jboss a weblogic, já testado.
Permite que você cadastre exatamente quais perfis vão ter acesso a as páginas e no caso de JSF ele captura por ação.
Idependente do banco que for escolhido.

é eu gostei do modelo Aro 17 de minhas rodas.
nunca gostei de aro 13...


Dê uma olhada em JAAS. É uma espec Java EE que faz exatamente o que vc fez, só que com a vantagem de o desenvolvedor nem colocar as mãos em usuário/senhas/roles (e isso é importante quando falamos de segurança, não!?)

This message was edited 1 time. Last update was at 21/12/2007 21:10:13


Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
afamorim
JavaEvangelist
[Avatar]

Membro desde: 15/07/2005 09:19:04
Mensagens: 453
Localização: Salvador - Ba
Offline

Meu rei, eu conheço o JAAS, tive que trabalhar com ele em um projeto, no qual ele foi escolhido pelo Arquiteto da epoca, para utilizarmos visando obter ganho de tempo, tudo ia bem ate que precisamos especializar algumas coisas.

Depois tivemos que migrar de servidor de um tomcat para um jboss, ai o bicho realmente pegou.

Acho que ele pode ate resolver para sistemas padrões e que a parte de segurança seja básica, mais num sistema JSF por exemplo aonde vc esta navegando em uma página e clica numa ação, vai para a outra página mais a URL é da página anterior, você vai ter dor de cabeça, ou num sistema em que pode acessar a página, mais não pode acessar uma determinada ação de uma página, como o editar.

Eu realmente prefiro ter o meu sistema de segurança.
Outro dia estava com meu sistema de segurança quando um cliente pediu para que um usuário pudesse ter mais de um perfil.
E ai?!?
Eu ajustei o meu sistema, mudei as classes services e tudo funcionou em 8 horas de trabalho.

posso estar falando besteira, mais ja vendi esse sistema 3 vezes, p/ mim ele já se pagou.

se vc não quer ficar alegre, problema seu a vida segue!
[Email]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

afamorim wrote:
Outro dia estava com meu sistema de segurança quando um cliente pediu para que um usuário pudesse ter mais de um perfil.
E ai?!?
Eu ajustei o meu sistema, mudei as classes services e tudo funcionou em 8 horas de trabalho.


Meu rei, demorou hein? Com JAAS, era só cadastrar uma nova Role... (1 minuto?)

Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
afamorim
JavaEvangelist
[Avatar]

Membro desde: 15/07/2005 09:19:04
Mensagens: 453
Localização: Salvador - Ba
Offline

isso que vc nao esta entendendo, não era para o usuŕio ter mais um perfil no sistema, ele queria que no sistena o usuário pudesse ter mais de um perfil por vez e ele administrando isso.

e ai ?!?!

fora que eu do liberdade por meio de funcionalidades pre-cadastradas o usuário gerenciar isso sem minha intervenção.

se vc não quer ficar alegre, problema seu a vida segue!
[Email]
paulovittor23
Java Ninja
[Avatar]

Membro desde: 11/05/2006 14:09:41
Mensagens: 282
Localização: Santos - SP
Offline

afamorim wrote:isso que vc nao esta entendendo, não era para o usuŕio ter mais um perfil no sistema, ele queria que no sistena o usuário pudesse ter mais de um perfil por vez e ele administrando isso.

e ai ?!?!

fora que eu do liberdade por meio de funcionalidades pre-cadastradas o usuário gerenciar isso sem minha intervenção.


É possível se fazer isso utilizando JAAS com LDAP ou qualquer Banco de Dados.
No trabalho estamos montando um sistema de autenticação / autorização utilizando JAAS que trabalha com usuário, perfil e função como você citou.
E sobre o usuário gerenciar os usuários, perfis e funções nada impede de você montar uma interface para ele poder fazer isso.

@paulovittor23
Pós-graduando em Engenharia de Software na PUC-SP.
SCJP 5.0, SCWCD 1.4, SCBCD 5.
http://www.paulovittor23.org/
[Email] [WWW] [MSN]
rodrigoallemand
GUJ Ranger
[Avatar]

Membro desde: 21/02/2005 20:19:47
Mensagens: 972
Localização: Rio de Janeiro, Recreio!!!
Offline

Eu sou a favor de, qualquer que seja o cliente/empresa, que as politicas de AAA (Autenticação, autorização e auditoria, vide RBAC) sejam proprietárias... vc pode muito bem usar LDAP + JAAS na baixa plataforma e RACF na alta, mas que o modelo da empresa tb esteja implementado, como responsabilidades, grupos, visões, posicionamentos organizacionais, etc.

Rodrigo Allemand

A culpa é minha e eu a coloco em quem eu quizer!. (Homer Simpson)
http://blog.rodrigoallemand.com.br
[WWW] [MSN]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

rodrigoallemand wrote:Eu sou a favor de, qualquer que seja o cliente/empresa, que as politicas de AAA (Autenticação, autorização e auditoria, vide RBAC) sejam proprietárias... vc pode muito bem usar LDAP + JAAS na baixa plataforma e RACF na alta, mas que o modelo da empresa tb esteja implementado, como responsabilidades, grupos, visões, posicionamentos organizacionais, etc.


Sei, vc é a favor que seja "proprietário", mas tb pode "usar LDAP + JAAS". Muito bem!!

Defina:

- responsabilidades;

- visões;

- posicionamenteos organizacionais.


Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

afamorim wrote:
Eu realmente prefiro ter o meu sistema de segurança.
Outro dia estava com meu sistema de segurança quando um cliente pediu para que um usuário pudesse ter mais de um perfil.
E ai?!?
Eu ajustei o meu sistema, mudei as classes services e tudo funcionou em 8 horas de trabalho.


O JAAS é um padrão java para Autenticação e Autorização , mas essa autorização é bem básica. Ela é voltada a roles e não funciona com base em recursos. Os recursos a que o perfil (role) tem acesso são codificados diretamente na aplicação. Ele é o padrão, mas ele não é o santo graal. O bom do JAAS assim como outros padrões java é que eles são imaginados para que o progamador explore os conceitos e os extenda quando necessário. num sistema realista o JAAS precisa ser extendido. Vários frameworks pegam a base do JAAS e o extendem. Como Ageci e o JGuard.

Precisamos do JAAS para montar um sistema de perfis ? Não. Mas é bom se o nosso sistema de perfis funcionar com JAAS.

O JAAS parte da ideia que o serviço de AA é algo que podemos injetar no sistema, como injetamos um sistema de transações.
E isso não é realista nos programas brasileiros onde o dono do negocio quer configurar todos os acesso um por um e não entende muito bem o conceito de papel. Por outro lado, o mecanismo é externo ao sistema, quando o usuário espera que seja integrado ao sistema ( ou seja, configurar o acesso de dentro da aplicação). O JAAS parte da ideia que a segurança é configurada fora do sistema, como as politicas de segurança em geral. Isso é de alguma forma estranho à necessidade que temos e por isso é mais facil criar nosso sistema de acesso e autorização. O que é válido. Ninguem nos obriga a usar JAAS.

A questão é que se o nosso sistema não precisa de JAAS mas se integra a ele quando necessário é muito melhor, porque um monte de coisas já existe pronto no JAAS. Terceiro implementam conta o JAAS e não contra o nosso framework. Por exemplo o acesso aos perfis do windows é feito por JAAS. Sem JAAS é mais complicado e temos que replicar muito trabalho.

Enfim, para o básico ha realmente uma necessidade de construir outro sistema, mas temos que pensar que seguir o padrão é sempre melhor. O problema é que é também o mais demorado e dificil devido à pouca documentação e exemplo.

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
Zeovaldo
Entusiasta Java
[Avatar]

Membro desde: 21/12/2007 11:56:10
Mensagens: 24
Localização: Belo Horizonte/MG
Offline

Tem um artigo bem interessante sobre o assunto:

http://blogs.sun.com/enterprisetechtips/entry/improving_jsf_security_configuration_with.

Baseado no artigo acima, criei meu controle de permissão para um projeto com JSF.

Tenho uma Pojo Usuario, Perfil, Permissao, Acao e Role

Um Usuario, poderá ter varios perfis
Um Perfil, poderá ter varias Permissoes
Uma Permissao é composta por uma Role e uma Acao
Uma Role está associada a uma ou mais Acoes

Cada Metodo que precise de autenticação, faço igual ao exemplo abaixo:

@SecurityRoles("PERFIL.SALVAR")
public String salvar(){
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team