docs/README.txt
changeset 0 f04e1d0a0723
child 42 07229ac2497b
equal deleted inserted replaced
-1:000000000000 0:f04e1d0a0723
       
     1 ======================
       
     2 PyAMS security package
       
     3 ======================
       
     4 
       
     5 Roles et permissions
       
     6 --------------------
       
     7  - déclaration des permissions
       
     8  - déclaration des rôles
       
     9  - association rôles => permissions
       
    10  - gestion des rôles locaux (Cf pyramid_localroles)
       
    11  - fonctions "config.register_permission()" et "config.register_role()"
       
    12 
       
    13 
       
    14 Rôles locaux
       
    15 ------------
       
    16  - interface ILocalRoles(Interface)
       
    17    __roles__: {'role.id1': {'principal.id1', 'principal.id1'...},
       
    18                'role.id2': {'principal.id1', 'principal.id3'...}}
       
    19  - catalogage des rôles attribués pour recherche rapide
       
    20  * les rôles attribués à un utilisateur font partie de ses "groupes"
       
    21 
       
    22 
       
    23 Modules d'extraction de credentials
       
    24 -----------------------------------
       
    25  * extract_credentials
       
    26      -> request
       
    27      <- Credentials
       
    28 
       
    29  - HTTP basic
       
    30  - Form -> mémoriser login/password en session
       
    31 
       
    32 
       
    33 Modules d'authentification
       
    34 --------------------------
       
    35  * authenticate
       
    36      -> Credentials, request
       
    37      <- principal_id
       
    38 
       
    39  - Users locaux avec mot de passe
       
    40  - LDAP
       
    41  - SQLAlchemy
       
    42  - (OAuth (authomatic))
       
    43  * chaque plug-in peut-être présent en plusieurs exemplaires, chacun avec un préfixe propre
       
    44  * exemple pour LDAP avec plusieurs branches autorisées
       
    45 
       
    46 
       
    47 Modules de stockage des utilisateurs
       
    48 ------------------------------------
       
    49  * find_principal
       
    50      -> principal_id
       
    51      <- PrincipalInfo
       
    52 
       
    53  - LDAP  => préfixe = ldap:  => ldap:uid (ou ldap:dn ?)
       
    54  - SQLAlchemy => préfixe = sa.session_name:  => sa.AGENTS:12345, sa.CLIENTS:45678
       
    55  - Users OAuth  => préfixe = oauth:  => oauth:twitter.123456
       
    56  - Users locaux  => préfixe = local:  => local:uid (ou ldap:email ?)
       
    57  - Groupes  => stockage d'une liste d'ID d'utilisateurs
       
    58                préfixe = group:  => group:managers
       
    59 
       
    60  - recherche des utilisateurs
       
    61 
       
    62 
       
    63 Module d'encodage des mots de passe
       
    64 -----------------------------------
       
    65  - encodage et vérification des mots de passe
       
    66 
       
    67 
       
    68 Utilitaire d'authentification
       
    69 -----------------------------
       
    70  - prise en charge des modules
       
    71  - application des fonctions d'authentification
       
    72 
       
    73 
       
    74 Annotations des utilisateurs
       
    75 ----------------------------
       
    76  - interface générique pour associer des métadonnées à un ID utilisateur
       
    77 
       
    78 
       
    79 Événements
       
    80 ----------
       
    81  - AuthenticatedPrincipal
       
    82      -> notifié lorsqu'un utilisateur s'authentifie avec succès (HTTP, Form, OAuth)
       
    83      -> enregistrement des credentials en session (si besoin du mot de passe)
       
    84      -> permet d'enregistrer les propriétés de l'utilisateur dans un plug-in de stockage
       
    85         si l'inscription "libre" est autorisée