Tengo con éxito mi aplicación Rails 3 ejecutándose con devise y devise_ldap_authenticatable a autenticar contra el Active Directory local.Rails 3 & devise_ldap_authenticatable: ¿Autorización contra Active Directory?
Ahora quiero agregar autorizaciones autorizaciones para permitir el acceso solo a los usuarios de AD que pertenecen a ciertos grupos de AD.
Para comenzar de manera simple, primero busqué mi propio usuario en AD con el comando de Linux ldapsearch. El resultado contenida algo así como ...
(...)
memberOf: CN=my,OU=foo,DC=bar,DC=role,DC=domain,DC=com
memberOf: CN=my,OU=foo,DC=bar2,DC=role,DC=domain,DC=com
memberOf: (...)
(...)
Ok, ahora decidí, que yo quiero para restringir el acceso a los miembros de CN=my,OU=foo,DC=bar,DC=role,DC=domain,DC=com.
Por lo tanto, he cambiado de ldap.yml que contiene:
authorizations: &AUTHORIZATIONS
group_base: ou=role,dc=domain,dc=com
required_groups:
- CN=my,OU=foo,DC=bar,DC=role,DC=domain,DC=com
development:
(...)
<<: *AUTHORIZATIONS
Y además cambió mi devise.rb contener:
Devise.setup do |config|
config.ldap_logger = true
config.ldap_create_user = true
config.ldap_update_password = false
config.ldap_check_group_membership = true # <-- activated this line
config.ldap_use_admin_to_bind = true
#config.ldap_ad_group_check = true <-- don't know what this is good for
Ahora, w gallina intentar la autenticación, el acceso es denegado, que no esperaba:
User CN=myuser,OU=org,DC=domain,DC=com is not in group: CN=my,OU=foo,DC=bar,DC=role,DC=domain,DC=com
Cualquier idea, la forma de autorización respecto a AD se logra con devise_ldap_authenticatable? La documentación de este módulo aún no es tan completa cuando se trata de autorización.
Responda su pregunta a continuación (confirme una respuesta). De esta manera, la pregunta permanece (innecesariamente abierta). – Roger
Gracias, eso funciona genial. Tenga cuidado con la mayúscula 'CN' y 'OU' en require_attribute, de lo contrario no funcionará. Me toma algunas horas ... – neonmate
¿Podría publicar una auto-respuesta, por favor? – Ryan