From ebb1d13a2e8489698f5a3bca52ee0c4ee2914a33 Mon Sep 17 00:00:00 2001 From: Xavier Guimard Date: Sat, 13 Dec 2008 09:52:53 +0000 Subject: [PATCH] LEMONLDAP::NG : documentation update --- .../{overview-fr.html => 1-Overview-fr.html} | 59 +-- .../doc/{overview.html => 1-Overview.html} | 193 +++----- .../doc/{faq-fr.html => 2-FAQ-fr.html} | 16 +- .../lemonldap-ng/doc/{faq.html => 2-FAQ.html} | 6 +- .../doc/3-Table-of-contents-fr.html | 333 ++++++++++++++ .../lemonldap-ng/doc/3-Table-of-contents.html | 318 +++++++++++++ .../doc/3.1-Install-prerequesites.html | 132 ++++++ .../doc/3.2-Install-from-tarball.html | 161 +++++++ ... => 3.3-Install-from-debian-packages.html} | 55 ++- .../doc/3.4-Install-of-MySQL-storage.html | 246 ++++++++++ ...fr.html => 3.5-Install-of-example-fr.html} | 133 ++---- ...stall.html => 3.5-Install-of-example.html} | 127 ++---- .../doc/4.1-Configuration-overview.html | 144 ++++++ .../doc/4.1-Configuration-parameter-list.html | 243 ++++++++++ .../doc/4.1-Configure-portal-menu.html | 283 ++++++++++++ .../doc/4.1-HTML-templates-customization.html | 275 ++++++++++++ build/lemonldap-ng/doc/4.1-RBAC-model.html | 226 ++++++++++ .../doc/4.2-Configure-LDAP-schema.html | 206 +++++++++ ...tml => 4.2-Configure-password-policy.html} | 32 +- ...=> 4.3-Configure-Liberty-Alliance-fr.html} | 5 +- ...oap-fr.html => 4.3-Configure-SOAP-fr.html} | 80 +++- .../{dokuwiki.html => 5-Appli-Dokuwiki.html} | 2 +- .../doc/{sympa.html => 5-Appli-Sympa.html} | 2 +- ...t-valve.html => 5-Appli-Tomcat-Valve.html} | 2 +- ...apadmin.html => 5-Appli-phpLDAPadmin.html} | 2 +- .../doc/{contacts.html => 6-Contacts.html} | 6 +- .../doc/{errors-fr.html => 6-Errors-fr.html} | 2 +- .../doc/{errors.html => 6-Errors.html} | 2 +- .../{references.html => 6-References.html} | 6 +- build/lemonldap-ng/doc/6-Roadmap.html | 144 ++++++ .../doc/advanced-access-rules.html | 420 ------------------ build/lemonldap-ng/doc/advanced-install.html | 417 ----------------- build/lemonldap-ng/doc/dokuwiki_logo.png | Bin 0 -> 13657 bytes build/lemonldap-ng/doc/error.png | Bin 0 -> 1170 bytes build/lemonldap-ng/doc/grr_logo.png | Bin 0 -> 8072 bytes build/lemonldap-ng/doc/index.html | 51 ++- build/lemonldap-ng/doc/ok.png | Bin 0 -> 1164 bytes .../doc/out_of_the_box_nicu_bucu_01.png | Bin 0 -> 4858 bytes .../lemonldap-ng/doc/padlock_aj_ashton_01.png | Bin 0 -> 6569 bytes build/lemonldap-ng/doc/roadmap.html | 126 ------ build/lemonldap-ng/doc/tomcat_logo.png | Bin 0 -> 9630 bytes .../doc/tools_nicu_buculei_01.png | Bin 0 -> 6400 bytes build/lemonldap-ng/doc/tux_clemente_01.png | Bin 0 -> 3716 bytes build/lemonldap-ng/doc/warning_triangle.png | Bin 0 -> 797 bytes 44 files changed, 3052 insertions(+), 1403 deletions(-) rename build/lemonldap-ng/doc/{overview-fr.html => 1-Overview-fr.html} (92%) rename build/lemonldap-ng/doc/{overview.html => 1-Overview.html} (66%) rename build/lemonldap-ng/doc/{faq-fr.html => 2-FAQ-fr.html} (97%) rename build/lemonldap-ng/doc/{faq.html => 2-FAQ.html} (98%) create mode 100644 build/lemonldap-ng/doc/3-Table-of-contents-fr.html create mode 100644 build/lemonldap-ng/doc/3-Table-of-contents.html create mode 100644 build/lemonldap-ng/doc/3.1-Install-prerequesites.html create mode 100644 build/lemonldap-ng/doc/3.2-Install-from-tarball.html rename build/lemonldap-ng/doc/{debian-packages-install.html => 3.3-Install-from-debian-packages.html} (70%) create mode 100644 build/lemonldap-ng/doc/3.4-Install-of-MySQL-storage.html rename build/lemonldap-ng/doc/{install-fr.html => 3.5-Install-of-example-fr.html} (53%) rename build/lemonldap-ng/doc/{install.html => 3.5-Install-of-example.html} (52%) create mode 100644 build/lemonldap-ng/doc/4.1-Configuration-overview.html create mode 100644 build/lemonldap-ng/doc/4.1-Configuration-parameter-list.html create mode 100644 build/lemonldap-ng/doc/4.1-Configure-portal-menu.html create mode 100644 build/lemonldap-ng/doc/4.1-HTML-templates-customization.html create mode 100644 build/lemonldap-ng/doc/4.1-RBAC-model.html create mode 100644 build/lemonldap-ng/doc/4.2-Configure-LDAP-schema.html rename build/lemonldap-ng/doc/{password-policy.html => 4.2-Configure-password-policy.html} (80%) rename build/lemonldap-ng/doc/{liberty-alliance-fr.html => 4.3-Configure-Liberty-Alliance-fr.html} (99%) rename build/lemonldap-ng/doc/{soap-fr.html => 4.3-Configure-SOAP-fr.html} (87%) rename build/lemonldap-ng/doc/{dokuwiki.html => 5-Appli-Dokuwiki.html} (98%) rename build/lemonldap-ng/doc/{sympa.html => 5-Appli-Sympa.html} (99%) rename build/lemonldap-ng/doc/{tomcat-valve.html => 5-Appli-Tomcat-Valve.html} (98%) rename build/lemonldap-ng/doc/{phpldapadmin.html => 5-Appli-phpLDAPadmin.html} (98%) rename build/lemonldap-ng/doc/{contacts.html => 6-Contacts.html} (95%) rename build/lemonldap-ng/doc/{errors-fr.html => 6-Errors-fr.html} (99%) rename build/lemonldap-ng/doc/{errors.html => 6-Errors.html} (99%) rename build/lemonldap-ng/doc/{references.html => 6-References.html} (94%) create mode 100644 build/lemonldap-ng/doc/6-Roadmap.html delete mode 100644 build/lemonldap-ng/doc/advanced-access-rules.html delete mode 100644 build/lemonldap-ng/doc/advanced-install.html create mode 100644 build/lemonldap-ng/doc/dokuwiki_logo.png create mode 100644 build/lemonldap-ng/doc/error.png create mode 100644 build/lemonldap-ng/doc/grr_logo.png create mode 100644 build/lemonldap-ng/doc/ok.png create mode 100644 build/lemonldap-ng/doc/out_of_the_box_nicu_bucu_01.png create mode 100644 build/lemonldap-ng/doc/padlock_aj_ashton_01.png delete mode 100644 build/lemonldap-ng/doc/roadmap.html create mode 100644 build/lemonldap-ng/doc/tomcat_logo.png create mode 100644 build/lemonldap-ng/doc/tools_nicu_buculei_01.png create mode 100644 build/lemonldap-ng/doc/tux_clemente_01.png create mode 100644 build/lemonldap-ng/doc/warning_triangle.png diff --git a/build/lemonldap-ng/doc/overview-fr.html b/build/lemonldap-ng/doc/1-Overview-fr.html similarity index 92% rename from build/lemonldap-ng/doc/overview-fr.html rename to build/lemonldap-ng/doc/1-Overview-fr.html index 7f8fb6a05..9cd3514e2 100644 --- a/build/lemonldap-ng/doc/overview-fr.html +++ b/build/lemonldap-ng/doc/1-Overview-fr.html @@ -7,7 +7,7 @@ - Lemonldap::NG documentation: overview-fr.html + Lemonldap::NG documentation: 1-Overview-fr.html + + + +
+

Documentation de + LemonLDAP::NG

+ +

+ + Documentation applicable pour LemonLDAP::NG + >= 0.9 + +

Merci de lire FAQ en premier + +

Installation

out_of_the_box_nicu_bucu_01.png + + + +

Configuration

tools_nicu_buculei_01.png + +

Général

+ + + +

LDAP

+ + + +

Fonctionnalités + étendues

+ + + +

Protection + des applications

+ + +

Applications + existantes

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ApplicationDescription
Dokuwiki
+ dokuwiki_logo.png
Dokuwiki est un moteur de wiki en PHP
+
+ Procédure SSO (en)
+ Site + web officiel
Gestion et de Réservations de + Ressources
+ grr_logo.png
GRR permet de gérer la réservation de + ressources
+
+ Procédure SSO + (fr)
+ Site web officiel
GLPI
+ +
GLPI est outil de gestion de parc
+
+ Procédure SSO + (en)
+ Site + web officiel
phpLDAPadmin
+ phpldapadmin_logo.png
Interface web de gestion d'annuaire LDAP
+
+ Procédure SSO (en)
+ Site web + officiel
Sympa
+ +
Gestionnaire de listes de diffusion
+
+ Procédure + SSO (en)
+ Site + web officiel
+ +

Connecteurs

+ +

+ + + + + + + + + + + + + +
ApplicationDescription
Tomcat
+ tomcat_logo.png
Tomcat est un conteneur de servlets J2EE. Il utilise des valves + pour certaines fonctionnalités, comme l'intégration au + SSO.
+
+ Procédure SSO (en)
+ Site web officiel
+ +

Applications + "maison"

+ + + +

Autres

tux_clemente_01.png + +

FAQ

+ +

Voir la page FAQ. + +

Erreurs

+ +

Voir la page erreurs. + +

Formations

+ + +
+ + + + diff --git a/build/lemonldap-ng/doc/3-Table-of-contents.html b/build/lemonldap-ng/doc/3-Table-of-contents.html new file mode 100644 index 000000000..f8a5f5988 --- /dev/null +++ b/build/lemonldap-ng/doc/3-Table-of-contents.html @@ -0,0 +1,318 @@ + + + + + + + + Lemonldap::NG documentation: 3-Table-of-contents.html + + + + + +
+

Lemonldap::NG Documentation

+ +

+ + Documentation applicable for LemonLDAP::NG + >= 0.9 + +

Please read the + FAQ first + +

Installation

out_of_the_box_nicu_bucu_01.png + + + +

Configuration

tools_nicu_buculei_01.png + +

General

+ + + +

LDAP

+ + + +

Extended + features

+ + + +

Application + protection

+ + +

Existing + applications

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ApplicationDescription
Dokuwiki
+ dokuwiki_logo.png
Dokuwiki is a popular PHP wiki Engine
+
+ SSO + procedure (en)
+ Official website
Gestion et de Réservations de + Ressources
+ grr_logo.png
GRR is a system to manage ressources booking
+
+ SSO + procedure (fr)
+ Official website
GLPI
+ +
GLPI is an IT and asset management software
+
+ SSO + procedure (en)
+ Official website
phpLDAPadmin
+ phpldapadmin_logo.png
Web interface to manage LDAP directory
+
+ SSO + procedure (en)
+ Official website
Sympa
+ +
Mailing lists manager
+
+ SSO + procedure (en)
+ Official website
+ +

Connectors

+ +

+ + + + + + + + + + + + + +
ApplicationDescription
Tomcat
+ tomcat_logo.png
Tomcat is a J2EE servlet container. It uses Valve to use extra + functionnalities, like SSO integration.
+
+ SSO + procedure (en)
+ Official website
+ +

Self-made

+ + + +

Others

tux_clemente_01.png + +

FAQ

+ +

See FAQ page. + +

Errors

+ +

See errors page. + +

Training

+ + +
+ + + + diff --git a/build/lemonldap-ng/doc/3.1-Install-prerequesites.html b/build/lemonldap-ng/doc/3.1-Install-prerequesites.html new file mode 100644 index 000000000..2c93bcf34 --- /dev/null +++ b/build/lemonldap-ng/doc/3.1-Install-prerequesites.html @@ -0,0 +1,132 @@ + + + + + + + + Lemonldap::NG documentation: 3.1-Install-prerequesites.html + + + + + +
+

Prerequisites and dependencies

+ +

+ + + +

Apache

+ +

To use Lemonldap::NG, you have to run a LDAP + server and of course an Apache server compiled with mod-perl (version 1.3 + or 2.x). Generaly, the version of Apache proposed with your Linux + distribution match, but some distributions used an experimental version of + mod_perl with Apache2 (mod_perl-1.99) which does not work with + Lemonldap::NG. With such distributions (like Debian-3.1), you have to use + Apache-1.3 or to use a mod_perl backport (www.backports.org package for + Debian works fine). + +

For Apache2, you can use both mpm-worker and + mpm-prefork. Mpm-worker works faster and Lemonldap::NG use the thread + system for best performance. If you have to use mpm-prefork (for example + if you use PHP), Lemonldap::NG will work anyway. + +

You can use Lemonldap::NG in an heterogene world: + the authentication portal and the manager can work in any version of + Apache 1.3 or more even if mod_perl is not compiled, with + ModPerl::Registry or not… Only the handler (site protector) need + mod_perl. The different handlers can run on different servers with + different versions of Apache/mod_perl. + +

Perl

+ +

Needed for all + modules

+ +

Apache::Session, Net::LDAP, MIME::Base64, CGI, + LWP::UserAgent, Cache::Cache, DBI, XML::Simple + +

Needed for + Portal

+ +

Apache::Session, Net::LDAP, MIME::Base64, CGI, + DBI + +

Needed for + Handler

+ +

Apache::Session, LWP::UserAgent, Cache::Cache, + DBI + +

Needed for + Manager

+ +

CGI, XML::Simple, DBI +
+ + + + diff --git a/build/lemonldap-ng/doc/3.2-Install-from-tarball.html b/build/lemonldap-ng/doc/3.2-Install-from-tarball.html new file mode 100644 index 000000000..dc241b31e --- /dev/null +++ b/build/lemonldap-ng/doc/3.2-Install-from-tarball.html @@ -0,0 +1,161 @@ + + + + + + + + Lemonldap::NG documentation: 3.2-Install-from-tarball.html + + + + + +
+

Installation + from the tarball

+ +

+ + + +

Get the + tarball

+ +

All tarballs can be downloaded from the OW2 + forge: http://forge.objectweb.org/project/showfiles.php?group_id=274 + +

If you want the last SVN snapshot, please choose: + http://forge.objectweb.org/svnsnapshots/lemonldap-svn-latest.tar.gz + +

Warning: the + contents of the SVN tarball are not the same as the official tarballs. + Please see the next chapter to learn how build an official tarball from + SVN files. + +

Build the + tarball from SVN

+ +

Either checkout + or export the SVN repository, or extract + the SVN tarball to get the SVN files on your disk. + +

Then go to build directory: + +
+
+$ cd trunk/build/lemonldap-ng
+
+

+
+ And run the "dist" target: + +
+
+$ make dist
+
+

+
+ The generated tarball is in the current directory. + +

Extraction


+
+ Just run the tar command: + +
+
+$ tar zxvf lemonldap-ng-*.tar.gz
+
+
+ +

Installation


+
+ First check and install the prerequisites.
+
+ If you just want to install a handler or a portal or a manager:
+
+ +
+
+$ cd lemonldap-ng-*/Lemonldap-NG-(Portal|Handler|Manager|Common)
+$ perl Makefile.PL && make && make test
+$ sudo make install
+
+
+ +

Else for full modules install: + +

+ +
+
+$ cd lemonldap-ng-*
+$ make && make test
+$ sudo make install
+
+
+
+ + + + diff --git a/build/lemonldap-ng/doc/debian-packages-install.html b/build/lemonldap-ng/doc/3.3-Install-from-debian-packages.html similarity index 70% rename from build/lemonldap-ng/doc/debian-packages-install.html rename to build/lemonldap-ng/doc/3.3-Install-from-debian-packages.html index 451a330a9..819c8eded 100644 --- a/build/lemonldap-ng/doc/debian-packages-install.html +++ b/build/lemonldap-ng/doc/3.3-Install-from-debian-packages.html @@ -7,7 +7,8 @@ - Lemonldap::NG documentation: debian-packages-install.html + Lemonldap::NG documentation: + 3.3-Install-from-debian-packages.html + + + +
+

Use of MySQL for + sessions and/or configuration storage

+ +

+ + + +

MySQL + configuration

+ +

Remark: we advice + to create a specific user/password in MySQL for LemonLDAP::NG, with rights + on ist database. + +

Database + creation


+
+ For example, create the database "lemonldapng" :
+
+ +
+
+# mysqladmin create lemonldapng
+
+
+ +

Configuration + table


+
+ To store configuration, use this table creation instruction:
+
+ +
+
+CREATE TABLE lmConfig (
+     cfgNum int not null primary key,
+     locationRules text,
+     exportedHeaders text,
+     globalStorage text,
+     globalStorageOptions text,
+     macros text,
+     groups text,
+     portal text,
+     domain text,
+     ldapServer text,
+     ldapPort int,
+     ldapBase text,
+     securedCookie int,
+     cookieName text,
+     authentication text,
+     exportedVars text,
+     managerDn text,
+     managerPassword text,
+     whatToTrace text,
+     timeout int
+     );
+
+
+ +

Session + table

+ +

The choice of Apache::Session::* module is free. + See Apache::Session::Store::* or Apache::Session::* to know how to + configure the module. + +

If you want to use Apache::Session::MySQL, you + can create the database like this: + +

+ +
+
+CREATE TABLE sessions (
+    id char(32),
+    a_session text
+    );
+
+
+ +

LemonLDAP::NG configuration

+ +

Set configStorage for + LemonLDAP::NG modules

+ +

By default, configStorage use the "File" backend, + like: + +
+
+configStorage => {
+     type    => "File",
+     dirName => "/etc/lemonldap-ng/conf/",
+  },
+
+
+ +

You have to replace it with MySQL parameters, for + example: + +
+
+configStorage => {
+      type        => "DBI",
+      dbiChain    => "dbi:mysql:...",
+      dbiUser     => "lemonldap",
+      dbiPassword => "password",
+      dbiTable    => "lmConfig",
+  },
+
+
+ +

Set + Apache::Session backend

+ +

Go to the Manager and go in General Parameters > Session Storage. Then change + Apache::Session module to + "Apache::Session::MySQL" and in Apache::Session + parameters configure the following options: + + You can also set the session module in perl scripts: + +
+
+globalStorage  => "Apache::Session::MySQL",
+  globalStorageOptions => {
+      DataSource       => "dbi:mysql:database=lemonldapng;host=127.0.0.1",
+      UserName         => "db_user",
+      Password         => "db_password",
+      TableName        => "sessions",
+      LockDataSource   => "dbi:mysql:database=lemonldapng;host=127.0.0.1",
+      LockUserName     => "db_user",
+      LockPassword     => "db_password",
+  },
+
+
+
+ + + + diff --git a/build/lemonldap-ng/doc/install-fr.html b/build/lemonldap-ng/doc/3.5-Install-of-example-fr.html similarity index 53% rename from build/lemonldap-ng/doc/install-fr.html rename to build/lemonldap-ng/doc/3.5-Install-of-example-fr.html index 8e6149bb5..90a0c6f5a 100644 --- a/build/lemonldap-ng/doc/install-fr.html +++ b/build/lemonldap-ng/doc/3.5-Install-of-example-fr.html @@ -7,7 +7,7 @@ - Lemonldap::NG documentation: install-fr.html + Lemonldap::NG documentation: 3.5-Install-of-example-fr.html + + + +
+

Configuration + overview

+ +

+ + Connect to the manager with your browser (for example http://manager.example.com) to + start configure your WebSSO. + +

You have to set at least some parameters: + +

General + parameters

+ + + +

User groups

+ +

Use the "New Group" button to add your first + group. On the left, set the keyword which will be used later and set on + the right the corresponding rule. You can use : + + or + + + +

Virtual hosts

+ +

You have to create a virtual host for each Apache + host (virtual or real) protected by Lemonldap::NG even if just a + sub-directory is protected. Else, user who want to access to the protected + area will be rejected with a "500 Internal Server Error" message and the + apache logs will explain the problem. + +

Each virtual host has 2 groups of parameters: + + +
+ + + + diff --git a/build/lemonldap-ng/doc/4.1-Configuration-parameter-list.html b/build/lemonldap-ng/doc/4.1-Configuration-parameter-list.html new file mode 100644 index 000000000..a11f1f5a9 --- /dev/null +++ b/build/lemonldap-ng/doc/4.1-Configuration-parameter-list.html @@ -0,0 +1,243 @@ + + + + + + + + Lemonldap::NG documentation: + 4.1-Configuration-parameter-list.html + + + + + +
+

Parameter list

+ +

+ + Documentation applicable for LemonLDAP::NG + >= 1.0 + +

Configuration

+ + + +

General + Parameters

+ + + +

Virtual hosts

+ + + +

Applications

+ + +
+ + + + diff --git a/build/lemonldap-ng/doc/4.1-Configure-portal-menu.html b/build/lemonldap-ng/doc/4.1-Configure-portal-menu.html new file mode 100644 index 000000000..9aefb3919 --- /dev/null +++ b/build/lemonldap-ng/doc/4.1-Configure-portal-menu.html @@ -0,0 +1,283 @@ + + + + + + + + Lemonldap::NG documentation: 4.1-Configure-portal-menu.html + + + + + +
+

Enhanced menu

+ +

+ + Documentation applicable for LemonLDAP::NG + >= 0.9.3 + +

Presentation

+ +

Menu is a new Portal module providing these + functionalities: + + + +

Activate + the menu in the portal

+ +

With a 0.9.3 fresh installation, the default + portal/index.pl enables the menu. For the others, add this to the perl + code: + +

+ +
+
+if ( $portal->process() ) {

# HTML::Template object creation + my $template = HTML::Template->new( + filename => "$skin_dir/$skin/menu.tpl", + die_on_bad_params => 0, + cache => 0, + filter => sub { $portal->translate_template(@_) } + );

# Menu creation + use Lemonldap::NG::Portal::Menu; + my $menu = Lemonldap::NG::Portal::Menu->new( + { + portalObject => $portal, + apps => { + xmlfile => "$appsxmlfile", + imgpath => "$appsimgpath", + }, + modules => { + appslist => 1, + password => 1, + logout => 1, + }, + # CUSTOM FUNCTION : if you want to create customFunctions in rules, declare them here + #customFunctions => 'function1 function2', + } + );

$template->param( AUTH_ERROR => $menu->error ); + $template->param( AUTH_ERROR_TYPE => $menu->error_type ); + $template->param( DISPLAY_APPSLIST => $menu->displayModule("appslist") ); + $template->param( DISPLAY_PASSWORD => $menu->displayModule("password") ); + $template->param( DISPLAY_LOGOUT => $menu->displayModule("logout") ); + $template->param( DISPLAY_TAB => $menu->displayTab ); + $template->param( LOGOUT_URL => "$ENV{SCRIPT_NAME}?logout=1" ); + if ( $menu->displayModule("appslist") ) { + $template->param( APPSLIST_MENU => $menu->appslistMenu ); + $template->param( APPSLIST_DESC => $menu->appslistDescription ); + }

print $portal->header('text/html; charset=utf8'); + print $template->output; +} +
+
+ +

XML applications + list

+ +

DTD

+ +

The XML applications list must respect this DTD: + +

+ +
+
+<!ELEMENT menu (category*) >

<!ELEMENT category (application*, category*) > +<!ATTLIST category name CDATA #REQUIRED >

<!ELEMENT application (name, uri?, description?, logo?, screenshot?, display?) > +<!ATTLIST application id ID #REQUIRED >

<!ELEMENT name ( #PCDATA ) > +<!ELEMENT uri ( #PCDATA ) > +<!ELEMENT description ( #PCDATA ) > +<!ELEMENT logo ( #PCDATA ) > +<!ELEMENT screenshot ( #PCDATA ) > +<!ELEMENT display ( #PCDATA ) > +
+
+ +

Parameters + definition

+ + The menu must contains at least one category. Each category can + contain applications and categories. An application cannot contain a + category. An application must be inside a category. + +

Sample XML + file

+ +

Now you can configure your applications list, in + /etc/lemonldap-ng/apps-list.xml. For example: + +

+ +
+
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE menu SYSTEM "apps-list.dtd">
+<menu>
+    <category name="Business">
+        <application id="aaa">
+                <name>AAA</name>
+                <uri>http://test.ow2.org/aaa</uri>
+                <description>AAA description</description>
+                <logo>aaa-logo.gif</logo>
+                <display>auto</display>
+        </application>
+        <application id="bbb">
+                <name>BBB</name>
+                <uri>http://test.ow2.org/bbb/login.do</uri>
+                <description>BBB description</description>
+                <logo>bbb-logo.gif</logo>
+                <display>on</display>
+        </application>
+   </category>
+   <category name="Technical">
+     <category name="Directories">
+        <application id="pla">
+                <name>phpLDAPAdmin</name>
+                <uri>http://phpldapadmin.ow2.org</uri>
+                <description>LDAP directory administration</description>
+                <logo>pla-logo.gif</logo>
+                <display>auto</display>
+        </application>
+     </category>
+     <category name="Application servers">
+        <application id="probe">
+                <name>Probe</name>
+                <uri>http://probe.ow2.org</uri>
+                <description>Tomcat stats</description>
+                <logo>probe-logo.gif</logo>
+                <display>auto</display>
+        </application>
+     </category>
+   </category>
+</menu>
+
+
+
+ + + + diff --git a/build/lemonldap-ng/doc/4.1-HTML-templates-customization.html b/build/lemonldap-ng/doc/4.1-HTML-templates-customization.html new file mode 100644 index 000000000..ac002d4d5 --- /dev/null +++ b/build/lemonldap-ng/doc/4.1-HTML-templates-customization.html @@ -0,0 +1,275 @@ + + + + + + + + Lemonldap::NG documentation: + 4.1-HTML-templates-customization.html + + + + + +
+

Portal HTML + templates design

+ +

+ + Documentation applicable for LemonLDAP::NG + >= 0.9.3 + +

LemonLDAP::NG skins + and HTML::Template Perl module

+ +

LemonLDAP::NG templates are designed for + HTML::Templates + Perl module. + +

LemonLDAP::NG portal use "skins", located in the + skins/ directory of the portal. Each skin is a particular directory, for + example skins/default/ for the default skin. + +

Here is the list of required template files: + + Each template include a CSS file, named "styles.css". + +

To create your own skin, just copy the default + skin to another directory (eg.: skins/myskin/) and edit templates and CSS + files. Advanced customization can be done by editing the portal/index.pl. + +

Templates variables + provided by portal/index.pl

+ +

When you edit/create a template file, you can use + some variables provided by the portal script. Of course, you can add + variables by editing the portal/index.pl. + +

Common + variables

+ + + +

login.tpl + specific variables

+ + + +

menu.tpl + specific variables

+ + + +

Template + structure

+ +

The default LemonLDAP::NG template follow this + structure: + + + +

Internationalization (i18n)

+ +

LemonLDAP::NG portal is able to display an HTML + template according to the user's browser language. + +

In order to work, you have to set inside the + template the translations of all displayed text. Error message translation + is already done inside LemonLDAP::NG Portal module. + +

Example + of mono-lingual template

+ +

+ +
+
+<p><label>Login</label>
+<input name="user" type="text" size="30" />
+</p>
+
+
+ +

The string "Login" is set in the template and + will not be translated. + +

Example of multi-lingual + template

+ +

+ +
+
+<p><label><lang en="Login" fr="Identifiant" /></label>
+<input name="user" type="text" size="30" />
+</p>
+
+
+ +

The markup <lang> will be catched by + LemonLDAP::NG and only the wanted translation will be displayed. If the + user's language has no corresponding translation, the first translation is + selected. So you can set your default language by choosing the first + translation ("en" in the above example). + +

Warning: don't + forget the quotes and the trailing slash of the markup! +
+ + + + diff --git a/build/lemonldap-ng/doc/4.1-RBAC-model.html b/build/lemonldap-ng/doc/4.1-RBAC-model.html new file mode 100644 index 000000000..19454ad04 --- /dev/null +++ b/build/lemonldap-ng/doc/4.1-RBAC-model.html @@ -0,0 +1,226 @@ + + + + + + + + Lemonldap::NG documentation: 4.1-RBAC-model.html + + + + + +
+

RBAC model

+ +

+ + + +

Presentation

+ +

RBAC stands for Role Based Access Control. It + means that you manage authorizations to access applications by checking + the role(s) of the user, and provide this role to the application. + +

More informations on http://en.wikipedia.org/wiki/Role-based_access_control + +

LemonLDAP::NG allows to use this model. + +

Roles as simple values of a user + attribute


+
+ Imagine you've set your directory schema to store roles as values of + ssoRoles, an attribute of the user. This is simple because you can send + the role to the application by creating a HTTP header (for example + Auth-Role) with the concatened values (';' is the concatenation + string):
+
+ +
+
+Auth-Roles => $ssoRoles
+
+

+
+ If the user has these values inside its entry:
+
+ +
+
+ssoRoles: user
+ssoRoles: admin
+
+

+
+ Then you got this value inside the Auth-Roles header:
+
+ +
+
+user; admin
+
+
+ +

Roles as + entries in the directory


+
+ Now imagine the following DIT:
+
+ DIA_DIT_Roles.png
+
+ Roles are entries, below branchs representing applications. Each user has + a ssoRoles attributes, which values are the DN of the corresponding roles. + With this oragnization, you can set roles to user within specific + application.
+
+ In the schema above, the user has the following values:
+
+ +
+
+ssoRoles: ou=admin,ou=aaa,ou=roles,dc=acme,dc=com
+ssoRoles: ou=user,ou=bbb,ou=roles,dc=acme,dc=com
+
+
+ +

So he is "user" on application "BBB" and "admin" + on application "AAA". + +

Now we have to send to right role to the right + application trough LemonLDAP::NG. + +

First step: create a rule to grant access only if + the user has a role in the application: + + + +
+
+default => $ssoRoles =~ /ou=aaa,ou=roles/
+
+
+ + + +
+
+default => $ssoRoles =~ /ou=bbb,ou=roles/
+
+

+
+ Second step: get the role name for the application. We will use the macros + to do that. Create two macros (inside General Parameters > Macros): + + + +
+
+aaaRole => ((grep{/ou=aaa/} split(';',$ssoRoles))[0] =~ /ou=(.*),ou=aaa/)[0]
+
+
+ + + +
+
+bbbRole => ((grep{/ou=bbb/} split(';',$ssoRoles))[0] =~ /ou=(.*),ou=bbb/)[0]
+
+

+
+ These regular expressions read the 'ou' value of the DN of the role of the + concerned application. This work if the user has only one role per + application.
+
+ Third step: provide the role to the application. It is done by creating + the correct HTTP header: + + + +
+
+Auth-Roles => $aaaRoles
+
+
+ + + +
+
+Auth-Roles => $bbbRoles
+
+

+
+ Now the protected application can read in the header HTTP_AUTH_ROLES the + role of the user. +
+ + + + diff --git a/build/lemonldap-ng/doc/4.2-Configure-LDAP-schema.html b/build/lemonldap-ng/doc/4.2-Configure-LDAP-schema.html new file mode 100644 index 000000000..77659078d --- /dev/null +++ b/build/lemonldap-ng/doc/4.2-Configure-LDAP-schema.html @@ -0,0 +1,206 @@ + + + + + + + + Lemonldap::NG documentation: 4.2-Configure-LDAP-schema.html + + + + + +
+

LDAP + Schema for advanced access rules

+ +

+ + + +

Topic

+ +

LemonLDAP::NG is powerfull WebSSO engine who + manage access trough user's attributes stored in an LDAP directory. + +

We can use standards attributes like uid, cn or + mail to describe access rules to protected web applications. + +

But sometimes we need more information! For + example: + + + +

LDAP Schema

+ +

OID prefix

+ +

We plan to use this prefix: + 1.3.6.1.4.1.10943.10.2. + +

The prefix 1.3.6.1.4.1.10943 is owned by LINAGORA + (See http://www.iana.org/assignments/enterprise-numbers). + +

OpenLDAP + schema

+ +

Just add this file to OpenLDAP schemas: + +

+ +
+
+#=======================================
+# Schema for advanced SSO access rules
+#
+# Designed for OpenLDAP software
+#   http://www.openldap.org
+#
+# Part of LemonLDAP::NG project
+#   http://lemonldap.ow2.org
+#
+# Author: Clement OUDOT
+#=======================================

#======================================= +# OID Prefix +# Registered in IANA database +#======================================= +objectIdentifier SSOOID 1.3.6.1.4.1.10943.10.2

#======================================= +# Attributes +#=======================================

# Application Name +attributetype ( SSOOID:1:1 + NAME 'ssoName' + DESC 'An application name' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# Roles +attributetype ( SSOOID:1:2 + NAME 'ssoRoles' + DESC 'One or more roles' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# Time profile +attributetype ( SSOOID:1:3 + NAME 'ssoLogonsHours' + DESC 'Logons hours' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# Start date +attributetype ( SSOOID:1:4 + NAME 'ssoStartDate' + DESC 'Start date' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# End date +attributetype ( SSOOID:1:5 + NAME 'ssoEndDate' + DESC 'End date' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

#======================================= +# ObjectClasses +#=======================================

# SSO user +objectClass ( SSOOID:2:1 + NAME 'ssoUser' + DESC 'SSO extended informations for a user' + SUP top + AUXILIARY + MAY ( ssoName $ ssoRoles $ ssoLogonHours $ + ssoStartDate $ ssoEndDate ) ) +
+
+ +

How to use + it in LemonLDAP::NG

+ +

In LemonLDAP::NG Manager, go to General + Parameters > Exported Variables and add new variables: + + Save and reload Apache and Handler to get the configuration updated. +
+ + + + diff --git a/build/lemonldap-ng/doc/password-policy.html b/build/lemonldap-ng/doc/4.2-Configure-password-policy.html similarity index 80% rename from build/lemonldap-ng/doc/password-policy.html rename to build/lemonldap-ng/doc/4.2-Configure-password-policy.html index 8e6885513..2edf44055 100644 --- a/build/lemonldap-ng/doc/password-policy.html +++ b/build/lemonldap-ng/doc/4.2-Configure-password-policy.html @@ -7,7 +7,8 @@ - Lemonldap::NG documentation: password-policy.html + Lemonldap::NG documentation: + 4.2-Configure-password-policy.html + + + +
+

Roadmap for + LemonLDAP::NG

+ +

+ + Icons legend:
+ ok.png Task finished
+ warning_triangle.png Work in + progress
+ error.png To be done
+ +

Version 0.9 + (2008)

ok.png Liberty Alliance + authentication module (learn more)
+ ok.png Skins for Manager and Portal
+ ok.png SOAP access to configuration and + sessions (learn more)
+ +

Version 0.9.3 (end 2008/begin + 2009)

ok.png Dissociate + authentication and user backend capabilities (for example, to choose LDAP + for authentication, and MySQL for reading user's information)
+ ok.png Add a Menu.pm to portal modules, to + provide an enhanced application menu and password modification form + (learn + more)
+ ok.png i18n (internationalization) for modules, + scripts and HTML templates (learn more)
+ ok.png Sessions explorer
+ ok.png Accounting and authentication in + manager
+ ok.png Shared functions for macros, groups, + access rules and headers.
+ warning_triangle.png Production + installation script
+ +

Version 1.0 + (2009)

+ Packages for Debian/Ubuntu, RedHat/CentOS
+ warning_triangle.png Date and + time parameters in access rules
+ warning_triangle.png Monitoring + scripts (MRTG, Cacti, Nagios)
+ error.png Handler POST functionnalities, to + fill authentication forms with login/password
+ error.png Portal and Manager trigger system, + to execute code on specified action (apply, save, etc.)
+ error.png Configuration update, to manage + all new parameters (learn more)
+ error.png Configuration migration + scripts
+ error.png Change configuration storage to + XML
+ +

Version 2.0 + (2010)

error.png Rewrite Manager + with JQuery and Ajax
+ error.png Manage Apache virtualhost + configuration through LDAP backend
+ error.png SAML2 authentication and user + backend
+ error.png SNMP extensions for + monitoring
+ error.png Local password policy
+ error.png Notification system
+ error.png LQL parser (LDAP Query + Language)
+ error.png Shared "grant" function
+
+ + + + diff --git a/build/lemonldap-ng/doc/advanced-access-rules.html b/build/lemonldap-ng/doc/advanced-access-rules.html deleted file mode 100644 index bcb35e5d1..000000000 --- a/build/lemonldap-ng/doc/advanced-access-rules.html +++ /dev/null @@ -1,420 +0,0 @@ - - - - - - - - Lemonldap::NG documentation: advanced-access-rules.html - - - - - -
-

LDAP - Schema for advanced access rules

- -

- - - -

Topic

- -

LemonLDAP::NG is powerfull WebSSO engine who - manage access trough user's attributes stored in an LDAP directory. - -

We can use standards attributes like uid, cn or - mail to describe access rules to protected web applications. - -

But sometimes we need more information! For - example: - - - -

LDAP Schema

- -

OID prefix

- -

We plan to use this prefix: - 1.3.6.1.4.1.10943.10.2. - -

The prefix 1.3.6.1.4.1.10943 is owned by LINAGORA - (See http://www.iana.org/assignments/enterprise-numbers). - -

OpenLDAP - schema

- -

Just add this file to OpenLDAP schemas: - -

- -
-
-#=======================================
-# Schema for advanced SSO access rules
-#
-# Designed for OpenLDAP software
-#   http://www.openldap.org
-#
-# Part of LemonLDAP::NG project
-#   http://lemonldap.ow2.org
-#
-# Author: Clement OUDOT
-#=======================================

#======================================= -# OID Prefix -# Registered in IANA database -#======================================= -objectIdentifier SSOOID 1.3.6.1.4.1.10943.10.2

#======================================= -# Attributes -#=======================================

# Application Name -attributetype ( SSOOID:1:1 - NAME 'ssoName' - DESC 'An application name' - EQUALITY caseIgnoreMatch - SUBSTR caseIgnoreSubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# Roles -attributetype ( SSOOID:1:2 - NAME 'ssoRoles' - DESC 'One or more roles' - EQUALITY caseIgnoreMatch - SUBSTR caseIgnoreSubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# Time profile -attributetype ( SSOOID:1:3 - NAME 'ssoTimeProfile' - DESC 'A time profile' - EQUALITY caseIgnoreMatch - SUBSTR caseIgnoreSubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# Start date -attributetype ( SSOOID:1:4 - NAME 'ssoStartDate' - DESC 'Start date' - EQUALITY caseIgnoreMatch - SUBSTR caseIgnoreSubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# End date -attributetype ( SSOOID:1:5 - NAME 'ssoEndDate' - DESC 'End date' - EQUALITY caseIgnoreMatch - SUBSTR caseIgnoreSubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

#======================================= -# ObjectClasses -#=======================================

# SSO user -objectClass ( SSOOID:2:1 - NAME 'ssoUser' - DESC 'SSO extended informations for a user' - SUP top - AUXILIARY - MAY ( ssoName $ ssoRoles $ ssoTimeProfile $ - ssoStartDate $ ssoEndDate ) ) -
-
- -

How to use - it in LemonLDAP::NG

- -

Specify new attributes in - exported variables

- -

In LemonLDAP::NG Manager, go to General - Parameters > Exported Variables and add new variables: - - Save and reload Apache and Handler to get the configuration updated. - -

Habilitation based on an - application name


-
- If a user has got the ssoName attribute, with each value being the name of - a protected application, you can configure the rules of virtualhosts by - checking the application name.
-
- Go in LemonLDAP::NG Manager, choose your virtualhost (for example - test.acme.com), and set the default rule to accept users if they have - "acme" has one of the value of their attribute "ssoName":
-
- -
-
-default => $ssoName =~ /\bacme\b/
-
-

-
- Save and reload.
-
- Now you can decide who access this application just by adding or removing - a value inside the entry of the users. - -

Habilitation based on a date


-
- If the user has got ssoStartDate and/or ssoEndDate, you can configure - rules to compare the current date to the start/end dates. - -

Habilitation based on a - period


-
- If the user has got ssoTimeProfile, you can configure rules to compare the - current time and compare it to the time profile. - -

Send a role to a protected - application

- -
Roles as simple values of a user - attribute

-
- Imagine you've set your directory schema to store roles as values of - ssoRoles, an attribute of the user. This is simple because you can send - the role to the application by creating a HTTP header (for example - Auth-Role) with the concatened values (';' is the concatenation - string):
-
- -
-
-Auth-Roles => $ssoRoles
-
-

-
- If the user has these values inside its entry:
-
- -
-
-ssoRoles: user
-ssoRoles: admin
-
-

-
- Then you got this value inside the Auth-Roles header:
-
- -
-
-user;admin
-
-
- -
Roles - as entries in the directory

-
- Now imagine the following DIT:
-
- DIA_DIT_Roles.png
-
- Roles are entries, below branchs representing applications. Each user has - a ssoRoles attributes, which values are the DN of the corresponding roles. - With this oragnization, you can set roles to user within specific - application.
-
- In the schema above, the user has the following values:
-
- -
-
-ssoRoles: ou=admin,ou=aaa,ou=roles,dc=acme,dc=com
-ssoRoles: ou=user,ou=bbb,ou=roles,dc=acme,dc=com
-
-
- -

So he is "user" on application "BBB" and "admin" - on application "AAA". - -

Now we have to send to right role to the right - application trough LemonLDAP::NG. - -

First step: create a rule to grant access only if - the user has a role in the application: - - - -
-
-default => $ssoRoles =~ /ou=aaa,ou=roles/
-
-
- - - -
-
-default => $ssoRoles =~ /ou=bbb,ou=roles/
-
-

-
- Second step: get the role name for the application. We will use the macros - to do that. Create two macros (inside General Parameters > Macros): - - - -
-
-aaaRole => ((grep{/ou=aaa/} split(';',$ssoRoles))[0] =~ /ou=(.*),ou=aaa/)[0]
-
-
- - - -
-
-bbbRole => ((grep{/ou=bbb/} split(';',$ssoRoles))[0] =~ /ou=(.*),ou=bbb/)[0]
-
-

-
- These regular expressions read the 'ou' value of the DN of the role of the - concerned application. This work if the user has only one role per - application.
-
- Third step: provide the role to the application. It is done by creating - the correct HTTP header: - - - -
-
-Auth-Roles => $aaaRoles
-
-
- - - -
-
-Auth-Roles => $bbbRoles
-
-

-
- Now the protected application can read in the header HTTP_AUTH_ROLES the - role of the user. -
- - - - diff --git a/build/lemonldap-ng/doc/advanced-install.html b/build/lemonldap-ng/doc/advanced-install.html deleted file mode 100644 index 4f743b0c1..000000000 --- a/build/lemonldap-ng/doc/advanced-install.html +++ /dev/null @@ -1,417 +0,0 @@ - - - - - - - - Lemonldap::NG documentation: advanced-install.html - - - - - -
-

ADVANCED - INSTALLATION

- -

Warning: This - document is written for people who know Lemonldap::NG. For other people, - it is recommended to build the example provided in the source and next to adapt - it to local installation. - -

- - - -

PREREQ

- -

Apache

- -

To use Lemonldap::NG, you have to run a LDAP - server and of course an Apache server compiled with mod-perl (version 1.3 - or 2.x). Generaly, the version of Apache proposed with your Linux - distribution match, but some distributions used an experimental version of - mod_perl with Apache2 (mod_perl-1.99) which does not work with - Lemonldap::NG. With such distributions (like Debian-3.1), you have to use - Apache-1.3 or to use a mod_perl backport (www.backports.org package for - Debian works fine). - -

For Apache2, you can use both mpm-worker and - mpm-prefork. Mpm-worker works faster and Lemonldap::NG use the thread - system for best performance. If you have to use mpm-prefork (for example - if you use PHP), Lemonldap::NG will work anyway. - -

You can use Lemonldap::NG in an heterogene world: - the authentication portal and the manager can work in any version of - Apache 1.3 or more even if mod_perl is not compiled, with - ModPerl::Registry or not… Only the handler (site protector) need - mod_perl. The different handlers can run on different servers with - different versions of Apache/mod_perl. - -

Perl prereq

- -

Perl modules: Apache::Session, Net::LDAP, - MIME::Base64, CGI, LWP::UserAgent, Cache::Cache, DBI, XML::Simple - -

With Debian: - -

- -
-
-apt-get install libapache-session-perl libnet-ldap-perl libcache-cache-perl \
-                  libdbi-perl perl-modules libwww-perl libcache-cache-perl \
-                  libxml-simple-perl
-
-
- -

Portal: - -

Apache::Session, Net::LDAP, MIME::Base64, CGI, - DBI - -

With Debian: - -

- -
-
-apt-get install libapache-session-perl libnet-ldap-perl libdbi-perl \
-                  perl-modules
-
-
- -

Handler: - -

Apache::Session, LWP::UserAgent, Cache::Cache, - DBI - -

With Debian: - -

- -
-
-apt-get install libapache-session-perl libdbi-perl libwww-perl \
-                  libcache-cache-perl
-
-

-
- Manager:
-
- CGI, XML::Simple, DBI
-
- With Debian:
-
- -
-
-apt-get install perl-modules libxml-simple-perl
-
-
- -

SOFTWARE - INSTALLATION


-
- If you just want to install a handler or a portal or a manager:
-
- -
-
-$ tar xzf lemonldap-ng-*.tar.gz
-  $ cd lemonldap-ng-*/Lemonldap-NG-(Portal|Handler|Manager)
-  $ perl Makefile.PL && make && make test
-  $ sudo make install
-
-
- -

else for a complete install: - -

- -
-
-$ tar xzf lemonldap-ng-*.tar.gz
-  $ cd lemonldap-ng-*
-  $ make && make test
-  $ sudo make install
-
-
- -

See prereq in - -

LEMONLDAP - INSTALLATION

- -

Database - configuration

If you use DBI or another system to share - Lemonldap::NG configuration, you have to initialize the database.
-
- For example, create the database "lemonldapng" :
-
- -
-
-# mysqladmin create lemonldapng
-
-
- -
Lemonldap::NG Configuration - database

-
- To store configuration, use this table :
-
- -
-
-CREATE TABLE lmConfig (
-     cfgNum int not null primary key,
-     locationRules text,
-     exportedHeaders text,
-     globalStorage text,
-     globalStorageOptions text,
-     macros text,
-     groups text,
-     portal text,
-     domain text,
-     ldapServer text,
-     ldapPort int,
-     ldapBase text,
-     securedCookie int,
-     cookieName text,
-     authentication text,
-     exportedVars text,
-     managerDn text,
-     managerPassword text,
-     whatToTrace text,
-     timeout int
-     );
-
-
- -
Apache::Session database
- -

The choice of Apache::Session::* module is free. - See Apache::Session::Store::* or Apache::Session::* to know how to - configure the module. For example, if you want to use - Apache::Session::MySQL, you can create the database like this: - -

- -
-
-CREATE TABLE sessions (
-    id char(32),
-    a_session text
-    );
-
-
- -

Manager - configuration

- -

Copy example/manager.cgi and personalize it if - you want (see Lemonldap::NG::Manager). You have to set in particular - configStorage. For example with MySQL: - -

- -
-
-$my $manager = Lemonldap::NG::Manager->new ( {
-                        dbiChain   => "DBI:mysql:database=mybase;host=1.2.3.4",
-                        dbiUser    => "lemonldap-ng",
-                        dbiPasword => "mypass",
-                 } );
-
-
- -

Securise Manager access with Apache: Lemonldap - does not securise the manager itself yet: - -

- -
-
-SSLEngine On
-  Order Deny, Allow
-  Deny from all
-  Allow from admin/network
-  AuthType Basic
-  ...
-
-
- -

Configuration - edition

- -

Connect to the manager with your browser start - configure your Web-SSO. You have to set at least some parameters: - -
General - parameters
- - - -
User groups
- -

Use the "New Group" button to add your first - group. On the left, set the keyword which will be used later and set on - the right the corresponding rule. You can use : - - or - - - -
Virtual - hosts
- -

You have to create a virtual host for each Apache - host (virtual or real) protected by Lemonldap::NG even if just a - sub-directory is protected. Else, user who want to access to the protected - area will be rejected with a "500 Internal Server Error" message and the - apache logs will explain the problem. - -

Each virtual host has 2 groups of parameters: - - -
- - - - diff --git a/build/lemonldap-ng/doc/dokuwiki_logo.png b/build/lemonldap-ng/doc/dokuwiki_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c0efbebf0535c69df4f7f8ba721329e9dab7e99a GIT binary patch literal 13657 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 literal 0 HcmV?d00001 diff --git a/build/lemonldap-ng/doc/grr_logo.png b/build/lemonldap-ng/doc/grr_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..15922cda90209db0f7d67ab5178ccbaf52242eca GIT binary patch literal 8072 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 WU!O{wsTidI0000

LemonLDAP::NG documentation

diff --git a/build/lemonldap-ng/doc/ok.png b/build/lemonldap-ng/doc/ok.png new file mode 100644 index 0000000000000000000000000000000000000000..8477d6d77a21c6f5dc2517951297fc64ece9028d GIT binary patch literal 1164 zcmV;71atd|P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iOS# z4GtM~B`50u00az4L_t(I%XO4FY+OYg#(y*K++EwdUfXe;iyU0J3J?i_f*L7cLK2Wj zMQ0&|1PLIZpg{-;2tjl%sE}MlIG1okC?Ww8N>UM!5r>7H7$33s-nZ|~dox23#}E_# z<>>$Y<{OQ^PjHtxHX8cCun-*fbL@9Lu?dh_YUfmktJZQ3_;PF{?yS{{H6Vaz{E(C7 z^>W9Cp@33%K;SwE0cmEaw-q;LW0vOh4Ha_&I6XEJ{}*^{G;|PrSY9VyyZ8RQ*jO$Q zc+TA(KxQm+)riT-maQz9&#;^r8;Lc5^Dk$g4sMaJ?%vfSw)A)5Iud|Hd32JHIPp=b zi?IUFwUqK6ef_>@DRrRLu!X%(xnE!VD#Km5^!eUF@ygb11%^s_0JL^!v`ZKrBE&7H z)*9j@rQS-&g%QO(?A=*JCAH&~dGjrBUK|?@LqFu#9eaY!>xw-L^!TVWAdY)+L=IO5 z$Q7Wm8f_J+Nl0~sbXxQm6Q&j#{CKrJrDArvz|qn=x!H3AI*HFhwVS}{B5(@$PJRXG zApmVNGLs;2DQCOb;6BQ9?KFeMpC}K;+vlhCuqyf)B(10=e} zUtA(^yU|LsEj+}g;=a|LMm)#F^vgt60TR~}8zn%jGO(6kqH%s(ytpd3um4H<%){u| z@<8r|J79~=NhYqpL{rXSEo9mP2-j$4wK3Zwr3mwe?<()p9j<46&t3p_4;&>@RSH4h zDr~y?JwH@WqMRBwGgu798nTpmnZ{gp5G*wtXq#c&gi8zWQjc!jijt6bz$O>ZbER<# zEhDr|(Kf}{j8>GQI`)dRmNQvf5G4sq%_^Bmh~+Zh%)UcM)mA~)8m`Qa@^kzJ868p+ zlbHl<6de__yr{62vl2KL*O-z5=Ia%fTg#-TL(`e&;-7Dmq%ATXbLskfOz8=fX_4qQ zsg6i>hqh`nUv1E-F$0W?l`IeE%batIMp$5=r_9FE5WW+VV*tnTNT}XQib=_ALaI9~ zH7hJMs-#t6qYBTBjl|=(vwR_{@KKj5-xLMI%|?Y<)TFv8j=x~i*t zy63s;ok2d*sJp9f)jjvCbM86!Q6r?3yeeB4t^c#yA&WMi&%V1 zJR!ay9v6FWrYd5$y0Cas{01t|;9yeXDQvzVKPJz;;(F{>fB@o2F~%_WQURuMDDn&z zpO+8GAHQNc>}r5diMt5%BZd)#fMs9`SmIkad`^B`{?`rHVK)N=5KoGy>Ei?R;P&VO zC;~47i=4vYbIkLM{ET#NNd3DW;FrW8Ar(eG1i*h31~%vEV}K-ectMB& zRbUdBVhPFL5aO?7M$T-j?%fVhJSh@{`4Ae9(nTK~tOh8WE;4~>V3INxPXb?*56Meg zs(&{F6kiqZ10E+yiWrUk-+B-MY+R7nurc{(LVR9+RQ_aBI_yS(;%njn4x>c4pEz}J zt>6W}w-X1~wI=|JL-JuczENFv-B3>at9XbIKPS%p=(U5g_UANxHXmyz^}h1Qn}G)q z-b~?}DdIaK%o6`VnBO6c+h`Ar68Q8Ss@=I(t_+X^;OWikwJQLMuZb8j{snjdL8Emw z18P3j>RdC#5>UWI%w2|`Q4);pTGtbwzqT`MQD84P; zfW_miaD6PUUHN$c{%NaY`z@7n2R%s+sMu2c)?==7mx}h z+LT{}TNb;|XEW*hftP^skf&cb`9klyG>dliR0~oQ^KIpuF;Vc*F9ZmU;>Sx88n$zEqsE z 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 literal 0 HcmV?d00001 diff --git a/build/lemonldap-ng/doc/padlock_aj_ashton_01.png b/build/lemonldap-ng/doc/padlock_aj_ashton_01.png new file mode 100644 index 0000000000000000000000000000000000000000..9b18e871ac0ff8f53dfcbe8be1155b877a009712 GIT binary patch literal 6569 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 - - - - - - - Lemonldap::NG documentation: roadmap.html - - - - - -
-

Roadmap for - LemonLDAP::NG

- -

- - - -

Version 0.9 - (2008)

- -
    -
  • Liberty Alliance authentication module
  • - -
  • Skins for Manager and Portal
  • - -
  • SOAP access to configuration and sessions
  • -
- -

Version 1.0 (end - 2008)

- -
    -
  • Dissociate authentication and user backend capabilities (for - example, to choose LDAP for authentication, and MySQL for reading user's - information).
  • - -
  • Add a Menu.pm to portal modules, to provide an enhanced application - menu and password modification form
  • - -
  • i18n (internationalization) for modules, scripts and HTML - templates
  • - -
  • Production installation script
  • - -
  • Packages for Debian/Ubuntu, RedHat/CentOS
  • - -
  • Date and time parameters in access rules
  • - -
  • Monitoring scripts (MRTG, Cacti, Nagios)
  • - -
  • Sessions explorer
  • - -
  • Handler POST functionnalities, to fill authentication forms with - login/password
  • -
- -

Version 2.0 - (2010)

- -
    -
  • Manage Apache virtualhost configuration through LDAP backend
  • - -
  • SAML2 authentication and user backend
  • - -
  • SNMP extensions for monitoring
  • - -
  • Local password policy
  • -
-
- - - - diff --git a/build/lemonldap-ng/doc/tomcat_logo.png b/build/lemonldap-ng/doc/tomcat_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1d4d21326a1583b9af6518b6ac77e2c5c77abde7 GIT binary patch literal 9630 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 UFn1n;lK=n!07*qoM6N<$f@p(%%>V!Z literal 0 HcmV?d00001 diff --git a/build/lemonldap-ng/doc/tools_nicu_buculei_01.png b/build/lemonldap-ng/doc/tools_nicu_buculei_01.png new file mode 100644 index 0000000000000000000000000000000000000000..d3c3ec4161fe8d38ff5698d4117d3fd1670bfcc2 GIT binary patch literal 6400 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 literal 0 HcmV?d00001 diff --git a/build/lemonldap-ng/doc/warning_triangle.png b/build/lemonldap-ng/doc/warning_triangle.png new file mode 100644 index 0000000000000000000000000000000000000000..b1d01f45a825afc2dc481fa4c09781434b94d69f GIT binary patch literal 797 zcmV+&1LFLNP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOS$ z4Il^xC!yN_00Ny!L_t(I%bk>6Y>QzO$A9lf`?h`8R&{Lgv7sw5Gvcw42;E;V%vd4pS)}5?8672$RVbp+Z&D6XYHDlJxKW&`RpXp z5?r4W?ACf$`2GR?oBa_fUn1pGqG zz6lLzx5R${Z?008RMgu?%4#6_R--$1mbm){AA069qXHs=4ZzNS2CBNwq!evC8a zXbIfr46ZEQU4UVO5%4fF&|lbVs;gl1L(Li}na)W|P(E3Q$Hji4x(=krYQv)>d%HnO z?BUOapaxn1>Y4}u7af6?U}jl0rx!E;$)Z7b=gAKCGV~>erzBlWm{3^_cdl`Mj*B70H<|@UYQW$;JR#Zjdx+Tzl0WHDus?D^NMt|?_r(E(mxq;{S zg7)tT4}@mJqSdSfjshr_0K?Ct9oJ~^x}AZ!tifPRCp_2TgmW&~7-}~V0@_q>h%?pO$6#{2zrSZ1(dJ`RZra9( zT;qIiCM>Q8!{mT&hKVQ|FzoCtuZr`!<2<^54u01|XOjY|3cdhAz5fmOK6SEZRuIUJ z_j