Segurança e administração de usuários da minah app WEB?
11 respostas
D
Duque
Ola pessoal estou com um probleminha…
estive lendo e pensando a respeito de como proteger acessos indevidos a determinadas paginas (grupo de paginas - páginas protegidas) da minha aplicação …
Estivem pensando em utilizar o próprio web container para isso…controle de “usuarios e roles do proprio tomcat”…
Mas minha duvida esta aqui :
quando por exemplo…um usuário que for administrador do site…for cadastrar um novo usuário para a aplicação…como vou relacionar este usuário com as roles do tomcat…para poder controlar o acesso as paginas através do meu descriptor (web.xml ) ???
Eu acho que uma forma de resolver o seu problema é usar JDBCRealm que implementa a segurança baseada em users e roles mas em banco de dados via jdbc.
Leia a documentação do tomcat que lá diz inclusive a estrutura das tabelas.
D
Duque
Era mais ou menos isso que eu estava querendo fazer…
mas ainda tenho algumas duvidas quanto esta interação do usuário com as regras do container…nao entendi muito bem isso ainda…
G
galvao
As roles são previamente definidas com se fossem grupos de acesso.
Por exemplo:
administrator - tem acesso completo a tudo
gerente financeiro - só tem acesso aos jsp/servlets da área financeira
tesouraria - só tem acesso ao jsp/servlet para pagamento de fornecedores
Estou querendo dizer que você precisa organizar e definir os grupos de acesso da sua aplicação.
Com o uso de um banco de dados para os users e para as roles dos users você pode atualizar as permissões de acesso sem precisar tirar o tomcat do ar!
Se eu não consegui esclarer então seja mais direto e mande suas dúvidas.
douglasfs
“galvao”:
Eu acho que uma forma de resolver o seu problema é usar JDBCRealm que implementa a segurança baseada em users e roles mas em banco de dados via jdbc.
Leia a documentação do tomcat que lá diz inclusive a estrutura das tabelas.
Seria melhor ainda se utilizasse o DataSourceRealm ao invés do JDBCRealm, pois utilzasse um DataSource para trabalhar com banco de dados
D
Duque
pois é…eu vou ter que trabalhar com banco de dados para controlar os usuários e minhas roles.
já tenho as regras de segurança definidas desde a analise do meu projeto…
agora preciso achar uma forma de faze-la…e estava querendo fazer assim através de JDBCReaml ou DataSourceRealm…pois li um pouco a respeito…
Ja entrei do localhost:8080/admin e ja criei usuarios e roles…mas o que eu nao entendi e como eu farei para “integrar” isso com o meu banco de dados…
ou seja com os usuários que o administrador da aplicação , irá cadastrar…
Obrigado pela ajuda de vcs.!!!
cv1
Aproveitando o embalo: esses Realms servem só para o Tomcat, ou eles são genéricos e servem em qualquer web container?
louds
Sim e não cv.
O modelo de segurança e a interface que um servlet/jsp usa é uniforme entre os varios containers. Oque muda é a forma de definir o Realm na configuração do servidor.
Ou seja, se voce desenvolveu o sistema usando tomcat, container managed security e um JDBCRealm ele vai funcionar no Sun One, você só vai ter que descobrir como definir o Realm com esse container.
G
galvao
Este fragmento de xml foi extraído do conf/server.xml
onde se le:
userTable=“users” -> sua tabela que contém os usuários
userNameCol=“user_name” -> nome da coluna na sua tabela de usuários que representa o usuário (login)
userCredCol=“user_pass” -> nome da coluna na sua tabela de usuários que representa a senha
userRoleTable=“user_roles” -> sua tabela de relacionamento usuario x roles
roleNameCol=“role_name” -> nome da coluna na sua tabela de relacionamento usuários x roles que representa o role que o usuário possui. Lembre-se os roles são previamente definidos.
Isto quer dizer outra coisa, você só deve criar os seus usuários depois de configurar o webconteiner, senão os usuários estarão no conf/tomcat-users.xml!
será que assim ficou mais claro?
D
Duque
a ta…agora entendi…eu devo definir minhas roles no BD…pensei que apenas iria adicionar meus usuários no BD…e relacionar de alguam forma com as roles do tomcat…
mas só nao ficou claro uma coisa…
SE…depois de configurar meu conf/server.xml…
daquela forma …realmJDBC…
eu querer acrescentar um usuário pelo tomcat:8080/admin…ele irá criar o usuário automaticamente…no “conf/server.xml” e não no “conf/tomcat-users.xml”… ou não?? dai eu devo esquecer a configuração do conf/tomcat-users.xml ???
o meu controle de segurança passa a ser controlado pelo conf/server.xml e não mais pelo meu conf/tomcat-users e
WEB-INF/web.xml ???
como funciona esta parte??
Muito Obrigado!
louds
Se voce ta usando JdbcRealm ou DataSourceRealm os dados sobre usuarios e seus roles vão muito provavelmente estar em 1 banco de dados relacional.
Entao nada menos obvio que editar as tabelas do banco.
N
net_sandro
Essa segurança obedece a especificação JAAS ?
Obedecendo o JAAS, facilitaria a portabilidade entre servidores de app’s ? Como ?