|
|
|
@ -2,7 +2,7 @@ package Lemonldap::NG::Manager::Help; |
|
|
|
|
|
|
|
|
|
use AutoLoader qw(AUTOLOAD); |
|
|
|
|
use UNIVERSAL qw(can); |
|
|
|
|
our $VERSION = '0.1'; |
|
|
|
|
our $VERSION = '0.2'; |
|
|
|
|
|
|
|
|
|
sub import { |
|
|
|
|
my ($caller_package) = caller; |
|
|
|
@ -61,30 +61,133 @@ EOT |
|
|
|
|
sub help_virtualHosts_fr { |
|
|
|
|
print <<EOT; |
|
|
|
|
<h3>Hôtes virtuels</h3> |
|
|
|
|
<p> La configuration d'un hôte virtuel est divisée en 2 parties : les |
|
|
|
|
règles et les en-têtes HTTP exportés. |
|
|
|
|
<h4> Règles</h4> |
|
|
|
|
<p>Une règle associe une expression régulière perl à une expression booléenne. |
|
|
|
|
Lors de l'accès d'un utilisateur, si l'URL demandée correspond à la règle, le |
|
|
|
|
droit d'accès est calculé par l'expression booléenne. Exemple :</p> |
|
|
|
|
<pre> |
|
|
|
|
# Hôte virtuel test.example.com - règles |
|
|
|
|
^/protected => \$groups =~ /\\bgroup1\\b/ |
|
|
|
|
</pre> |
|
|
|
|
<p> La règle ci-dessus signifie que pour les URL commençant par '/protected', |
|
|
|
|
les utilisateurs doivent appartenir au groupe 'group1'. Vous pouvez également |
|
|
|
|
utiliser les mots-clefs 'accept' et 'deny'. Attention, 'accept' signifie que |
|
|
|
|
tous les utilisateurs authentifiés peuvent accéder.</p> |
|
|
|
|
<p>Si l'URL demandée ne correspond à aucune des expressions régulières, le |
|
|
|
|
droit d'accès est calculé à partir de l'expression booléenne définie dans |
|
|
|
|
la règle par défaut (default).</p> |
|
|
|
|
|
|
|
|
|
<h4> En-têtes</h4> |
|
|
|
|
<p> Les en-têtes servant à l'application à savoir qui est connecté se déclarent |
|
|
|
|
comme suit : <tt><nom de l'en-tête> => <expression Perl>. |
|
|
|
|
</p> |
|
|
|
|
<p> Exemples :</p> |
|
|
|
|
<pre> |
|
|
|
|
Auth-User => \$uid |
|
|
|
|
Unite => \$departmentUID |
|
|
|
|
</pre> |
|
|
|
|
EOT |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sub help_groups_fr { |
|
|
|
|
print <<EOT; |
|
|
|
|
<h3>Groupes d'utilisateurs</h3> |
|
|
|
|
<p>Les groupes ne sont pas indispensables mais accélèrent le traitement des |
|
|
|
|
requêtes. Par exemple, si un hôte virtuel est autorisé nominativement à |
|
|
|
|
user, user2 et user3, la règle d'accès s'écrira :</p> |
|
|
|
|
<pre> |
|
|
|
|
# test.example.com - Règles |
|
|
|
|
default => \$uid eq "user1" or \$uid eq "user2" or \$uid eq "user3" |
|
|
|
|
</pre> |
|
|
|
|
<p> Le problème est que cette expression sera calculée à chaque requête HTTP. |
|
|
|
|
D'autre part, si 2 hôtes virtuels ont la même règle d'accès, toute modification |
|
|
|
|
doit être répercutée sur les deux hôtes virtuels. Le système des groupes permet |
|
|
|
|
de résoudre ces deux problèmes : lors de la connexion au portail, les |
|
|
|
|
expressions complexes sont calculées une fois pour toute la session et le |
|
|
|
|
résultat est stocké dans la chaîne \$groups. L'exemple précédent devient |
|
|
|
|
alors :</p> |
|
|
|
|
<pre> |
|
|
|
|
# Déclaration d'un groupe (on suppose ici que ou est un champ mono-valué) |
|
|
|
|
group1 => \$uid eq "user1" or \$uid eq "user2" or \$uid eq "user3" |
|
|
|
|
|
|
|
|
|
# Utilisation : |
|
|
|
|
# test.example.com - Règles |
|
|
|
|
default => \$groups =~ /\\bgroup1\\b/ |
|
|
|
|
</pre> |
|
|
|
|
<p> Cette dernière expression est une expression régulière Perl (PCRE) qui |
|
|
|
|
correspond à la recherche du mot group1 dans la chaîne \$groups (\\b signifie |
|
|
|
|
début ou fin de mot).</p> |
|
|
|
|
|
|
|
|
|
<p>La variable exportée \$groups est une chaîne de caractères composés de tous les |
|
|
|
|
noms de groupes auquel l'utilisateur connecté appartient (c'est à dire les |
|
|
|
|
noms de groupe pour lesquels l'expression est vraie.</p> |
|
|
|
|
EOT |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sub help_ldap_fr { |
|
|
|
|
print <<EOT; |
|
|
|
|
<h3>Paramètres LDAP</h3> |
|
|
|
|
<h3>Paramètres LDAP</h3> |
|
|
|
|
<p> Le paramètres LDAP servent à identifier les utilisateurs. Ils doivent être |
|
|
|
|
renseignés même si l'authentification est réalisée par un autre moyen (SSL par |
|
|
|
|
exemple).</p> |
|
|
|
|
<ul> |
|
|
|
|
<li>Base de recherche LDAP : obligatoire (à moins que votre serveur LDAP |
|
|
|
|
accepte les requêtes sans base) ; exemple : |
|
|
|
|
<pre> dc=example, dc=com </pre></li> |
|
|
|
|
<li>Port du serveur LDAP : 389 par défaut ;</li> |
|
|
|
|
<li>Serveur LDAP : Nom (ou adresse IP) du serveur LDAP ;</li> |
|
|
|
|
<li>Compte de connexion LDAP : optionnel, à renseigner si les attributs LDAP |
|
|
|
|
utilisés ne sont pas accessibles par une session anonyme. Ce compte est |
|
|
|
|
utilisé avant l'authentification pour trouver le dn de l'utilisateur ; |
|
|
|
|
</li> |
|
|
|
|
<li>Mot de passe LDAP : mot de passe correspondant au compte ci-dessus. |
|
|
|
|
</ul> |
|
|
|
|
EOT |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sub help_vars_fr { |
|
|
|
|
print <<EOT; |
|
|
|
|
<h3>Variables (attributs LDAP)</h3> |
|
|
|
|
<p> Indiquez ici tous les attributs LDAP dont vous avez besoin dans votre |
|
|
|
|
configuration (pour définir les groupes, les règles d'accès au hôtes virtuels |
|
|
|
|
ou encore les en-têtes HTTP).</p> |
|
|
|
|
<p>La déclaration d'une variable se fait sous la forme :</p> |
|
|
|
|
<pre> <nom declare> => <nom de l'attribut LDAP></pre> |
|
|
|
|
<p>Exemples :</p> |
|
|
|
|
<pre> |
|
|
|
|
uid => uid |
|
|
|
|
unite => ou |
|
|
|
|
</pre> |
|
|
|
|
Les noms déclarés s'utilisent ensuite dans les règles, les groupes ou les |
|
|
|
|
en-têtes HTTP en les faisant précéder du signe '\$'. Exemple : |
|
|
|
|
<pre> |
|
|
|
|
group1 => \$uid eq 'user1' or \$uid eq 'user2' |
|
|
|
|
EOT |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sub help_storage_fr { |
|
|
|
|
print <<EOT; |
|
|
|
|
<h3>Stockage des sessions</h3> |
|
|
|
|
<p> Le stockage des sessions Lemonldap::NG est réalisé au travers des modules |
|
|
|
|
hérités de Apache::Session. Vous devez indiquer ici le module choisi et |
|
|
|
|
indiquer les paramètres correspondants à ce module :</p> |
|
|
|
|
<p>Exemples :</p> |
|
|
|
|
<ul> |
|
|
|
|
<li>Module => Apache::Session::File, <br>options : |
|
|
|
|
<ul> |
|
|
|
|
<li> Directory => /var/cache/lemonldap</li> |
|
|
|
|
</ul> |
|
|
|
|
</li> |
|
|
|
|
<li>Module => Apache::Session::MySQL, <br>options : |
|
|
|
|
<ul> |
|
|
|
|
<li> DataSource => DBI:mysql:database=lemon;host=1.2.3.4</li> |
|
|
|
|
<li> UserName => Lemonldap |
|
|
|
|
<li> Password => mypass |
|
|
|
|
</ul> |
|
|
|
|
</li> |
|
|
|
|
</ul> |
|
|
|
|
EOT |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|