Powerlogic Consultoria e Sistemas | Usando serviços de diretório
Transcrição
Powerlogic Consultoria e Sistemas | Usando serviços de diretório
Configurando o jSecurity para autenticação em serviço de diretório Preparado por: Vinicius Emmanuel – [email protected] Versão: 1.0 Descrição: tutorial de instalação e configuração manual de autenticação por serviços de diretório usando a aplicação de segurança jSecurity. Data: 31 de julho 2007 Objetivo Entender o conceito de diretórios, LDAP, domínio, autenticação, autorização e funcionamento do jSecurity com esses conceitos. Usar o jSecurity para fazer autenticação usando serviços de diretórios. Uma abordagem sobre serviços de diretórios como sua finalidade, conceitos, estrutura física e lógica é um assunto que pode ocupar horas e até dias de um desenvolvedor, visto que é um assunto a ser explanado por profissionais de infra-estrutura de rede. Vou fazer aqui uma breve explicação de um domínio e sua árvore, para melhor entendimento sobre utilização do jSecurity com esse serviço. Essas explicações tem a finalidade de deixar o desenvolver apto a conhecer objetos dentro de um domínio, usando-os para autenticação com o jSecurity. Serviço de diretório Um diretório nada mais é que um banco de dados com informações sobre usuários, senhas e outros elementos necessários para o funcionamento do sistema, quer seja um conjunto de aplicações no Mainframe, um grupo de servidores da rede local, o servidor de email ou outro sistema qualquer. Os sistemas como Active Directory, OpenLDAP ou ORACLE OID são produtos de fabricantes distintos que foram baseados em padrões de diretórios, definidos por entidades internacionais de padronização. Neste documento o termo diretório se refere a esse banco de informações. LDAP LDAP – Lightweight Directory Access Protocol - é um protocolo que oferece mecanismos de acesso a objetos em serviços de diretórios. Oracle OID, OpenLDAP e Active Directory usam esse protocolo por padrão. Outros serviços de diretório podem usar o padrão x.500, que devido a sua complexidade não é tão difundido no mercado. O protocolo LDAP fornece mecanismos de acesso aos objetos do Active Directory ou OpenLDAP, de tal maneira que qualquer programa ou sistema habilitado ao padrão LDAP, seja capaz de acessar as informações do Active Directory ou OpenLDAP, desde que devidamente identificado e tendo as devidas permissões. jSecurity faz acesso a serviços de diretório somente pelo protocolo LDAP. Domínio Domínio é um limite administrativo e de segurança. Ele é um limite administrativo, pois as contas de Administrador têm permissões de acesso em todos os recursos de seu domínio, mas não em outros domínios, a menos que sejam autorizadas. Ele é um limite de segurança porque cada domínio tem definições de políticas de segurança que se aplicam as contas de usuários e demais recursos dentro de seu domínio, e não em outros. Um domínio é simplesmente um agrupamento lógico de contas e recursos, os quais compartilham políticas de segurança. Dessa maneira, é importante deixar claro que Microsoft Active Directory não é um domínio. Esse produto da Microsoft implanta o conceito de domínio, da mesma maneira que produtos como OpenLDAP. Então temos diretórios como um banco de dados com informações necessárias ao funcionamento de determinados sistemas. Esses diretórios podem ser acessados por diversos protocolos, como o LDAP que se tornou um padrão e é usado pelo jSecurity. Além disso, há uma maneira de organizar logicamente os recursos de um diretório, estabelecendo barreiras administrativas e de segurança, essa organização é conhecida como domínio. Árvores de Domínio Visto o conceito de diretório, LDAP e domínio, vou demonstrar o uso de um domínio em uma pequena empresa, montando uma árvore de domínio, e no que se refere o uso do jSecurity. Você trabalha em uma empresa com sede em Minas Gerais, o nome dessa empresa é Powerlogic, que possui os seguintes departamentos: Suporte, Produtos, Fabrica, e Administrativo. Produtos possui duas áreas que são eCompany e jCompany. Para delegar poder e limites sobre essa empresa, um domínio foi montado da seguinte maneira: Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 1 Figura 1-Raiz de um domínio Reparem que uma árvore de domínio é uma organização hierárquica defina pela empresa que o utiliza, sendo a mais utilizada a divisão por departamentos. Todo domínio possui um domínio Root, que nesse exemplo é o powerlogic.com.br. Todas as divisões do domínio herdam o nome de seu ancestral imediato. Por exemplo: o departamento suporte herdou o nome powerlogic.com.br, que é seu ancestral. Ecompany herdou produtos, que herdou powerlogic.com.br, assumindo o nome ecompany.produtos.powerlogic.com.br. Para jSecurity esse exemplo é valido porque: em todo domínio os usuários cadastrados ficam contidos em uma dessas divisões, que devem ser indicadas para na configuração do módulo de autenticação. O mesmo vale para os grupos de usuários, que também estarão contido em uma ou mais partes do domínio. Nomenclatura de objetos no domínio O padrão LDAP define um sistema de nomeação hierárquico, através do qual é possível referenciar qualquer objeto do diretório como Active Directory ou OpenLDAP. Um nome LDAP é formado pelo caminho completo do objeto, partindo do domínio raiz, até chegar ao objeto referenciado. Nesta nomenclatura hierárquica são utilizadas algumas abreviaturas, conforme descrito a seguir: • • • • • CN: common name: por exemplo o nome da conta de um usuário, grupo ou computador. OU: faz referência a uma unidade organizacional (unidades organizacionais são divisões lógicas de segurança dentro de um domínio, como a área de Produtos e Infra-estrutura Interna que existe dentro de Suporte). DC: domain component: um componente do domínio. Normalmente o nome de um domínio. O: organization: Nome da organização. Normalmente representado pelo nome do domínio Root. C: Country: Identificação de país. Não é normalmente utilzado. Para entender como é o formato de nome no LDAP, é melhor analisarmos alguns exemplos. Considere os exemplos a seguir: • • CN=vinicius.assis,OU=produtos,DC=suporte,DC=powerlogic.com.br. Este nome representa o usuário vinicius.assis, cuja conta está incluída na unidade organizacional produtos, no domínio suporte.powerlogic.com.br (observe que foram agrupados dois componentes de domínio. O nome também estaria completo da seguinte forma: CN=vinicius.assis,OU=produtos,DC=suporte,DC=powerlogic,DC=com,DC=br). “CN=João.ferreira,OU=servidores,OU=infra estrutura interna,DC=suporte,DC=powerlogic,DC=com,DC=br” -> Este nome representa o usuário João.ferreira, cuja conta está contida na unidade organizacional servidores, a qual está contida dentro da unidade organizacional infra estrutura interna do domínio suporte.powerlogic.com.br. Obs.: o nome acima foi contido dentro de aspas devido a possuir espaços. Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 2 Dentro de um domínio existem containers para abrigar determinar tipos de objetos. Containers abrigam usuários, grupos, contas de computadores etc. Em estruturas organizadas de um domínio, geralmente os usuários ficam em um container denominado Users para contas de usuários, e outro denominado Groups para grupos de usuários. Em uma instalação padrão de Active Directory, tanto usuários como grupos de usuários ficam no mesmo container Users. Usando o jSecurity para autenticação em um serviço de diretório Para configurar jSecurity para usar um serviço de diretório para autenticação, as seguintes informações devem ser obtidas com o administrador de rede: • • • • • Nome hierárquico do domínio. De preferência a raiz completa do domínio. Container que estão localizados os usuários. Container onde estão localizados os grupos de usuários. Usuário e senha com permissão para acessar os containers de usuários e grupos de usuários. URL de conexão ao servidor. Serviço, endereço e porta. Tendo o domínio Powerlogic como exemplo, vamos configurar a autenticação pelo jSecurity usando os usuários desse diretório. Respostas as perguntas acima: • • • • • Nome hierárquico do domínio: powerlogic.com.br. A raiz completa se encontra na figura. Container que estão localizados os usuário: usuarios Container onde estão localizados os grupos de usuários: grupos Usuário e senha com permissão para acessar os containers de usuários e grupos de usuários: administrador URL de conexão ao servidor. Serviço, endereço e porta: ldap://powerldap:389 A figura abaixo ilustra a localização dos containers Grupos e Usuarios dentro da raiz do domínio. Esses containers geralmente não são vistos em diagramas que demonstram a estrutura física de um domínio, porque são unidades lógicas que não compõem raízes dentro da árvore do domínio. São objetos do domínio. Na nomenclatura do padrão LDAP, um componente do domínio, como o departamento Suporte, é um DC, enquanto um container é um CN. Por isso será comum não encontrar esses containers nos diagramas usados em departamentos de infra-estrutura. Figura 2-Raiz de um domínio contendo containers Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 3 Então temos os seguintes nomes compostos no padrão LDAP: • • • Container que estão localizados os usuário: CN=usuarios,DC=powerlogic,DC=com,DC=br. Container onde estão localizados os grupos de usuários: CN=grupos,DC=powerlogic,DC=com,DC=br Usuário e senha com permissão para acessar os containers de usuários e grupos CN=administrador,CN=grupos,DC=powerlogic,DC=com,DC=br. de usuários: Esses nomes serão usados no arquivo de autenticação do jSecurity, login.config, no módulo LDAPLoginModule: jsecurity { }; com.powerlogic.jsecurity.jaas.LDAPLoginModule required connectionName=" " connectionPassword=" " connectionURL=" " roleBase=" " roleName="cn" roleSearch="(member={0})" roleSubtree="true" userBase=" " userRoleName="member" userSearch="sAMAccountName={0}" userSubtree="true"; Onde: com.powerlogic.jsecurity.jaas.LDAPLoginModule: classe de autenticação do jSecurity, existente no jar jcompany_jsecurity_jaas_jar3.3.0.1-SNAPSHOT.jar required: flag usada para trabalhar com mais de um módulo de autenticação. connectionName: usuário de conexão ao diretório. connectionPassword: senha do usuário de conexão ao diretório. Com máscara de HASH. connectionURL: endereço de conexão ao diretório. roleBase: container de grupo de usuários. roleName="cn": flag para indicação de objetos dentro do diretório. Padrão. roleSearch="(member={0})": indica que a associação entre usuários e grupos dentro do diretório é feita pelo atributo member. Padrão. roleSubtree="true": habilita a pesquisa para grupos entre a raiz do domínio, além do container indicado para grupos de usuários. userBase=" ": container de usuários. userRoleName="member": indica que a associação entre usuários e grupos dentro do diretório é feita pelo atributo member. Padrão. userSearch="sAMAccountName={0}" userSubtree="true": habilita a pesquisa para grupos entre a raiz do domínio, além do container indicado para grupos de usuários. Em nosso exemplo, o módulo de autenticação ficaria da seguinte forma: jsecurity { }; com.powerlogic.jsecurity.jaas.LDAPLoginModule required connectionName="cn=administrador,cn=usuarios,dc=powerlogic,dc=com,dc=br " connectionPassword="46548716546dasddadsadbacbkf " connectionURL=" ldap://powerldap:389" roleBase=" cn=grupos,dc=powerlogic,dc=com,dc=br " roleName="cn" roleSearch="(member={0})" roleSubtree="true" userBase=" cn=usuarios,dc=powerlogic,dc=com,dc=br " userRoleName="member" userSearch="sAMAccountName={0}" userSubtree="true"; Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 4 Conforme será visto adiante, há a possibilidade, e em alguns casos necessidade, de usar banco de dados e diretórios ao mesmo tempo para autenticação. Em cenários como esse, o arquivo de autenticação conterá o módulo de autenticação em banco e diretório como a seguir: jsecurity { }; com.powerlogic.jsecurity.jaas.JSecurityLoginModule required driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@plcdb:1521:oraplcdb" usuario=" " senha=" " digest="SHA"; Módulo de autenticação em banco de dados com.powerlogic.jsecurity.jaas.LDAPLoginModule required connectionName="cn=administrador,cn=usuarios,dc=powerlogic,dc=com,dc=br " connectionPassword="46548716546dasddadsadbacbkf " connectionURL=" ldap://powerldap:389" roleBase=" cn=grupos,dc=powerlogic,dc=com,dc=br " roleName="cn" roleSearch="(member={0})" roleSubtree="true" userBase=" cn=usuarios,dc=powerlogic,dc=com,dc=br " userRoleName="member" userSearch="sAMAccountName={0}" userSubtree="true"; Módulo de autenticação em serviço de diretório A única alteração foi a inserção do módulo de autenticação em banco de dados, já conhecido, logo acima do módulo de autenticação em serviço de diretório. Existem alguns casos onde é necessária a recuperação de usuários em lugares distintos no diretório, ou mesmo em diretórios diferentes. Em casos assim, adicione um módulo de autenticação para cada diretório. jsecurity { com.powerlogic.jsecurity.jaas.JSecurityLoginModule required driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@plcdb:1521:oraplcdb" usuario=" " senha=" " digest="SHA"; Módulo de autenticação em banco de dados com.powerlogic.jsecurity.jaas.LDAPLoginModule required connectionName="cn=administrador,cn=usuarios,dc=powerlogic,dc=com,dc=br " connectionPassword="46548716546dasddadsadbacbkf " connectionURL=" ldap://powerldap:389" roleBase=" cn=grupos,dc=powerlogic,dc=com,dc=br " roleName="cn" roleSearch="(member={0})" roleSubtree="true" userBase=" cn=usuarios,dc=powerlogic,dc=com,dc=br " userRoleName="member" userSearch="sAMAccountName={0}" userSubtree="true"; Módulo de autenticação em serviço de diretório com.powerlogic.jsecurity.jaas.LDAPLoginModule required connectionName="cn=administrator,cn=usuarios,dc=powerlogic,dc=com " connectionPassword="7778979dsaasd8716546daaddsag " connectionURL=" ldap://powerldap:389" roleBase=" cn=groups,dc=powerlogic,dc=com " roleName="cn" roleSearch="(member={0})" roleSubtree="true" userBase=" cn=users,dc=powerlogic,dc=com " userRoleName="member" userSearch="sAMAccountName={0}" userSubtree="true"; Módulo de autenticação em serviço de diretório }; No exemplo acima, a empresa Powerlogic possui dois domínios: o powerlogic.com.br para sua matriz, e o powerlogic.com.br para suas instalações no exterior. Com essas configurações, será possível usar os usuários dos dois domínios. Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 5 Usando bases de dados e diretórios para autenticação Antes de prosseguir, é necessário explorar dois conceitos que serão bastante usados nessa parte do tutorial: autenticação e autorização. Autenticação é o processo de reconhecimento dos dados que são recebidos, comparando-os com os dados existentes, e verificando se o transmissor que fez a requisição é, na verdade, o transmissor real. Autorização é o processo de conceder ao requisitante acesso a objetos que ele tem permissão. Tais objetos podem ser dados, sistemas, equipamentos ou qualquer objeto que deva ter acesso restrito. A autorização ocorre após a autenticação da identidade do requisitante. JSecurity usa diretórios somente para autenticação. Todas as regras de autorização estão armazenadas em banco de dados. Isso acontece pois os serviços de diretório não permitem o cadastro de todas as informações necessárias as regras de autorização. A utilização de banco de dados tem como resultado uma administração mais flexível e menos intrusiva. É possível usar somente serviços de diretórios para prover a segurança de suas aplicações J2EE. O impacto que isso causa é a perda das funcionalidades de autorização que ficam cadastradas em banco de dados. Em ambientes usando somente diretórios, a segurança é feita através de segurança programática ou declarativa, o que fere totalmente a arquitetura e benefícios do jSecurity. O papel do serviço de diretórios junto com o jSecurity é adequar as regras de segurança para aplicações J2EE ao ambiente atual de sua organização. Usando serviços de diretório para autenticação, os usuários, senhas e grupos atuais são reutilizados, não sendo necessária a criação de novos logins e senhas para os atuais usuários. Todo esse cadastro permanece no diretório atual. Figura 3-Login usando banco de dados e diretório Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 6 Requisitante Fornece dados de acesso jSecurity Validar dados de acesso [Não] Solicitar novamente os dados de acesso Dados de acesso são válidos? [Sim] Verificar existência de banco de dados Há banco de dados para autorização? [Sim] [Não] Fazer validação por banco de dados Fazer validação pela aplicação Regras de segurança programática permitem acesso com as roles do requisitante? [Sim] [Sim] Existem regras de autorização para as roles do usuário? [Não] [Não] Fazer verificação das roles existentes com as que o requisitante possui [Não] Negar acesso Regras de segurança concedem autorização de acesso ao requisitante? [Sim] Conceder acesso Figura 4-Autenticação usando diretório Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 7 Aplicando segurança a usuários e grupos É possível na aplicação web atribuir regras de segurança, perfis, a grupos de usuários ou usuários explícitos. De acordo com o diagrama abaixo, quando um usuário faz logon na aplicação, com seu usuário cadastrado no serviço de diretório, jSecurity carrega todos os grupos de usuários associados a esse login, entra em contato com o banco de dados e verifica se há um usuário cadastrado com o mesmo login. Se não houver login idêntico cadastrado, jSecurity usa somente os grupos do usuário associados no diretório. Verifica se há alguma regra de segurança cadastrada para algum desses grupos e nega ou concede acesso de acordo com essas regras. Se houver login idêntico cadastrado no banco de dados, jSecurity faz a união dos grupos associados ao usuário no diretório e banco de dados. Verifica se há alguma regra de segurança cadastrada para algum desses grupos, ou para o usuário explicitamente e nega ou concede acesso de acordo com essas regras. Cenários de uso Exemplo 1 – usuário cadastrado somente no diretório. Regra de segurança atribuída para grupo. Existe no jSecurity uma regra de segurança que determina que os usuários participantes do grupo Acessa RH terão acesso permitido ao sistema de cadastrado de funcionários chamado PowerRH. No serviço de diretório existe um usuário com login carlos.alberto que é participante do grupo Acessa RH, também cadastrado no diretório. Não há um usuário com login carlos.alberto cadastrado no banco de dados. O usuário com login carlos.alberto deseja acessar o sistema PoweRH. A partir do momento que ele insere seu login e senha válidos, jSecurity faz as seguintes verificações: • • • • • Verifica que o sistema a ser acessado é o PowerRH. Verifica que o usuário carlos.alberto é integrante do grupo Acessa RH dentro do diretório. Verifica que não há um login carlos.alberto no banco de dados. Verifica que para acessar a aplicação PowerRH é necessário fazer parte do grupo Acessa RH. Como verificou que o usuário carlos.alberto faz parte do grupo Acessa RH, concede acesso ao usuário. Exemplo 2 – usuário cadastrado no diretório e banco de dados. Regra de segurança atribuída para grupo. Existe no jSecurity uma regra de segurança que determina que os usuários participantes do grupo Logistica terão acesso permitido ao sistema de cadastrado de logística chamado PowerTransp. No serviço de diretório existe um usuário com login justino.alves que é participante do grupo Matriz, também cadastrado no diretório. Há também um usuário com login justino.alves cadastrado no banco de dados, que é integrante do grupo Logistica. O usuário com login justino.alves deseja acessar o sistema PowerTrans. A partir do momento que ele insere seu login e senha válidos, jSecurity faz as seguintes verificações: • • • • Verifica que o sistema a ser acessado é o PowerTrans. Verifica que o usuário justino.alves é integrante do grupo Matriz dentro do diretório. Verifica que há um usuário com login justino.alves no banco de dados, que faz parte do grupo Logistica. Faz a união do grupos de diretório e banco de dados, tendo como resultado final o usuário justino.alves integrante dos grupos Matriz e Logistica. • Verifica que para acessar a aplicação PowerTrans é necessário fazer parte do grupo Logistica. Como verificou que o usuário justino.alves faz parte do grupo Logistica, concede acesso ao usuário. Exemplo 3 – usuário cadastrado no diretório e banco de dados. Regra de segurança atribuída para usuário. Existe no jSecurity uma regra de segurança que determina que os usuários participantes do grupo Vendas terão acesso permitido ao sistema de cadastrado de vendas chamado PowerSales. No serviço de diretório existe um usuário com login paulo.alvim que é participante do grupo Matriz, também cadastrado no diretório. Há também um usuário com login paulo.alvim cadastrado no banco de dados, que é integrante do grupo Diretoria. O usuário com login paulo.alvim deseja acessar o sistema PowerSales. A partir do momento que ele insere seu login e senha válidos, jSecurity faz as seguintes verificações: • • • • Verifica que o sistema a ser acessado é o PowerSales. Verifica que o usuário paulo.alvim é integrante do grupo Matriz dentro do diretório. Verifica que há um usuário com login paulo.alvim no banco de dados, que faz parte do grupo Diretoria. Faz a união do grupos de diretório e banco de dados, tendo como resultado final o usuário paulo.alvim integrante dos grupos Matriz e Diretoria. • Verifica que para acessar a aplicação PowerSales é necessário fazer parte do grupo Vendas. • Verifica que também há uma regra, definindo que o usuário paulo.alvim, independente de grupo pode acessar a aplicação PowerSales. Como verificou que o usuário paulo.alvim faz parte dos grupo Matriz e Diretoria, mas não faz parte de Vendas, a principio negaria acesso ao sistema PowerSales, mas como há uma regra que concede acesso independente de grupos a esse usuário, autoriza acesso a aplicação. Se nenhuma regra de segurança for atribuída a um usuário ou grupo de usuários, a ação padrão é permitir acesso. Isso acontece porque todas as aplicações desenvolvidas com Powerlogic jCompany, possuem uma regra de segurança programática que concedem acesso a todo usuário que é integrante do grupo principal Membros. Essa regra é padrão mas pode ser modificada. Quando uma regra de segurança for construída para determinada finalidade, como permitir acesso a uma aplicação, somente os usuários que estiverem sob essa regra terão acesso a aplicação. Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 8 Exemplo – Acesso sem regras de segurança Não existe no jSecurity uma regra de segurança que concede acesso ao sistema PowerDir. No serviço de diretório existem três usuários com login paulo.alvim, helson.queiroz e justino.alves que não são participantes de nenhum grupo. Há também três usuários com login paulo.alvim, helson.queiroz e justino.alves cadastrado no banco de dados, que são integrantes do grupo Membros. Os três usuários desejam acessar o sistema PowerDir. A partir do momento que eles inserem seus login e senha válidos, jSecurity faz as seguintes verificações: • • • • Verifica que o sistema a ser acessado é o PowerDir. Verifica que os usuários não são integrantes de nenhum grupo dentro do diretório. Verifica que existem os mesmos usuários no banco de dados, que fazem parte do grupo Membros. Faz a união dos grupos de diretório e banco de dados, tendo como resultado final os usuários integrantes do grupo Membros. • Verifica que não há regra de segurança para acessar a aplicação PowerDir. Mas existe uma regra de segurança programática dentro da aplicação PowerDir que concede acesso a todos os usuários integrantes do grupo Membros. Como verificou que os usuários fazem parte do grupo Membros, e que não há regra de segurança para acesso a aplicação PowerDir, e que essa aplicação possui uma regra de segurança programática concedendo acesso aos integrantes do grupo Membros, o acesso a aplicação é permitido. Foram feitas algumas mudanças para acesso à aplicação Powerdir que são: • Foi construída uma regra de segurança para acesso a aplicação PowerDir, onde somente os integrantes do grupo Diretoria terão acesso a esse sistema. • Os usuários paulo.alvim e helson.queiroz foram incluídos no grupo Diretoria. • O usuário justino.alves não passou por alteração de grupos. Após essas alterações, os resultados foram: • Quando os usuário paulo.alvim e helson.queiroz acessaram o sistema PowerDir, o acesso foi permitido. • Quando o usuário justino.alves acessou a aplicação, o acesso foi negado. Isso acontece porque quando uma regra de segurança é construída, somente terá direito de acesso quem estiver sob essa regra. Assim não é preciso construir uma regra de permissão para o grupo Diretoria, e uma regra de negação para os outros usuários. Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 9 Requisitante Fornece dados de acesso jSecurity Validar dados de acesso [Não] Solicitar novamente os dados de acesso Dados de acesso são válidos? [Sim] Carregar grupos associados ao usuário no serviço de diretório Fazer verificação de usuário existente no banco de dados Existe usuário com o mesmo login no diretório e banco de dados? [Sim] [Não] Usar somente os grupos associados no diretório Fazer união dos grupos associados ao usuário no diretório e banco de dados Verificar regras de acesso para grupos de usuários Existem regras de acesso para os grupos que o usuário está associados? [Sim] [Não] Verificar se há regras específicas para o usuário [Não] Verificar se há regras específicas para o usuário Existem regras de acesso específicas para o usuário? Existem regras atribuídas ao usuário? [Sim] [Não] [Sim] Permitir ou negar acesso de acordo com as regras definidas para os grupos que o usuário pertence Permitir ou negar acesso de acordo com as regras definidas para o usuário e grupos Conceder acesso Figura 5-Autenticação usando diretório e banco de dados Powerlogic Consultoria e Sistemas | Usando serviços de diretório para autenticação com o jSecurity 31 de julho de 2007 Autor: Vinicius Emmanuel de Assis 10
Documentos relacionados
+ IceWarp Server 10.4.0
Modo Wave de cache de diretório, modo Direto removido – Os antigos modos para a indexação de cache de diretório (modo Wave, em que o cache era criado em segundo plano, e o modo Direto, que não empr...
Leia mais