Diferència entre revisions de la pàgina «Pyramid autenticació»
Línia 17: | Línia 17: | ||
La referència principal és aquesta: | La referència principal és aquesta: | ||
* http://docs.pylonsproject.org/projects/pyramid_ldap/en/latest/ | * http://docs.pylonsproject.org/projects/pyramid_ldap/en/latest/ | ||
+ | I el meu exemple: | ||
+ | * https://github.com/emieza/egipcis-ldap.git | ||
Abans cal preparar l'entorn: | Abans cal preparar l'entorn: | ||
Línia 25: | Línia 27: | ||
...i ara podem anar al tutorial i mirar-nos el codi. Mira't, però, les indicacions de més avall per fer l'adaptació: | ...i ara podem anar al tutorial i mirar-nos el codi. Mira't, però, les indicacions de més avall per fer l'adaptació: | ||
* http://docs.pylonsproject.org/projects/pyramid_ldap/en/latest/ | * http://docs.pylonsproject.org/projects/pyramid_ldap/en/latest/ | ||
+ | |||
+ | |||
+ | === Exemple Egipcis-LDAP === | ||
+ | Trobareu l'exemple dels egipcis al meu repositori: | ||
+ | https://github.com/emieza/egipcis-ldap.git | ||
+ | Per tal que funcioni caldrà fer algunes modificacions del tutorial de Pyramid. Llegeix-les a continuació... | ||
+ | |||
+ | Sort!!! | ||
Línia 33: | Línia 43: | ||
...i no deixar-ho per defecte (sense indicar els atributs), ja que per defecte son ''None'' i això no serveix com a ''anonymous''. | ...i no deixar-ho per defecte (sense indicar els atributs), ja que per defecte son ''None'' i això no serveix com a ''anonymous''. | ||
+ | Amb això ja pots autenticar, al menys. Prova-ho abans de continuar... | ||
− | |||
− | |||
− | |||
− | + | === Gestió dels grups a la ACL === | |
+ | # Primer de tot assegura't que has substituït la '''funció ''groupfinder''''' de l'arxiu '''security.py''' per la nova versió que hi ha al tutorial de Pyramid (anem a buscar els grups al LDAP, no al array d'abans). | ||
+ | # Assegura't d'haver creat els grups i d'accedir-hi correctament pel DN complert. | ||
+ | # El '''filtre del config.ldap_set_groups_query''' ha de ser coherent amb la nostra estrctura de noms. #:L'exemple del Pyramid utiltiza ''objectCategory'' enlloc del ''objectClass''. A mi m'ha quedat així:<pre>filter_tmpl='(&(objectClass=groupOfNames)(member=%(userdn)s))',</pre> | ||
+ | # A la ACL del ''Root Factory'' per permetre l'entrada al Faraó en la piràmide, el nom del grup ja no serà<pre>(Allow, 'group:farao', 'master')</pre> | ||
+ | #:...sinó que caldrà posar el DN complert del grup, en el meu cas:<pre>(Allow, 'cn=farao,ou=grups,dc=enric,dc=tk', 'master')</pre> | ||
+ | |||
<br> | <br> |
Revisió del 13:33, 19 març 2013
Cal distingir entre:
- Autenticació: determinar si l'usuari és qui diu ser.
- Autorització: control de quins usuaris tenen accés a quines pàgines.
Contingut
Autenticació Pyramid estàndard
El mòdul d'autenticació i de control de sessió el podem veure a la següent documentació:
- Referència: http://docs.pylonsproject.org/projects/pyramid/en/latest/api/authentication.html
- Exemple versió URL_DISPATCHER (utilitzarem aquest): http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki2/authorization.html
- Exemple versió TRAVERSAL (si utilitzem ZODB): http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki/authorization.html
- Exemple "Egipcis" el podeu descarregar a https://github.com/emieza/egipcis.git
Autenticació Pyramid amb LDAP
La referència principal és aquesta:
I el meu exemple:
Abans cal preparar l'entorn:
- Carregar les llibreries adequades (en Ubuntu):
# apt-get install libldap2-dev libsasl2-dev
- Afegir pyramid_ldap al nostre projecte buildout (buildout.cfg)
- Reconstruir l'aplicació:
$ bin/buildout -v
...i ara podem anar al tutorial i mirar-nos el codi. Mira't, però, les indicacions de més avall per fer l'adaptació:
Exemple Egipcis-LDAP
Trobareu l'exemple dels egipcis al meu repositori:
https://github.com/emieza/egipcis-ldap.git
Per tal que funcioni caldrà fer algunes modificacions del tutorial de Pyramid. Llegeix-les a continuació...
Sort!!!
Anonymous Bind
Pensa que el BIND (autenticació per administrar) es pot fer amb ANOYMOUS. Per fer això cal posar:
- bind=""
- passwd=""
...i no deixar-ho per defecte (sense indicar els atributs), ja que per defecte son None i això no serveix com a anonymous.
Amb això ja pots autenticar, al menys. Prova-ho abans de continuar...
Gestió dels grups a la ACL
- Primer de tot assegura't que has substituït la funció groupfinder de l'arxiu security.py per la nova versió que hi ha al tutorial de Pyramid (anem a buscar els grups al LDAP, no al array d'abans).
- Assegura't d'haver creat els grups i d'accedir-hi correctament pel DN complert.
- El filtre del config.ldap_set_groups_query ha de ser coherent amb la nostra estrctura de noms. #:L'exemple del Pyramid utiltiza objectCategory enlloc del objectClass. A mi m'ha quedat així:
filter_tmpl='(&(objectClass=groupOfNames)(member=%(userdn)s))',
- A la ACL del Root Factory per permetre l'entrada al Faraó en la piràmide, el nom del grup ja no serà
(Allow, 'group:farao', 'master')
- ...sinó que caldrà posar el DN complert del grup, en el meu cas:
(Allow, 'cn=farao,ou=grups,dc=enric,dc=tk', 'master')
- ...sinó que caldrà posar el DN complert del grup, en el meu cas: