docs/README.txt
changeset 0 f04e1d0a0723
child 42 07229ac2497b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/README.txt	Thu Feb 19 10:53:29 2015 +0100
@@ -0,0 +1,85 @@
+======================
+PyAMS security package
+======================
+
+Roles et permissions
+--------------------
+ - déclaration des permissions
+ - déclaration des rôles
+ - association rôles => permissions
+ - gestion des rôles locaux (Cf pyramid_localroles)
+ - fonctions "config.register_permission()" et "config.register_role()"
+
+
+Rôles locaux
+------------
+ - interface ILocalRoles(Interface)
+   __roles__: {'role.id1': {'principal.id1', 'principal.id1'...},
+               'role.id2': {'principal.id1', 'principal.id3'...}}
+ - catalogage des rôles attribués pour recherche rapide
+ * les rôles attribués à un utilisateur font partie de ses "groupes"
+
+
+Modules d'extraction de credentials
+-----------------------------------
+ * extract_credentials
+     -> request
+     <- Credentials
+
+ - HTTP basic
+ - Form -> mémoriser login/password en session
+
+
+Modules d'authentification
+--------------------------
+ * authenticate
+     -> Credentials, request
+     <- principal_id
+
+ - Users locaux avec mot de passe
+ - LDAP
+ - SQLAlchemy
+ - (OAuth (authomatic))
+ * chaque plug-in peut-être présent en plusieurs exemplaires, chacun avec un préfixe propre
+ * exemple pour LDAP avec plusieurs branches autorisées
+
+
+Modules de stockage des utilisateurs
+------------------------------------
+ * find_principal
+     -> principal_id
+     <- PrincipalInfo
+
+ - LDAP  => préfixe = ldap:  => ldap:uid (ou ldap:dn ?)
+ - SQLAlchemy => préfixe = sa.session_name:  => sa.AGENTS:12345, sa.CLIENTS:45678
+ - Users OAuth  => préfixe = oauth:  => oauth:twitter.123456
+ - Users locaux  => préfixe = local:  => local:uid (ou ldap:email ?)
+ - Groupes  => stockage d'une liste d'ID d'utilisateurs
+               préfixe = group:  => group:managers
+
+ - recherche des utilisateurs
+
+
+Module d'encodage des mots de passe
+-----------------------------------
+ - encodage et vérification des mots de passe
+
+
+Utilitaire d'authentification
+-----------------------------
+ - prise en charge des modules
+ - application des fonctions d'authentification
+
+
+Annotations des utilisateurs
+----------------------------
+ - interface générique pour associer des métadonnées à un ID utilisateur
+
+
+Événements
+----------
+ - AuthenticatedPrincipal
+     -> notifié lorsqu'un utilisateur s'authentifie avec succès (HTTP, Form, OAuth)
+     -> enregistrement des credentials en session (si besoin du mot de passe)
+     -> permet d'enregistrer les propriétés de l'utilisateur dans un plug-in de stockage
+        si l'inscription "libre" est autorisée