tuto:webapps:llng:openupload

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tuto:webapps:llng:openupload [05/01/2011 14:14]
dani
tuto:webapps:llng:openupload [21/09/2013 12:30] (Version actuelle)
dani [Règles pour un accès public]
Ligne 1: Ligne 1:
- 
 Voici la marche à suivre pour protéger l'application [[http://openupload.sourceforge.net|OpenUpload]] via LemonLDAP, et ainsi profiter du SSO. Voici la marche à suivre pour protéger l'application [[http://openupload.sourceforge.net|OpenUpload]] via LemonLDAP, et ainsi profiter du SSO.
  
Ligne 8: Ligne 7:
 La première étape est d'appliquer le patch suivant sur les source d'OpenUpload (patch intégré au rpm disponible [[http://repo.firewall-services.com/|sur notre dépôt]]) La première étape est d'appliquer le patch suivant sur les source d'OpenUpload (patch intégré au rpm disponible [[http://repo.firewall-services.com/|sur notre dépôt]])
 <hidden Patch pour OpenUpload 0.4.2> <hidden Patch pour OpenUpload 0.4.2>
-<code diff>+<file diff openupload-0.4.2-httpldap.patch>
 diff -Nur -x '*.orig' -x '*.rej' openupload-0.4.2/lib/main.inc.php mezzanine_patched_openupload-0.4.2/lib/main.inc.php diff -Nur -x '*.orig' -x '*.rej' openupload-0.4.2/lib/main.inc.php mezzanine_patched_openupload-0.4.2/lib/main.inc.php
 --- openupload-0.4.2/lib/main.inc.php 2010-11-20 11:39:47.000000000 +0100 --- openupload-0.4.2/lib/main.inc.php 2010-11-20 11:39:47.000000000 +0100
-+++ mezzanine_patched_openupload-0.4.2/lib/main.inc.php 2011-01-05 13:13:52.000000000 +0100++++ mezzanine_patched_openupload-0.4.2/lib/main.inc.php 2011-03-18 09:11:21.000000000 +0100
 @@ -485,8 +485,14 @@ @@ -485,8 +485,14 @@
            $this->db->free();            $this->db->free();
Ligne 19: Ligne 18:
 -          redirect('?action=login'); -          redirect('?action=login');
 +          /* Check if HTTP auth is used */ +          /* Check if HTTP auth is used */
-+          if (($this->config['remote']['trust']=='yes') &&  ++          if (($this->config['auth']=='httpldap') &&  
-+              isset($_SERVER{$this->config['remote']['header_login']})) {++              isset($_SERVER{$this->config['httpldap']['login']})) {
 +              $this->user->authenticate(); +              $this->user->authenticate();
 +          } else { +          } else {
Ligne 31: Ligne 30:
 diff -Nur -x '*.orig' -x '*.rej' openupload-0.4.2/lib/modules/auth/httpldap.inc.php mezzanine_patched_openupload-0.4.2/lib/modules/auth/httpldap.inc.php diff -Nur -x '*.orig' -x '*.rej' openupload-0.4.2/lib/modules/auth/httpldap.inc.php mezzanine_patched_openupload-0.4.2/lib/modules/auth/httpldap.inc.php
 --- openupload-0.4.2/lib/modules/auth/httpldap.inc.php 1970-01-01 01:00:00.000000000 +0100 --- openupload-0.4.2/lib/modules/auth/httpldap.inc.php 1970-01-01 01:00:00.000000000 +0100
-+++ mezzanine_patched_openupload-0.4.2/lib/modules/auth/httpldap.inc.php 2011-01-05 13:12:28.000000000 +0100++++ mezzanine_patched_openupload-0.4.2/lib/modules/auth/httpldap.inc.php 2011-03-18 09:18:49.000000000 +0100
 @@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
 +<?php +<?php
Ligne 43: Ligne 42:
 +  function init() { +  function init() {
 +    $this->config = app()->config['ldap']; +    $this->config = app()->config['ldap'];
-+    $this->remote = app()->config['remote'];++    $this->http = app()->config['httpldap'];
 +    $this->ufield = isset($this->config['uid'])?$this->config['uid']:'uid'; +    $this->ufield = isset($this->config['uid'])?$this->config['uid']:'uid';
 +    $this->gfield = isset($this->config['gid'])?$this->config['gid']:'gid'; +    $this->gfield = isset($this->config['gid'])?$this->config['gid']:'gid';
 + +
-+    /* Which HTTP header contains the user login ? */ ++    /* Which field contains the user login ? */ 
-+    if(empty($this->remote['header_login'])$this->remote['header_login''HTTP_AUTH_USER';++    $this->http['login'] = isset($this->http['login'])?$this->http['login']:'HTTP_AUTH_USER';
 + +
 +    /* cannot add or edit users for now */ +    /* cannot add or edit users for now */
Ligne 56: Ligne 55:
 +  function authenticate($login,$password) { +  function authenticate($login,$password) {
 +    $result = false; +    $result = false;
-+    if ($_SERVER{$this->remote['header_login']} == $login)++    if ($_SERVER{$this->http['login']} == $login)
 +        $result = true; +        $result = true;
 +    return $result; +    return $result;
Ligne 66: Ligne 65:
 diff -Nur -x '*.orig' -x '*.rej' openupload-0.4.2/lib/user.inc.php mezzanine_patched_openupload-0.4.2/lib/user.inc.php diff -Nur -x '*.orig' -x '*.rej' openupload-0.4.2/lib/user.inc.php mezzanine_patched_openupload-0.4.2/lib/user.inc.php
 --- openupload-0.4.2/lib/user.inc.php 2010-11-20 11:39:47.000000000 +0100 --- openupload-0.4.2/lib/user.inc.php 2010-11-20 11:39:47.000000000 +0100
-+++ mezzanine_patched_openupload-0.4.2/lib/user.inc.php 2011-01-05 13:12:28.000000000 +0100++++ mezzanine_patched_openupload-0.4.2/lib/user.inc.php 2011-03-18 09:11:21.000000000 +0100
 @@ -69,7 +69,12 @@ @@ -69,7 +69,12 @@
        return true;        return true;
Ligne 72: Ligne 71:
      // if it's logging in save user and pwd      // if it's logging in save user and pwd
 -    if (isset($_POST['username'])) { -    if (isset($_POST['username'])) {
-+    if ((app()->config['remote']['trust']=='yes') &&  ++    if ((app()->config['auth']=='httpldap') &&  
-+           isset($_SERVER{app()->config['remote']['header_login']})) { ++           isset($_SERVER{app()->config['httpldap']['login']})) { 
-+      $username = $_SERVER{app()->config['remote']['header_login']}; ++      $username = $_SERVER{app()->config['httpldap']['login']}; 
-+      $password = $_SERVER{app()->config['remote']['header_login']};++      $password = $_SERVER{app()->config['httpldap']['login']};
 +    } +    }
 +    elseif (isset($_POST['username'])) { +    elseif (isset($_POST['username'])) {
Ligne 89: Ligne 88:
 +?> +?>
 diff -Nur -x '*.orig' -x '*.rej' openupload-0.4.2/www/config.inc.php.example mezzanine_patched_openupload-0.4.2/www/config.inc.php.example diff -Nur -x '*.orig' -x '*.rej' openupload-0.4.2/www/config.inc.php.example mezzanine_patched_openupload-0.4.2/www/config.inc.php.example
---- openupload-0.4.2/www/config.inc.php.example 2011-01-05 13:15:06.000000000 +0100 +--- openupload-0.4.2/www/config.inc.php.example 2011-03-18 09:19:02.000000000 +0100 
-+++ mezzanine_patched_openupload-0.4.2/www/config.inc.php.example 2011-01-05 13:12:28.000000000 +0100 ++++ mezzanine_patched_openupload-0.4.2/www/config.inc.php.example 2011-03-18 09:11:21.000000000 +0100 
-@@ -44,6 +44,11 @@+@@ -44,6 +44,14 @@
  # $CONFIG['auth'] = 'ldap';  # $CONFIG['auth'] = 'ldap';
  $CONFIG['auth'] = 'default';   $CONFIG['auth'] = 'default'; 
    
-+/* If you trust your web server, you can use it to authenticate users */ ++/************************************************************ 
-+$CONFIG['remote']['trust'] = 'no'; ++ * HTTP/LDAP detail configuration options                        * 
-+/* This is the HTTP header which contains user login */ ++ ************************************************************/ 
-+$CONFIG['remote']['header_login'] = 'HTTP_AUTH_USER';++ 
 ++$CONFIG['auth'] = 'httpldap'; 
 ++/* This is the field which contains user login */ 
 ++$CONFIG['httpldap']['login'] = 'HTTP_AUTH_USER';
 + +
    
  /* TRANSLATION MODULE */  /* TRANSLATION MODULE */
  #$CONFIG['translator']='none';  #$CONFIG['translator']='none';
-</code>+</file>
 </hidden> </hidden>
  
Ligne 110: Ligne 112:
  
 <code php> <code php>
-# Should OpenUpload trust apache authentication + 
-$CONFIG['remote']['trust'] = 'yes';+$CONFIG['auth'] = 'httpldap';
  
 # Which variable contains user login ? # Which variable contains user login ?
-$CONFIG['remote']['header_login'] = 'HTTP_AUTH_USER';+$CONFIG['httpldap']['login'] = 'HTTP_AUTH_USER';
  
 # LDAP configuration, same as the standard ldap plugin # LDAP configuration, same as the standard ldap plugin
Ligne 177: Ligne 179:
 <code bash> <code bash>
 db configuration setprop openupload Authentication LemonLDAP AliasOnPrimary disabled db configuration setprop openupload Authentication LemonLDAP AliasOnPrimary disabled
-db domain set upload.domain.tld domain Content Primary DocumentRoot /usr/share/openupload/www Description 'OpenUpload' LemonLDAP enabled Nameservers internet TemplatePath WebAppVirtualHost +db domains set upload.$(db configuration get DomainName) domain Content Primary DocumentRoot /usr/share/openupload/www Description 'OpenUpload' LemonLDAP enabled Nameservers internet TemplatePath WebAppVirtualHost 
-signal-event domain-create upload.domain.tld+signal-event domain-create upload.$(db configuration get DomainName) 
 +mkdir -p /etc/e-smith/templates-custom/usr/share/openupload/www/config.inc.php 
 +cat <<'EOF' > /etc/e-smith/templates-custom/usr/share/openupload/www/config.inc.php/10paths 
 +$CONFIG['WWW_SERVER'] = 'http://upload.{"$DomainName";}'; 
 + 
 +$CONFIG['WWW_ROOT'] = ''; 
 + 
 +$CONFIG['INSTALL_ROOT'] = '/usr/share/openupload/'; 
 + 
 +$CONFIG['DATA_PATH'] = '/var/lib/openupload'; 
 + 
 +EOF
 signal-event webapps-update signal-event webapps-update
 </code> </code>
Ligne 199: Ligne 212:
 La première règle autorisera l'accès à quiconque a une session valide sur LemponLDAP. Il est bien entendu possible de modifier cette règle, par exemple: **$groups =~ /\bupload\b/** n'autoriserait que les membres du groupe upload. La seconde règle interceptera les demande de déconnexion pour renvoyer les utilisateurs authentifiés sur le portail. La première règle autorisera l'accès à quiconque a une session valide sur LemponLDAP. Il est bien entendu possible de modifier cette règle, par exemple: **$groups =~ /\bupload\b/** n'autoriserait que les membres du groupe upload. La seconde règle interceptera les demande de déconnexion pour renvoyer les utilisateurs authentifiés sur le portail.
  
-===== Règles pour un accès publique =====+===== Règles pour un accès public =====
 Si vous voulez maintenir l'accès aux téléchargements publique, tout en autorisant uniquement les utilisateurs authentifiés à uploader, il faut plus de règles: Si vous voulez maintenir l'accès aux téléchargements publique, tout en autorisant uniquement les utilisateurs authentifiés à uploader, il faut plus de règles:
  
-  * login +  * Protection contre des requêtes contenant deux actions: 
-    * Commentaire: 01login +    * Commentaire: 01deny_double_action 
-    * Expression: ^/(?i)(index\.php)?\?(.*)?a(ction)?=login +    * Expression: (a|action)=.*(a|action)=.* 
-    * Règle: accept (ou autre règle+    * Règle: deny 
-  * logout+  * Autoriser les téléchargements et les suppressions: 
-    * Commentaire: 02logout +    * Commentaire: 10unprotect_dl 
-    * Expression: ^/(?i)(index\.php)?\?(.*)?a(ction)?=logout+    * Expression: (a|action)=[dgr] 
 +    * Règle: unprotect 
 +  * Autoriser l'accès aux templates 
 +    * Commentaire12unprotect_templates 
 +    * Expression: ^/templates/ 
 +    * Règle: unprotect 
 +  * Autoriser l'accès au captcha 
 +    * Commentaire: 13unprotect_captcha 
 +    * Expression: ^/plugins/captcha\.php 
 +    * Règle: unprotect 
 +  * Autoriser l'accès à l'index (nécessaire pour le téléchargement) 
 +    * Commentaire: 14unprotect_index 
 +    * Expression: ^/index\.php$ 
 +    Règle: unprotect 
 +  * Interception du lien de logout 
 +    * Commentaire: 20logout 
 +    * Expression: (a|action)=logout
     * Règle: logout_app     * Règle: logout_app
-  * default +  * Redirection du login 
-    * Commentaire: +    * Commentaire: 21login 
 +    * Expression: (a|action)=login 
 +    * Règle: logout_app http://upload.domain.tld 
 +  * Défaut:
     * Expression: default     * Expression: default
-    * Règle: unprotect +    * Règle: $groups =~ \bopenupload\b/ (placez ici la règle que vous voulez pour l'accès à l'application)
- +
-Ces règles permettrons aux utilisateurs externes de télécharger les fichiers.+
  
 +Ces règles permettrons aux utilisateurs externes de télécharger les fichiers sans s'authentifier, et n'autorisera que les membres du groupes **openupload** à se loguer pour envoyer des fichiers. Dans cet exemple, l'application est accessible sur l'URL http://upload.domain.tld/
  
  
  • tuto/webapps/llng/openupload.1294233267.txt.gz
  • Dernière modification: 05/01/2011 14:14
  • de dani