Ho avuto successo con la mia app Rails 3 in esecuzione con devise e devise_ldap_authenticatable su autenticare contro Active Directory locale.Rails 3 e devise_ldap_authenticatable: autorizzazione contro Active Directory?
Ora desidero aggiungere autorizzazioni per consentire l'accesso solo agli utenti AD appartenenti a determinati gruppi di annunci.
Quindi, per iniziare in modo semplice, ho prima cercato il mio utente in AD con il comando linux ldapsearch. Il risultato conteneva qualcosa di simile ...
(...)
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, ora ho deciso, che voglio limitare l'accesso ai membri del CN=my,OU=foo,DC=bar,DC=role,DC=domain,DC=com.
Così, ho cambiato la mia ldap.yml per contenere:
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
E in aggiunta cambiato la mia devise.rb per contenere:
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
Ora, w gallina cercando di autenticazione, l'accesso è negato, che non mi aspettavo:
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
Qualsiasi idea, come l'autorizzazione contro l'AD è compiuta con devise_ldap_authenticatable? La documentazione di questo modulo non è ancora così completa quando si tratta di autorizzazione.
Si prega di rispondere alla domanda di seguito (inviare una risposta). In questo modo la domanda rimane (non necessario aperto). – Roger
Grazie, funziona benissimo. Fai attenzione al maiuscolo 'CN' e 'OU' nel require_attribute, altrimenti non funzionerà. Mi ci vogliono alcune ore ... – neonmate
Potresti postare una risposta, per favore? – Ryan