--- /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