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