root/docs/trunk/apache_auth.txt

Revision 243, 5.2 kB (checked in by sebastien, 1 year ago)

Fixed rst2html issue

Line 
1 ===========================================================================
2 Authentification depuis Apache via la base de données utilisateur de Django
3 ===========================================================================
4
5 Etant donné que garder synchronisées plusieurs bases de données est un problÚme
6 souvent rencontré avec l'utilisation d'Apache, vous pouvez directement configurer
7 Apache pour s'authentifier via le `systÚme d'authentification`_ de Django.
8 Par exemple, vous pouvez:
9
10     * Servir des fichiers statiques/médias depuis Apache directement, uniquement
11       pour les utilisateurs authentifiés.
12
13     * Sécuriser l'accÚs à un dépÃŽt Subversion_ pour les utilisateurs de Django
14       avec une permission définie.
15
16     * Permettre à certains utilisateurs de se connecter à un partage Webdav
17       créé avec mod_dav_.
18
19 Configuration d'Apache
20 ======================
21
22 Pour contrÎler l'accÚs avec la base de données d'authentification de Django depuis
23 un fichier de configuration d'Apache, vous devez utiliser la directive
24 ``PythonAuthenHandler`` de mod_python associée avec les directives standard
25 ``Auth*`` et ``Require``::
26
27     <Location /exemple/>
28         AuthType Basic
29         AuthName "exemple.com"
30         Require valid-user
31
32         SetEnv DJANGO_SETTINGS_MODULE monsite.settings
33         PythonAuthenHandler django.contrib.auth.handlers.modpython
34     </Location>
35
36 .. admonition:: Utilisation de l'authentification avec Apache 2.2
37
38     Si vous utilisez Apache 2.2, vous aurez besoin de quelques étapes en plus.
39    
40     Vous devez vous assurez que ``mod_auth_basic`` et ``mod_authz_user`` sont
41     chargés. Ils peuvent être compilés statiquement avec Apache, ou vous
42     pourriez avoir besoin d'utiliser ``LoadModule`` pour les charger
43     dynamiquement (tel qu'illustré dans l'exemple qui suit cette note).
44    
45     Vous aurez aussi besoin d'insérer des diredtives de configuration prévenant
46     Apache de ne pas utiliser d'autre modules d'autentification. En fonction
47     des autres modules que vous avez chargé, vous aurez besoin d'une ou
48     plusieurs des directives suivantes::
49    
50         AuthBasicAuthoritative Off
51         AuthDefaultAuthoritative Off
52         AuthzLDAPAuthoritative Off
53         AuthzDBMAuthoritative Off
54         AuthzDefaultAuthoritative Off
55         AuthzGroupFileAuthoritative Off
56         AuthzOwnerAuthoritative Off
57         AuthzUserAuthoritative Off
58        
59     Une configuration complÚte, avec les différences entre Apache 2.0 et
60     Apache 2.2 représentées en gras, pourrait ressembler à cela:
61    
62     .. parsed-literal::
63    
64         **LoadModule auth_basic_module modules/mod_auth_basic.so**
65         **LoadModule authz_user_module modules/mod_authz_user.so**
66    
67         ...
68    
69         <Location /exmaple/>
70             AuthType Basic
71             AuthName "example.com"
72             **AuthBasicAuthoritative Off**
73             Require valid-user
74
75             SetEnv DJANGO_SETTINGS_MODULE mysite.settings
76             PythonAuthenHandler django.contrib.auth.handlers.modpython
77         </Location>
78        
79 Par défaut, le gestionnaire d'authentification limitera l'accÚs à l'emplacement
80 ``/exemple/`` pour les utilisateurs ayant la propriété ``staff``.
81 Vous pouvez utiliser un ensemble de directives ``PythonOption`` pour modifier
82 ce comportement:
83
84     ================================  =========================================
85     ``PythonOption``                  Explication
86     ================================  =========================================
87     ``DjangoRequireStaffStatus``      Si positionnée à ``on`` seuls les utilisateurs
88                                       ``staff`` (i.e. ceux dont la valeur ``is_staff``
89                                       est assignée) seront autorisés.
90
91                                       Par défaut à ``on``.
92
93     ``DjangoRequireSuperuserStatus``  Si positionnée à ``on`` seuls les superutilisateurs
94                                       (i.e. ceux dont la valeur ``is_superuser``
95                                       est assignée) seront autorisés.
96
97                                       Par défaut à ``off``.
98
99     ``DjangoPermissionName``          Nom d'une permission requise pour l'accÚs.
100                                       Voir les `permissions personnalisées`_
101                                       pour plus d'information.
102
103                                       Par défaut aucune permission spéciale
104                                       n'est requise.
105     ================================  =========================================
106
107 Notez que parfois ``SetEnv`` n'est pas bien reconnu dans cette configuration
108 de mod_python, pour des raisons inconnues. Si vous rencontrez des problÚmes
109 pour faire reconnaître à mod_python votre ``DJANGO_SETTINGS_MODULE``, vous
110 pouvez l'assigner en utilisant ``PythonOption`` au lieu de ``SetEnv``. Par
111 conséquent, ces deux directives Apache sont équivalentes::
112
113     SetEnv DJANGO_SETTINGS_MODULE mysite.settings
114     PythonOption DJANGO_SETTINGS_MODULE mysite.settings
115
116 .. _systÚme d'authentification: ../authentication/
117 .. _Subversion: http://subversion.tigris.org/
118 .. _mod_dav: http://httpd.apache.org/docs/2.0/mod/mod_dav.html
119 .. _permissions personnalisées: ../authentication/#custom-permissions
Note: See TracBrowser for help on using the browser.