Aplicação Grails autenticando no LDAP
26/10/2011 11:01
0
Bom dia pessoal,

Vou participar de um projeto em GRAILS e a aplicação vai ter que autenticar seus usuários no LDAP.

Alguém que tem conhecimento/experiência em autenticação de aplicações GRAILS no LDAP poderia me passar o caminho das pedras?

Muito Obrigado,
....
Tags: Aplicação Grails autenticando no LDAP


0
Use o Spring Security:
http://www.grails.org/plugin/spring-security-core
http://grails.org/plugin/spring-security-ldap
26/10/2011 13:17


0
Castiel, Instalei o plugin spring-security-ldap.

Ainda não tenho o servidor de LDAP, no site do grails eu instalei também o plugin "LDAP Server".
Entendo eu para utilizar para o desenvolvimento sem precisar de um servidor LDAP.

Mas não entendi como faço as configurações, você poderia ajudar?


Hoje eu autentico assim, pesquisando na base:

def authenticate = {
def user = User.findByLoginAndPassword(params.login, params.password)

if(user){
session.user = user
flash.message = "Hello ${user.login} !"

if(user.admin) {
redirect(controller:"admin", action:"list")
} else {
redirect(controller:"user", action:"list")
}
} else {
flash.message = "Sorry, ${params.login}. Please try again."
redirect(action:"login")
}
}

Mas como que eu autentico apontando para o servidor LDAP?

Obrigado
26/10/2011 14:11


0
Primeiro vc vai ter entender o funcionamento do plugin sem LDAP, no link abaixo tem a configuração de um login básico:
http://blog.springsource.com/2010/08/11/simplified-spring-security-with-grails/
Após na documentação mostra como conectar com o seu servidor ldap:
http://burtbeckwith.github.com/grails-spring-security-ldap/docs/manual/index.html
26/10/2011 15:35


0
Valeu Castiel.

Vou olhar os links que vc passou.

Abs
26/10/2011 15:47


0
Castiel,

Fiz o login e entendi(acho que entendi) do link http://blog.springsource.com/2010/08/11/simplified-spring-security-with-grails/

Mas não entendo como integrar esse login que fiz com o LDAP. Li o link(http://burtbeckwith.github.com/grails-spring-security-ldap/docs/manual/index.html),
mas não sei como integrar com o LDAP.

O Login que fiz autentica com a tabela User com sucesso.

Você poderia ajudar?

Obrigado,
26/10/2011 17:54


0
Por favor,

Alguém poderia ajudar na integração?

Obrigado
28/10/2011 10:04


0
Nunca precisei fazer a autenticação com LDAP, pelo que o manual diz você deve colocar o código abaixo no seu Conf.groovy, após isso você tem que substituir tudo que está nos colchetes pela configuração do seu servidor LDAP. Após isso faz um clean e run-app

// LDAP config
grails.plugins.springsecurity.ldap.context.managerDn = '[distinguishedName]'
grails.plugins.springsecurity.ldap.context.managerPassword = '[password]'
grails.plugins.springsecurity.ldap.context.server = 'ldap://[ip]:[port]/'
grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true // typically needed for Active Directory
grails.plugins.springsecurity.ldap.search.base = '[the base directory to start the search. usually something like dc=mycompany,dc=com]'
grails.plugins.springsecurity.ldap.search.filter="sAMAccountName={0}" // for Active Directory you need this
grails.plugins.springsecurity.ldap.search.searchSubtree = true
grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugins.springsecurity.ldap.search.attributesToReturn = ['mail', 'displayName'] // extra attributes you want returned; see below for custom classes that access this data
grails.plugins.springsecurity.providerNames = ['ldapAuthProvider', 'anonymousAuthenticationProvider'] // specify this when you want to skip attempting to load from db and only use LDAP
// role-specific LDAP config
grails.plugins.springsecurity.ldap.useRememberMe = false
grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = true
grails.plugins.springsecurity.ldap.authorities.groupSearchBase ='[the base directory to start the search. usually something like dc=mycompany,dc=com]'
grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}' // Active Directory specific - the example settings will work fine for a plain LDAP server
28/10/2011 11:45


0
Castiel,

Coloquei essas informações no Config.groovy com as configurações do servidor LDAP.

A aplicação subiu, mas não autentica/loga no LDAP.

Desculpe minha ignorancia, mas é preciso implementar alguma classe no aplicação do grails?

Valeu
28/10/2011 18:27


0
Castiel,

o que não consigo entender como o grails(plugin do spring) vai deixar de autenticar na base User(local) e autenticar no LDAP?

Obrigado,
28/10/2011 18:50


0
O que define os provedores do Spring Security é a seguinte linha:
grails.plugins.springsecurity.providerNames = ['ldapAuthProvider', 'anonymousAuthenticationProvider'] 

Não tenho um servidor LDAP aqui para fazer alguns testes aqui.
Outra coisa ele apresenta alguma mensagem no login?
29/10/2011 20:32


0
Olá Castiel,

Usei o plugin spring-security-core para criar o login.

Coloquei as configurações abaixo no Groovy.config:

// LDAP config
grails.plugins.springsecurity.ldap.context.managerDn = 'ldap_teste'
grails.plugins.springsecurity.ldap.context.managerPassword = 'tux'
grails.plugins.springsecurity.ldap.context.server = 'ldap://127.0.0.1:389/'
grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true
grails.plugins.springsecurity.ldap.search.base = 'dc=empresa,dc=com,dc=br'
grails.plugins.springsecurity.ldap.search.filter="sAMAccountName={0}"
grails.plugins.springsecurity.ldap.search.searchSubtree = true
grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugins.springsecurity.ldap.search.attributesToReturn = 'teste@gmail.com, teste'
grails.plugins.springsecurity.providerNames = ['ldapAuthProvider', 'anonymousAuthenticationProvider']
// role-specific LDAP config
grails.plugins.springsecurity.ldap.useRememberMe = false
grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = true
grails.plugins.springsecurity.ldap.authorities.groupSearchBase = 'dc=empresa,dc=com,dc=br'
grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}'


A aplicação carrega sem erros, e quando vou logar da a mensagem:
"Sorry, we were not able to find a user with that username and password."


Testei a autenticação do LDAP no terminal linux: ssh maria@127.0.0.1 e ele autentica.

Acho que não é problema do LDAP.

Além disso, teria que fazer mais alguma coisa para o grails autenticar no LDAP?

Por favor, gostaria muito que me ajudasse... se precisar de mais alguma informação eu te passo....

Obrigado
31/10/2011 10:54


0
Olá pessoal, vejam este link para ver se ajuda: http://www.isharecodes.com/2012/11/grails-how-to-configure-ldap-plugin-to.html

Abraços
04/12/2012 12:43


0
Igor, já passei por muitos problemas com o LDAP também.

Notei que seu contex.manager só possui o nome do usuario. Acho que você precisa especificar a árvore toda.

grails.plugins.springsecurity.ldap.context.managerDn = 'cn=admin,dc=teste,dc=br'


Além disso, não sei se é um bug do plugin... Mas nas configurações de segurança do meu servidor LDAP que roda internament, tive de dar permissão para "*" de read.
Se passar somente o manager ele conecta, mas por algum motivo o BIND sempre dava erro.
05/12/2012 11:18


0
Oi pessoal,

Valeu pela ajuda...
Mas é um post antigo..... deixa eu recordar o que fiz....

Resumindo: a aplicação que estava trabalhando, já está autenticando no ldap e usa o plugin acegi.

Fiz as configurações no arquivo SecurityConfig.groovy de acordo com o servidor de ldap que a empresa usa:



useLdap = true
ldapRetrieveDatabaseRoles = true // true para carregar as roles do banco de dados
ldapRetrieveGroupRoles = true
ldapServer = 'ldap://xx.xx.xx.xx:389'
ldapManagerDn = 'cn=manager,dc=empresa,dc=com,dc=br'
ldapManagerPassword = 'senha'
ldapSearchBase = 'ou=usuarios,dc=empresa,dc=com,dc=br'
ldapSearchFilter = '(uid={0})'




Abs
05/12/2012 12:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto