Update doc (#1160)

This commit is contained in:
Xavier Guimard 2017-02-11 10:17:16 +00:00
parent 40b7535ff3
commit cf12d5aa4b
30 changed files with 895 additions and 292 deletions

View File

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav">
<li><a href="/documentation/2.0/applications/img/icons.png?do=login&amp;sectok=4b672ef72fa0a5a16fe79036bfaaaf52" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
<li><a href="/documentation/2.0/applications/img/icons.png?do=login&amp;sectok=6cc832d32ee620a66fe468f5fc8a13ab" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aicons.png&amp;1486506626" width="2" height="1" alt="" /></div>
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aicons.png&amp;1486807628" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no">
<span class="visible-xs"></span>
<span class="visible-sm"></span>

View File

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav">
<li><a href="/documentation/2.0/applications/img/loader.gif?do=login&amp;sectok=4b672ef72fa0a5a16fe79036bfaaaf52" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
<li><a href="/documentation/2.0/applications/img/loader.gif?do=login&amp;sectok=6cc832d32ee620a66fe468f5fc8a13ab" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aloader.gif&amp;1486506626" width="2" height="1" alt="" /></div>
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aloader.gif&amp;1486807628" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no">
<span class="visible-xs"></span>
<span class="visible-sm"></span>

View File

@ -64,6 +64,7 @@
</li>
<li class="level1"><div class="li"><a href="#known_problems">Known problems</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#federation_protocols">Federation protocols</a></div></li>
<li class="level2"><div class="li"><a href="#authapache_authentication">AuthApache authentication</a></div></li>
<li class="level2"><div class="li"><a href="#ssl_authentication">SSL authentication</a></div></li>
</ul></li>
@ -272,7 +273,29 @@ The following rule is valid:
</div>
<!-- EDIT11 SECTION "Known problems" [3611-3638] -->
<h3 class="sectionedit12" id="authapache_authentication">AuthApache authentication</h3>
<h3 class="sectionedit12" id="federation_protocols">Federation protocols</h3>
<div class="level3">
<p>
<a href="authsaml.html" class="wikilink1" title="documentation:2.0:authsaml">SAML</a>, <a href="authopenidconnect.html" class="wikilink1" title="documentation:2.0:authopenidconnect">OpenID-Connect</a>, <a href="authcas.html" class="wikilink1" title="documentation:2.0:authcas">CAS</a> or <a href="authopenid.html" class="wikilink1" title="documentation:2.0:authopenid">old OpenID</a> can&#039;t be chained with a “and” for authentication part. So “[<abbr title="Security Assertion Markup Language">SAML</abbr>] and [LDAP]” isn&#039;t valid. This is because their authentication kinematic don&#039;t use the same steps.
</p>
<div class="table sectionedit13"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0 centeralign"> Bad expression </th><th class="col1 centeralign"> Solution </th><th class="col2 centeralign"> Explanation </th>
</tr>
</thead>
<tr class="row1 rowodd">
<td class="col0"> <em><code>[<abbr title="Security Assertion Markup Language">SAML</abbr>] and [LDAP]</code></em> </td><td class="col1"> <code>[<abbr title="Security Assertion Markup Language">SAML</abbr>, <abbr title="Security Assertion Markup Language">SAML</abbr> and LDAP]</code> </td><td class="col2"> Authentication is done by <abbr title="Security Assertion Markup Language">SAML</abbr> only but user must match an LDAP entry </td>
</tr>
<tr class="row2 roweven">
<td class="col0"> <em><code>[<abbr title="Security Assertion Markup Language">SAML</abbr>] and [LDAP] or [LDAP]</code></em> </td><td class="col1"> <code>[<abbr title="Security Assertion Markup Language">SAML</abbr>, <abbr title="Security Assertion Markup Language">SAML</abbr> and LDAP] or [LDAP]</code> </td><td class="col2"> Authentication is done by <abbr title="Security Assertion Markup Language">SAML</abbr> or LDAP but user must match an LDAP entry </td>
</tr>
</table></div>
<!-- EDIT13 TABLE [3938-4270] -->
</div>
<!-- EDIT12 SECTION "Federation protocols" [3639-4271] -->
<h3 class="sectionedit14" id="authapache_authentication">AuthApache authentication</h3>
<div class="level3">
<p>
@ -288,8 +311,8 @@ To bypass this, follow the documentation of <a href="authapache.html" class="wik
</p>
</div>
<!-- EDIT12 SECTION "AuthApache authentication" [3639-4055] -->
<h3 class="sectionedit13" id="ssl_authentication">SSL authentication</h3>
<!-- EDIT14 SECTION "AuthApache authentication" [4272-4688] -->
<h3 class="sectionedit15" id="ssl_authentication">SSL authentication</h3>
<div class="level3">
<p>
@ -297,6 +320,6 @@ To chain SSL, you have to set “SSLRequire optional” in Apache configuration,
</p>
</div>
<!-- EDIT13 SECTION "SSL authentication" [4056-] --></div>
<!-- EDIT15 SECTION "SSL authentication" [4689-] --></div>
</body>
</html>

View File

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav">
<li><a href="/bootswatch/3.3.4/flatly/bootstrap.min.css?do=login&amp;sectok=4b672ef72fa0a5a16fe79036bfaaaf52" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
<li><a href="/bootswatch/3.3.4/flatly/bootstrap.min.css?do=login&amp;sectok=6cc832d32ee620a66fe468f5fc8a13ab" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=bootswatch%3A3.3.4%3Aflatly%3Abootstrap.min.css&amp;1486506627" width="2" height="1" alt="" /></div>
<div class="no"><img src="/lib/exe/indexer.php?id=bootswatch%3A3.3.4%3Aflatly%3Abootstrap.min.css&amp;1486807629" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no">
<span class="visible-xs"></span>
<span class="visible-sm"></span>

View File

@ -4,7 +4,7 @@
<meta charset="utf-8" />
<title>documentation:2.0:confignginx</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,confignginx"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="confignginx.html"/>
@ -49,10 +49,16 @@
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#files">Files</a></div>
<li class="level1"><div class="li"><a href="#fastcgi_server">FastCGI server</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#debianubuntu">Debian/Ubuntu</a></div></li>
<li class="level2"><div class="li"><a href="#red_hatcentos">Red Hat/CentOS</a></div></li>
</ul>
</li>
<li class="level1"><div class="li"><a href="#files">Files</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#debianubuntu1">Debian/Ubuntu</a></div></li>
<li class="level2"><div class="li"><a href="#red_hatcentos1">Red Hat/CentOS</a></div></li>
</ul></li>
</ul>
</div>
@ -64,7 +70,40 @@
</div>
<!-- EDIT1 SECTION "Deploy Nginx configuration" [1-42] -->
<h2 class="sectionedit2" id="files">Files</h2>
<h2 class="sectionedit2" id="fastcgi_server">FastCGI server</h2>
<div class="level2">
<p>
To use Nginx, you must install LemonLDAP::NG FastCGI server, which is not installed by default lemonldap-ng meta package.
</p>
</div>
<!-- EDIT2 SECTION "FastCGI server" [43-193] -->
<h3 class="sectionedit3" id="debianubuntu">Debian/Ubuntu</h3>
<div class="level3">
<pre class="code">apt install lemonldap-ng-fastcgi-server</pre>
<p>
Enable and start the service :
</p>
<pre class="code">systemctl enable llng-fastcgi-server
systemctl start llng-fastcgi-server</pre>
</div>
<!-- EDIT3 SECTION "Debian/Ubuntu" [194-394] -->
<h3 class="sectionedit4" id="red_hatcentos">Red Hat/CentOS</h3>
<div class="level3">
<pre class="code">yum install lemonldap-ng-fastcgi-server</pre>
<p>
Enable and start the service :
</p>
<pre class="code">systemctl enable llng-fastcgi-server
systemctl start llng-fastcgi-server</pre>
</div>
<!-- EDIT4 SECTION "Red Hat/CentOS" [395-596] -->
<h2 class="sectionedit5" id="files">Files</h2>
<div class="level2">
<p>
@ -76,8 +115,8 @@ You have to include them in Nginx main configuration.
</p>
</div>
<!-- EDIT2 SECTION "Files" [43-265] -->
<h3 class="sectionedit3" id="debianubuntu">Debian/Ubuntu</h3>
<!-- EDIT5 SECTION "Files" [597-819] -->
<h3 class="sectionedit6" id="debianubuntu1">Debian/Ubuntu</h3>
<div class="level3">
<p>
@ -97,8 +136,8 @@ ln -s /etc/nginx/sites-available/portal-nginx.conf /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/test-nginx.conf /etc/nginx/sites-enabled/</pre>
</div>
<!-- EDIT3 SECTION "Debian/Ubuntu" [266-1024] -->
<h3 class="sectionedit4" id="red_hatcentos">Red Hat/CentOS</h3>
<!-- EDIT6 SECTION "Debian/Ubuntu" [820-1578] -->
<h3 class="sectionedit7" id="red_hatcentos1">Red Hat/CentOS</h3>
<div class="level3">
<p>
@ -110,6 +149,6 @@ ln -s /etc/lemonldap-ng/portal-nginx.conf /etc/nginx/conf.d/
ln -s /etc/lemonldap-ng/test-nginx.conf /etc/nginx/conf.d/</pre>
</div>
<!-- EDIT4 SECTION "Red Hat/CentOS" [1025-] --></div>
<!-- EDIT7 SECTION "Red Hat/CentOS" [1579-] --></div>
</body>
</html>

View File

@ -4,7 +4,7 @@
<meta charset="utf-8" />
<title>documentation:2.0:customhandlers</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,customhandlers"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="customhandlers.html"/>
@ -43,30 +43,115 @@
</head>
<body>
<div class="dokuwiki export container">
<!-- TOC START -->
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#add_a_new_handler_type">Add a new handler type</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#enable_it">Enable it</a></div></li>
</ul>
</li>
<li class="level1"><div class="li"><a href="#add_a_new_platform">Add a new platform</a></div></li>
<li class="level1"><div class="li"><a href="#old_fashion_nginx_handlers">Old fashion Nginx handlers</a></div></li>
</ul>
</div>
</div>
<!-- TOC END -->
<h1 class="sectionedit1" id="custom_handlers">Custom handlers</h1>
<div class="level1">
<p>
LLNG provides Perl libraries that can be easily used by inheritance. To launch them:
LLNG provides Perl libraries that can be easily used by inheritance. So you can write your own handlers but you need first to understand <a href="handlerarch.html" class="wikilink1" title="documentation:2.0:handlerarch">Handler architecture</a>
</p>
</div>
<!-- EDIT1 SECTION "Custom handlers" [1-206] -->
<h2 class="sectionedit2" id="add_a_new_handler_type">Add a new handler type</h2>
<div class="level2">
<ol>
<li class="level1"><div class="li"> Write your new Module (in Lemonldap/NG/Handler/Lib for example) that overload some Lemonldap::NG::Handler::Main methods</div>
</li>
<li class="level1"><div class="li"> Write a wrapper in each platform directory <em>(see Lemonldap::NG::Handler::Apache2::AuthBasic or Lemonldap::NG::Handler::Server::AuthBasic for examples)</em></div>
</li>
</ol>
<p>
Wrapper usually look at this:
</p>
<pre class="code file perl"><a href="http://perldoc.perl.org/functions/package.html"><span class="kw3">package</span></a> Lemonldap<span class="sy0">::</span><span class="me2">NG</span><span class="sy0">::</span><span class="me2">Handler</span><span class="sy0">::</span><span class="me2">ApacheMP2</span><span class="sy0">::</span><span class="me2">MyType</span><span class="sy0">;</span>
&nbsp;
<span class="kw2">use</span> base <span class="st_h">'Lemonldap::NG::Handler::ApacheMP2::Main'</span><span class="sy0">,</span> <span class="st_h">'Lemonldap::NG::Handler::Lib::MyType'</span><span class="sy0">;</span>
&nbsp;
<span class="nu0">1</span><span class="sy0">;</span></pre>
</div>
<!-- EDIT2 SECTION "Add a new handler type" [207-723] -->
<h3 class="sectionedit3" id="enable_it">Enable it</h3>
<div class="level3">
<p>
You can enable it either:
</p>
<ul>
<li class="level1"><div class="li"> with Apache: replace simply Lemonldap::NG::Handler by your own package in Apache configuration file</div>
<li class="level1"><div class="li"> by setting a “PerlSetVar” in the Apache configuration file</div>
</li>
<li class="level1"><div class="li"> with Nginx: you can declare them as follow.</div>
<li class="level1"><div class="li"> by adding it to the menu: add its name in <code>vhostType</code> “select” declaration (file <code>lemonldap-ng-manager/lib/Lemonldap/NG/Build/Attributes</code>) and rebuild LLNG</div>
</li>
</ul>
</div>
<!-- EDIT1 SECTION "Custom handlers" [1-269] -->
<h2 class="sectionedit2" id="use_custom_handler_with_nginx">Use custom handler with Nginx</h2>
<!-- EDIT3 SECTION "Enable it" [724-998] -->
<h2 class="sectionedit4" id="add_a_new_platform">Add a new platform</h2>
<div class="level2">
<p>
LLNG provides 3 platforms:
</p>
<ul>
<li class="level1"><div class="li"> ApacheMP2</div>
</li>
<li class="level1"><div class="li"> FastCGI server <em>(Nginx is build from there)</em></div>
</li>
<li class="level1"><div class="li"> Auto-protected PSGI</div>
</li>
</ul>
<p>
If you want to add another, you must write:
</p>
<ul>
<li class="level1"><div class="li"> the platform launcher file that launch the required type <em>(see <code>lemonldap-ng-handler/lib/Lemonldap/NG/Handler/ApacheMP2</code> file for example)</em></div>
</li>
<li class="level1"><div class="li"> write the main platform file (<code>Lemonldap::NG::Handler::MyPlatform::Main</code>) that provides required method <em>(see <code>lemonldap-ng-handler/lib/Lemonldap/NG/Handler/*/Main</code> for examples)</em> and inherits from <code>Lemonldap::NG::Handler::Main</code></div>
</li>
<li class="level1"><div class="li"> write the “type” wrapper files (AuthBasic,…).</div>
</li>
</ul>
<p>
Wrapper usually look at this:
</p>
<pre class="code file perl"><a href="http://perldoc.perl.org/functions/package.html"><span class="kw3">package</span></a> Lemonldap<span class="sy0">::</span><span class="me2">NG</span><span class="sy0">::</span><span class="me2">Handler</span><span class="sy0">::</span><span class="me2">MyPlatform</span><span class="sy0">::</span><span class="me2">AuthBasic</span><span class="sy0">;</span>
&nbsp;
<span class="kw2">use</span> base <span class="st_h">'Lemonldap::NG::Handler::MyPlatform::Main'</span><span class="sy0">,</span> <span class="st_h">'Lemonldap::NG::Handler::Lib::AuthBasic'</span><span class="sy0">;</span>
&nbsp;
<span class="nu0">1</span><span class="sy0">;</span></pre>
</div>
<!-- EDIT4 SECTION "Add a new platform" [999-1839] -->
<h2 class="sectionedit5" id="old_fashion_nginx_handlers">Old fashion Nginx handlers</h2>
<div class="level2">
<div class="noteimportant">There is no need to use this feature now. It is kept for compatibility.
</div>
<p>
Three actions are needed:
</p>
<ul>
<li class="level1"><div class="li"> declare them in the manager “General Parameters » Advanced Parameters » Custom handlers (Nginx)”. Key is the name that will be used below and value is the name of the custom package,</div>
<li class="level1"><div class="li"> declare your own module in the manager “General Parameters » Advanced Parameters » Custom handlers (Nginx)”. Key is the name that will be used below and value is the name of the custom package,</div>
</li>
<li class="level1"><div class="li"> in your Nginx configuration file, add <code>LLTYPE=&lt;name&gt;;</code> in the <code>location = /lmauth {…}</code> paragraph</div>
</li>
@ -75,6 +160,6 @@ Three actions are needed:
</ul>
</div>
<!-- EDIT2 SECTION "Use custom handler with Nginx" [270-] --></div>
<!-- EDIT5 SECTION "Old fashion Nginx handlers" [1840-] --></div>
</body>
</html>

View File

@ -0,0 +1,105 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<title>documentation:2.0:handlerarch</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,handlerarch"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="handlerarch.html"/>
<link rel="contents" href="handlerarch.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else -->
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<!-- //endif -->
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:handlerarch","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script>
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script>
<!-- //endif -->
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/lib/scripts/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/lib/scripts/jquery-ui.js"></script>
<!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<h1 class="sectionedit1" id="handler_architecture">Handler architecture</h1>
<div class="level1">
<p>
Handlers are build on rows of modules:
</p>
<ul>
<li class="level1"><div class="li"> Applications or launchers that get the request and choose the good type <em>(Main, AuthBasic, ZimbraPreAuth,…)</em> and launch it <em>(may not inherits of other Handler::* modules)</em></div>
</li>
<li class="level1"><div class="li"> Wrappers that call “type” library and platform “Main” <em>(may all inherits from Platform::Main)</em></div>
</li>
<li class="level1"><div class="li"> library types if needed <em>(may inherits from Main)</em></div>
</li>
<li class="level1"><div class="li"> Main: the main handler library</div>
</li>
</ul>
</div>
<!-- EDIT1 SECTION "Handler architecture" [1-452] -->
<h2 class="sectionedit2" id="overview_of_handler_packages">Overview of Handler packages</h2>
<div class="level2">
<div class="table sectionedit3"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0 centeralign" colspan="2"> Platform </th><th class="col2 centeralign" rowspan="2"> Wrapper </th><th class="col3 centeralign" rowspan="2"> Types </th><th class="col4 centeralign" rowspan="2"> Main </th>
</tr>
<tr class="row1 rowodd">
<th class="col0 centeralign"> Applications </th><th class="col1 centeralign"> Launchers </th>
</tr>
</thead>
<tr class="row2 roweven">
<td class="col0"> </td><td class="col1 centeralign"> ApacheMP2 </td><td class="col2 centeralign"> ApacheMP2::&lt;type&gt; </td><td class="col3 centeralign" rowspan="3"> Lib::&lt;type&gt; </td><td class="col4 centeralign" rowspan="3"> Main </td>
</tr>
<tr class="row3 rowodd">
<td class="col0 centeralign" colspan="2"> Server </td><td class="col2 centeralign"> Server::&lt;type&gt; </td>
</tr>
<tr class="row4 roweven">
<td class="col0 centeralign" colspan="2"> PSGI </td><td class="col2 centeralign"> PSGI::&lt;type&gt; </td>
</tr>
</table></div>
<!-- EDIT3 TABLE [495-753] -->
<p>
Types are:
</p>
<ul>
<li class="level1"><div class="li"> <em>(Main)</em></div>
</li>
<li class="level1"><div class="li"> <a href="handlerauthbasic.html" class="wikilink1" title="documentation:2.0:handlerauthbasic">AuthBasic</a></div>
</li>
<li class="level1"><div class="li"> <a href="documentation/latest/applications/zimbra.html" class="wikilink1" title="documentation:latest:applications:zimbra">ZimbraPreAuth</a></div>
</li>
<li class="level1"><div class="li"> <a href="securetoken.html" class="wikilink1" title="documentation:2.0:securetoken">SecureToken</a></div>
</li>
</ul>
</div>
<!-- EDIT2 SECTION "Overview of Handler packages" [453-] --></div>
</body>
</html>

View File

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav">
<li><a href="/documentation/2.0/restserverplugin?do=login&amp;sectok=4b672ef72fa0a5a16fe79036bfaaaf52" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
<li><a href="/documentation/2.0/restserverplugin?do=login&amp;sectok=6cc832d32ee620a66fe468f5fc8a13ab" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Arestserverplugin&amp;1486506640" width="2" height="1" alt="" /></div>
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Arestserverplugin&amp;1486807643" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no">
<span class="visible-xs"></span>
<span class="visible-sm"></span>

View File

@ -4,7 +4,7 @@
<meta charset="utf-8" />
<title>documentation:2.0:selfmadeapplication</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="documentation,2.0,selfmadeapplication"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="selfmadeapplication.html"/>

View File

@ -240,88 +240,85 @@
<td class="col0"> <a href="authapache.html" class="wikilink1" title="documentation:2.0:authapache">Apache (Kerberos, NTLM, OTP, ...)</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row3 rowodd">
<td class="col0"> <a href="authbrowserid.html" class="wikilink1" title="documentation:2.0:authbrowserid">BrowserID (Mozilla Persona)</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row4 roweven">
<td class="col0"> <a href="authcas.html" class="wikilink1" title="documentation:2.0:authcas">CAS</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row5 rowodd">
<tr class="row4 roweven">
<td class="col0"> <a href="authdbi.html" class="wikilink1" title="documentation:2.0:authdbi">Databases (DBI)</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row6 roweven">
<tr class="row5 rowodd">
<td class="col0"> <a href="authdemo.html" class="wikilink1" title="documentation:2.0:authdemo">Demonstration</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row7 rowodd">
<tr class="row6 roweven">
<td class="col0"> <a href="authfacebook.html" class="wikilink1" title="documentation:2.0:authfacebook">Facebook</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row8 roweven">
<tr class="row7 rowodd">
<td class="col0"> <a href="authldap.html" class="wikilink1" title="documentation:2.0:authldap">LDAP</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row9 rowodd">
<tr class="row8 roweven">
<td class="col0"> <a href="authnull.html" class="wikilink1" title="documentation:2.0:authnull">Null</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row10 roweven">
<tr class="row9 rowodd">
<td class="col0"> <a href="authopenidconnect.html" class="wikilink1" title="documentation:2.0:authopenidconnect">OpenID Connect</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row11 rowodd">
<tr class="row10 roweven">
<td class="col0"> <a href="authproxy.html" class="wikilink1" title="documentation:2.0:authproxy">Proxy LL::NG</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row12 roweven">
<tr class="row11 rowodd">
<td class="col0"> <a href="authradius.html" class="wikilink1" title="documentation:2.0:authradius">Radius</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row13 rowodd">
<tr class="row12 roweven">
<td class="col0"> <a href="authsaml.html" class="wikilink1" title="documentation:2.0:authsaml">SAML 2.0 / Shibboleth</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row14 roweven">
<tr class="row13 rowodd">
<td class="col0"> <a href="authslave.html" class="wikilink1" title="documentation:2.0:authslave">Slave</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row15 rowodd">
<tr class="row14 roweven">
<td class="col0"> <a href="authssl.html" class="wikilink1" title="documentation:2.0:authssl">SSL</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row16 roweven">
<tr class="row15 rowodd">
<td class="col0"> <a href="authtwitter.html" class="wikilink1" title="documentation:2.0:authtwitter">Twitter</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row17 rowodd">
<tr class="row16 roweven">
<td class="col0"> <a href="authwebid.html" class="wikilink1" title="documentation:2.0:authwebid">WebID</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row18 roweven">
<tr class="row17 rowodd">
<td class="col0"> <a href="authyubikey.html" class="wikilink1" title="documentation:2.0:authyubikey">Yubikey</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row19 rowodd">
<tr class="row18 roweven">
<th class="col0"> Combo Backends </th><th class="col1 centeralign"> Authentication </th><th class="col2 centeralign"> Users </th><th class="col3 centeralign"> Password </th>
</tr>
<tr class="row20 roweven">
<tr class="row19 rowodd">
<td class="col0"> <a href="authchoice.html" class="wikilink1" title="documentation:2.0:authchoice">Choice by users</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row21 rowodd">
<tr class="row20 roweven">
<td class="col0"> <a href="authcombination.html" class="wikilink1" title="documentation:2.0:authcombination">Combination of auth schemes</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row22 roweven">
<td class="col0"> <del><a href="authmulti.html" class="wikilink1" title="documentation:2.0:authmulti">Multiple backends stack</a></del> </td><td class="col1 leftalign"> </td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
<tr class="row21 rowodd">
<td class="col0"> <del><a href="authmulti.html" class="wikilink1" title="documentation:2.0:authmulti">Multiple backends stack</a></del> </td><td class="col1 centeralign" colspan="3"> <em>Deprecated, replaced by Combination</em> </td>
</tr>
<tr class="row23 rowodd">
<tr class="row22 roweven">
<th class="col0"> Obsolete Backends </th><th class="col1 centeralign"> Authentication </th><th class="col2 centeralign"> Users </th><th class="col3 centeralign"> Password </th>
</tr>
<tr class="row24 roweven">
<tr class="row23 rowodd">
<td class="col0"> <a href="authopenid.html" class="wikilink1" title="documentation:2.0:authopenid">OpenID</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row25 rowodd">
<tr class="row24 roweven">
<td class="col0"> <a href="authremote.html" class="wikilink1" title="documentation:2.0:authremote">Remote LL::NG</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row26 roweven">
<tr class="row25 rowodd">
<th class="col0"> Second factor </th><th class="col1 centeralign"> Authentication </th><td class="col2"></td><td class="col3"></td>
</tr>
<tr class="row27 rowodd">
<tr class="row26 roweven">
<td class="col0"> <a href="u2f.html" class="wikilink1" title="documentation:2.0:u2f">U2F</a> </td><td class="col1 centeralign"></td><td class="col2"></td><td class="col3"></td>
</tr>
</table></div>
<!-- EDIT10 TABLE [2124-3592] -->
<!-- EDIT10 TABLE [2124-3555] -->
<p>
</div></div>
</p>
</div>
<!-- EDIT9 SECTION "Authentication, users and password databases" [1951-3620] -->
<!-- EDIT9 SECTION "Authentication, users and password databases" [1951-3583] -->
<h3 class="sectionedit11" id="configuration_database">Configuration database</h3>
<div class="level3">
@ -356,14 +353,14 @@
<td class="col0 centeralign"> <a href="soapconfbackend.html" class="wikilink1" title="documentation:2.0:soapconfbackend">SOAP</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> Proxy backend to be used in conjunction with another configuration backend. <br/><strong>Can be used to secure another backend</strong> for remote servers. </td>
</tr>
</table></div>
<!-- EDIT12 TABLE [3895-4484] --><div class="notetip">You can not start with an empty configuration, so read <a href="changeconfbackend.html" class="wikilink1" title="documentation:2.0:changeconfbackend">how to change configuration backend</a> to convert your existing configuration into another one.
<!-- EDIT12 TABLE [3858-4447] --><div class="notetip">You can not start with an empty configuration, so read <a href="changeconfbackend.html" class="wikilink1" title="documentation:2.0:changeconfbackend">how to change configuration backend</a> to convert your existing configuration into another one.
</div>
<p>
</div></div>
</p>
</div>
<!-- EDIT11 SECTION "Configuration database" [3621-4700] -->
<!-- EDIT11 SECTION "Configuration database" [3584-4663] -->
<h3 class="sectionedit13" id="sessions_database">Sessions database</h3>
<div class="level3">
@ -405,13 +402,13 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
<strong>Can be used to secure another backend</strong> for remote servers. </td>
</tr>
</table></div>
<!-- EDIT14 TABLE [5086-6540] -->
<!-- EDIT14 TABLE [5049-6503] -->
<p>
</div></div>
</p>
</div>
<!-- EDIT13 SECTION "Sessions database" [4701-6568] -->
<!-- EDIT13 SECTION "Sessions database" [4664-6531] -->
<h3 class="sectionedit15" id="identity_provider">Identity provider</h3>
<div class="level3">
<div class="notetip"><ul>
@ -445,7 +442,7 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</p>
</div>
<!-- EDIT15 SECTION "Identity provider" [6569-7113] -->
<!-- EDIT15 SECTION "Identity provider" [6532-7076] -->
<h2 class="sectionedit16" id="applications_protection">Applications protection</h2>
<div class="level2">
@ -474,7 +471,7 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</p>
</div>
<!-- EDIT16 SECTION "Applications protection" [7114-7604] -->
<!-- EDIT16 SECTION "Applications protection" [7077-7567] -->
<h3 class="sectionedit17" id="well_known_compatible_applications">Well known compatible applications</h3>
<div class="level3">
<div class="noteclassic">Here is a list of well known applications that are compatible with <abbr title="LemonLDAP::NG">LL::NG</abbr>. A full list is available on <a href="applications.html" class="wikilink1" title="documentation:2.0:applications">vendor applications page</a>.
@ -548,7 +545,7 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</p>
</div>
<!-- EDIT17 SECTION "Well known compatible applications" [7605-9246] -->
<!-- EDIT17 SECTION "Well known compatible applications" [7568-9209] -->
<h2 class="sectionedit18" id="advanced_features">Advanced features</h2>
<div class="level2">
@ -595,7 +592,7 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</p>
</div>
<!-- EDIT18 SECTION "Advanced features" [9247-10091] -->
<!-- EDIT18 SECTION "Advanced features" [9210-10054] -->
<h2 class="sectionedit19" id="mini_howtos">Mini howtos</h2>
<div class="level2">
@ -626,7 +623,7 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</p>
</div>
<!-- EDIT19 SECTION "Mini howtos" [10092-10761] -->
<!-- EDIT19 SECTION "Mini howtos" [10055-10724] -->
<h2 class="sectionedit20" id="exploitation">Exploitation</h2>
<div class="level2">
@ -659,6 +656,6 @@ Sessions are stored using <a href="http://search.cpan.org/perldoc?Apache::Sessio
</p>
</div>
<!-- EDIT20 SECTION "Exploitation" [10762-] --></div>
<!-- EDIT20 SECTION "Exploitation" [10725-] --></div>
</body>
</html>

View File

@ -49,6 +49,7 @@
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#prerequisites_and_dependencies">Prerequisites and dependencies</a></div></li>
<li class="level1"><div class="li"><a href="#configuration">Configuration</a></div></li>
<li class="level1"><div class="li"><a href="#assistance">Assistance</a></div></li>
<li class="level1"><div class="li"><a href="#developer_corner">Developer corner</a></div></li>
@ -71,7 +72,16 @@ LLNG can propose to users to register their keys. When done, registered user can
</div>
</div>
<!-- EDIT1 SECTION "Universal 2nd Factor Authentication (U2F)" [1-521] -->
<h2 class="sectionedit2" id="configuration">Configuration</h2>
<h2 class="sectionedit2" id="prerequisites_and_dependencies">Prerequisites and dependencies</h2>
<div class="level2">
<p>
This feature uses <a href="https://metacpan.org/pod/Crypt::U2F::Server::Simple" class="urlextern" title="https://metacpan.org/pod/Crypt::U2F::Server::Simple" rel="nofollow">Crypt::U2F::Server::Simple</a> that is available only via CPAN for now. Before compiling it, you must install Yubico&#039;s C library headers (called libu2f-server-dev on Debian).
</p>
</div>
<!-- EDIT2 SECTION "Prerequisites and dependencies" [522-811] -->
<h2 class="sectionedit3" id="configuration">Configuration</h2>
<div class="level2">
<p>
@ -85,8 +95,8 @@ In the manager (advanced parameters), you just have to enable it:
</ul>
</div>
<!-- EDIT2 SECTION "Configuration" [522-818] -->
<h2 class="sectionedit3" id="assistance">Assistance</h2>
<!-- EDIT3 SECTION "Configuration" [812-1108] -->
<h2 class="sectionedit4" id="assistance">Assistance</h2>
<div class="level2">
<p>
@ -94,14 +104,14 @@ If a user lost its key, you may remove it&#039;s persistent session using the se
</p>
</div>
<!-- EDIT3 SECTION "Assistance" [819-934] -->
<h2 class="sectionedit4" id="developer_corner">Developer corner</h2>
<!-- EDIT4 SECTION "Assistance" [1109-1224] -->
<h2 class="sectionedit5" id="developer_corner">Developer corner</h2>
<div class="level2">
<p>
If you have another U2F registration interface, you have to populate session (using exported variables) to set these keys:
</p>
<div class="table sectionedit5"><table class="inline table table-bordered table-striped">
<div class="table sectionedit6"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0"> Name </th><th class="col1"> Value </th>
@ -114,12 +124,12 @@ If you have another U2F registration interface, you have to populate session (us
<td class="col0"> _u2fUserKey </td><td class="col1"> user key value, base64 encoded </td>
</tr>
</table></div>
<!-- EDIT5 TABLE [1089-1207] -->
<!-- EDIT6 TABLE [1379-1497] -->
<p>
Note that both “origin” and “appId” are fixed to portal <abbr title="Uniform Resource Locator">URL</abbr>.
</p>
</div>
<!-- EDIT4 SECTION "Developer corner" [935-] --></div>
<!-- EDIT5 SECTION "Developer corner" [1225-] --></div>
</body>
</html>

View File

@ -51,6 +51,7 @@
<ul class="toc">
<li class="level1"><div class="li"><a href="#configuration">Configuration</a></div></li>
<li class="level1"><div class="li"><a href="#security">Security</a></div></li>
<li class="level1"><div class="li"><a href="#rules_and_headers">Rules and headers</a></div></li>
<li class="level1"><div class="li"><a href="#supported_servers">Supported servers</a></div></li>
<li class="level1"><div class="li"><a href="#soaprest_services">SOAP/REST services</a></div></li>
<li class="level1"><div class="li"><a href="#developer_corner">Developer corner</a></div>
@ -80,12 +81,12 @@
</ul>
<div class="notewarning">Apache-ModPerl is no longer usable since version 2.4 <em>(many segfaults,…)</em>. LLNG doesn&#039;t use anymore ModPerl::Registry: all is now handle by FastCGI <em>(portal and manager)</em>.
<p>
<strong>For handlers, it is now recommended to migrate to Nginx !</strong>
<strong>For handlers, it is now recommended to migrate to Nginx</strong>, but Apache-2 is still supported
</p>
</div>
</div>
<!-- EDIT2 SECTION "Configuration" [163-792] -->
<!-- EDIT2 SECTION "Configuration" [163-823] -->
<h2 class="sectionedit3" id="security">Security</h2>
<div class="level2">
@ -100,8 +101,17 @@ LLNG portal now embeds the following features:
</ul>
</div>
<!-- EDIT3 SECTION "Security" [793-1360] -->
<h2 class="sectionedit4" id="supported_servers">Supported servers</h2>
<!-- EDIT3 SECTION "Security" [824-1391] -->
<h2 class="sectionedit4" id="rules_and_headers">Rules and headers</h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> pseudo variable <code>$ip</code> is replaced by <code><a href="extendedfunctions.html#request_information" class="wikilink1" title="documentation:2.0:extendedfunctions">remote_ip()</a></code> function in <a href="writingrulesand_headers.html" class="wikilink1" title="documentation:2.0:writingrulesand_headers">rules and headers</a>. Note that session variable <code>$ipAddr</code> <em>(remote address seen by portal)</em> is still available</div>
</li>
</ul>
</div>
<!-- EDIT4 SECTION "Rules and headers" [1392-1677] -->
<h2 class="sectionedit5" id="supported_servers">Supported servers</h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> Apache-1.3 files are not provided now. You can build them yourself by looking at Apache-2 configuration files</div>
@ -109,8 +119,8 @@ LLNG portal now embeds the following features:
</ul>
</div>
<!-- EDIT4 SECTION "Supported servers" [1361-1506] -->
<h2 class="sectionedit5" id="soaprest_services">SOAP/REST services</h2>
<!-- EDIT5 SECTION "Supported servers" [1678-1823] -->
<h2 class="sectionedit6" id="soaprest_services">SOAP/REST services</h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> SOAP server activation is now split in 2 parameters (configuration/sessions). You must set them else SOAP service will be disabled</div>
@ -122,13 +132,13 @@ LLNG portal now embeds the following features:
</ul>
</div>
<!-- EDIT5 SECTION "SOAP/REST services" [1507-1847] -->
<h2 class="sectionedit6" id="developer_corner">Developer corner</h2>
<!-- EDIT6 SECTION "SOAP/REST services" [1824-2164] -->
<h2 class="sectionedit7" id="developer_corner">Developer corner</h2>
<div class="level2">
</div>
<!-- EDIT6 SECTION "Developer corner" [1848-1877] -->
<h3 class="sectionedit7" id="apis">APIs</h3>
<!-- EDIT7 SECTION "Developer corner" [2165-2194] -->
<h3 class="sectionedit8" id="apis">APIs</h3>
<div class="level3">
<p>
@ -136,8 +146,8 @@ Portal has now many REST features and includes a plugin <abbr title="Application
</p>
</div>
<!-- EDIT7 SECTION "APIs" [1878-2035] -->
<h3 class="sectionedit8" id="portal_overview">Portal overview</h3>
<!-- EDIT8 SECTION "APIs" [2195-2352] -->
<h3 class="sectionedit9" id="portal_overview">Portal overview</h3>
<div class="level3">
<p>
@ -158,12 +168,12 @@ The request is a separated object based on Lemonldap::NG::Portal::Main::Request
</p>
</div>
<!-- EDIT8 SECTION "Portal overview" [2036-2483] -->
<h3 class="sectionedit9" id="handler">Handler</h3>
<!-- EDIT9 SECTION "Portal overview" [2353-2800] -->
<h3 class="sectionedit10" id="handler">Handler</h3>
<div class="level3">
<div class="noteimportant">Handler libraries have been changed another time. Inheritance is back (like 1.3.3). We are sorry for this new inconvenience.
<div class="noteimportant">Handler libraries have been totally rewritten. If you&#039;ve made custom handlers, they must be rewritten. See <a href="customhandlers.html" class="wikilink1" title="documentation:2.0:customhandlers">customhandlers</a>
</div>
</div>
<!-- EDIT9 SECTION "Handler" [2484-] --></div>
<!-- EDIT10 SECTION "Handler" [2801-] --></div>
</body>
</html>

View File

@ -4,7 +4,7 @@
<meta charset="utf-8" />
<title>documentation:2.0:writingrulesand_headers</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,writingrulesand_headers"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="writingrulesand_headers.html"/>
@ -43,6 +43,19 @@
</head>
<body>
<div class="dokuwiki export container">
<!-- TOC START -->
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#rules">Rules</a></div></li>
<li class="level1"><div class="li"><a href="#headers">Headers</a></div></li>
<li class="level1"><div class="li"><a href="#available_functions">Available functions</a></div></li>
</ul>
</div>
</div>
<!-- TOC END -->
<h1 class="sectionedit1" id="writing_rules_and_headers">Writing rules and headers</h1>
<div class="level1">
@ -122,17 +135,20 @@ Rules can also be used to intercept logout <abbr title="Uniform Resource Locator
<td class="col0 leftalign"> Logout user from Lemonldap::NG and redirect it to http://intranet/ </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_sso&nbsp;http://intranet/ </td>
</tr>
<tr class="row2 roweven">
<td class="col0 leftalign"> Logout user from current application and redirect it to the menu </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_app&nbsp;https://auth.example.com/ </td>
<td class="col0 leftalign"> Logout user from current application and redirect it to the menu <strong><em>(Apache only)</em></strong> </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_app&nbsp;https://auth.example.com/ </td>
</tr>
<tr class="row3 rowodd">
<td class="col0 leftalign"> Logout user from current application and from Lemonldap::NG and redirect it to http://intranet/ </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_app_sso&nbsp;http://intranet/ </td>
<td class="col0"> Logout user from current application and from Lemonldap::NG and redirect it to http://intranet/ <strong><em>(Apache only)</em></strong> </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_app_sso&nbsp;http://intranet/ </td>
</tr>
</table></div>
<!-- EDIT4 TABLE [2052-2657] --><div class="notetip">By default, user will be redirected on portal if no <abbr title="Uniform Resource Locator">URL</abbr> defined, or on the specified <abbr title="Uniform Resource Locator">URL</abbr> if any.
</div><div class="noteimportant">Only current application is concerned by logout_app* targets. Be careful with some applications which doesn&#039;t verify Lemonldap::NG headers after having created their own cookies. If so, you can redirect users to a <abbr title="HyperText Markup Language">HTML</abbr> page that explain that it is safe to close browser after disconnect.
<!-- EDIT4 TABLE [2052-2700] -->
<p>
By default, user will be redirected on portal if no <abbr title="Uniform Resource Locator">URL</abbr> defined, or on the specified <abbr title="Uniform Resource Locator">URL</abbr> if any.
</p>
<div class="noteimportant">Only current application is concerned by logout_app* targets. Be careful with some applications which doesn&#039;t verify Lemonldap::NG headers after having created their own cookies. If so, you can redirect users to a <abbr title="HyperText Markup Language">HTML</abbr> page that explain that it is safe to close browser after disconnect.
</div>
</div>
<!-- EDIT2 SECTION "Rules" [493-3085] -->
<!-- EDIT2 SECTION "Rules" [493-3111] -->
<h2 class="sectionedit5" id="headers">Headers</h2>
<div class="level2">
@ -162,7 +178,7 @@ Examples:
<td class="col0 leftalign"> Give a non ascii data </td><td class="col1 centeralign"> Display-Name </td><td class="col2 centeralign"> encode_base64($givenName."&nbsp;".$surName) </td>
</tr>
</table></div>
<!-- EDIT6 TABLE [3269-3602] -->
<!-- EDIT6 TABLE [3295-3628] -->
<p>
As described in <a href="performances.html#handler_performance" class="wikilink1" title="documentation:2.0:performances">performances chapter</a>, you can use macros, local macros,…
</p>
@ -178,6 +194,21 @@ As described in <a href="performances.html#handler_performance" class="wikilink1
</div>
</div>
<!-- EDIT5 SECTION "Headers" [3086-] --></div>
<!-- EDIT5 SECTION "Headers" [3112-4161] -->
<h2 class="sectionedit7" id="available_functions">Available functions</h2>
<div class="level2">
<p>
In addition to macros and name, you can use some functions in rules and headers:
</p>
<ul>
<li class="level1"><div class="li"> <a href="extendedfunctions.html" class="wikilink1" title="documentation:2.0:extendedfunctions">LLNG extended functions</a></div>
</li>
<li class="level1"><div class="li"> <a href="customfunctions.html" class="wikilink1" title="documentation:2.0:customfunctions">Your custom functions</a></div>
</li>
</ul>
</div>
<!-- EDIT7 SECTION "Available functions" [4162-] --></div>
</body>
</html>

View File

@ -866,6 +866,14 @@ chown www-data:www-data /var/lib/lemonldap-ng/sessions /var/lib/lemonldap-ng/ses
<seg>Voir Écrire des règles et des en-têtes pour savoir comment configurer le contrôle d'accès et les en-têtes HTTP transmis à l'application par LL::NG.</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>documentation/latest/applications/zimbra.html</seg>
</tuv>
<tuv lang="FR-FR">
<seg>documentation/latest/applications/zimbra.html</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>APT-GET</seg>
@ -5028,14 +5036,6 @@ $WebserverAuth_autouserprofile = Array(</seg>
<seg>Si l'explorateur de sessions est sur le même serveur que le portail, utiliser soit la terminaison adminSessions dans la configuration eu manager, ou surcharger les paramètres globalStorage et globalStorageOptions dans la section all (et pas portal) de lemonldap-ng.ini.</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>BrowserID (Mozilla Persona)</seg>
</tuv>
<tuv lang="FR-FR" changedate="20131025T082342Z" changeid="xavier">
<seg>BrowserID (Mozilla Persona)</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>Build:</seg>
@ -6608,6 +6608,14 @@ cda = 1</seg>
<seg>Ce type de mécanisme SSO n'est pas parfait et peut générer des problèmes tels des blocages de mots-de-passe, sessions locales mal closes, etc...</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>documentation:latest:applications:zimbra</seg>
</tuv>
<tuv lang="FR-FR">
<seg>documentation:latest:applications:zimbra</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>KERB_AUTH: AD account to generate the keytab for LL::NG server (in single mode)</seg>
@ -14214,14 +14222,6 @@ portalSkin = dark</seg>
<seg>Affiche le module de changement de mot-de-passe</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>Logout user from current application and from Lemonldap::NG and redirect it to http://intranet/</seg>
</tuv>
<tuv lang="FR-FR" changedate="20120506T060539Z" changeid="xavier">
<seg>Déconnecte l'utilisateur de l'application courante et de Lemonldap::NG le redirige vers http://intranet/</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>With YUM</seg>
@ -33172,14 +33172,6 @@ maxretry = 3</seg>
<seg>$uid eq &quot;bart.simpson&quot;</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>Logout user from current application and redirect it to the menu</seg>
</tuv>
<tuv lang="FR-FR" changedate="20120506T060501Z" changeid="xavier">
<seg>Déconnecte l'utilisateur de l'application courante et le redirige vers le menu</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>Just run the tar command:</seg>

View File

@ -866,6 +866,14 @@ chown www-data:www-data /var/lib/lemonldap-ng/sessions /var/lib/lemonldap-ng/ses
<seg>Voir <bpt i='0' x='0'>&lt;s0&gt;</bpt><bpt i='1' x='1'>&lt;a1&gt;</bpt>Écrire des règles et des en-têtes<ept i='1'>&lt;/a1&gt;</ept><ept i='0'>&lt;/s0&gt;</ept> pour savoir comment configurer le contrôle d'accès et les en-têtes HTTP transmis à l'application par <bpt i='2' x='2'>&lt;a2&gt;</bpt>LL::NG<ept i='2'>&lt;/a2&gt;</ept>.</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg>documentation/latest/applications/zimbra.html</seg>
</tuv>
<tuv xml:lang="FR-FR">
<seg>documentation/latest/applications/zimbra.html</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg>APT-GET</seg>
@ -5028,14 +5036,6 @@ ignoreregex =</seg>
<seg>Si l'explorateur de sessions est sur le même serveur que le portail, utiliser soit la terminaison <bpt i='0' x='0'>&lt;s0&gt;</bpt>adminSessions<ept i='0'>&lt;/s0&gt;</ept> dans la configuration eu manager, ou surcharger les paramètres <bpt i='1' x='1'>&lt;c1&gt;</bpt>globalStorage<ept i='1'>&lt;/c1&gt;</ept> et <bpt i='2' x='2'>&lt;c2&gt;</bpt>globalStorageOptions<ept i='2'>&lt;/c2&gt;</ept> dans la section all (et pas portal) de <bpt i='3' x='3'>&lt;c3&gt;</bpt>lemonldap-ng.ini<ept i='3'>&lt;/c3&gt;</ept>.</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg>BrowserID (Mozilla Persona)</seg>
</tuv>
<tuv xml:lang="FR-FR" changedate="20131025T082342Z" changeid="xavier">
<seg>BrowserID (Mozilla Persona)</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg>Build:</seg>
@ -6608,6 +6608,14 @@ DataSource -&gt; dbi:mysql:sessions;host=...</seg>
<seg>Ce type de mécanisme <bpt i='0' x='0'>&lt;a0&gt;</bpt>SSO<ept i='0'>&lt;/a0&gt;</ept> n'est pas parfait et peut générer des problèmes tels des blocages de mots-de-passe, sessions locales mal closes, etc...</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg>documentation:latest:applications:zimbra</seg>
</tuv>
<tuv xml:lang="FR-FR">
<seg>documentation:latest:applications:zimbra</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg><bpt i='0' x='0'>&lt;s0&gt;</bpt>KERB_AUTH<ept i='0'>&lt;/s0&gt;</ept>: AD account to generate the keytab for <bpt i='1' x='1'>&lt;a1&gt;</bpt>LL::NG<ept i='1'>&lt;/a1&gt;</ept> server (in single mode)</seg>
@ -14214,14 +14222,6 @@ openssl x509 -req -days 3650 -in cert.csr -signkey lemonldap-ng-priv.key -out ce
<seg>Affiche le module de changement de mot-de-passe</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg>Logout user from current application and from Lemonldap::NG and redirect it to http://intranet/</seg>
</tuv>
<tuv xml:lang="FR-FR" changedate="20120506T060539Z" changeid="xavier">
<seg>Déconnecte l'utilisateur de l'application courante et de Lemonldap::NG le redirige vers http://intranet/</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg>With YUM</seg>
@ -33172,14 +33172,6 @@ maxretry = 3</seg>
<seg>$uid eq &quot;bart.simpson&quot;</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg>Logout user from current application and redirect it to the menu</seg>
</tuv>
<tuv xml:lang="FR-FR" changedate="20120506T060501Z" changeid="xavier">
<seg>Déconnecte l'utilisateur de l'application courante et le redirige vers le menu</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="EN-US">
<seg>Just run the tar command:</seg>

View File

@ -866,6 +866,14 @@ chown www-data:www-data /var/lib/lemonldap-ng/sessions /var/lib/lemonldap-ng/ses
<seg>Voir &lt;s0&gt;&lt;a1&gt;Écrire des règles et des en-têtes&lt;/a1&gt;&lt;/s0&gt; pour savoir comment configurer le contrôle d'accès et les en-têtes HTTP transmis à l'application par &lt;a2&gt;LL::NG&lt;/a2&gt;.</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>documentation/latest/applications/zimbra.html</seg>
</tuv>
<tuv lang="FR-FR">
<seg>documentation/latest/applications/zimbra.html</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>APT-GET</seg>
@ -5028,14 +5036,6 @@ ignoreregex =</seg>
<seg>Si l'explorateur de sessions est sur le même serveur que le portail, utiliser soit la terminaison &lt;s0&gt;adminSessions&lt;/s0&gt; dans la configuration eu manager, ou surcharger les paramètres &lt;c1&gt;globalStorage&lt;/c1&gt; et &lt;c2&gt;globalStorageOptions&lt;/c2&gt; dans la section all (et pas portal) de &lt;c3&gt;lemonldap-ng.ini&lt;/c3&gt;.</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>BrowserID (Mozilla Persona)</seg>
</tuv>
<tuv lang="FR-FR" changedate="20131025T082342Z" changeid="xavier">
<seg>BrowserID (Mozilla Persona)</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>Build:</seg>
@ -6608,6 +6608,14 @@ DataSource -&gt; dbi:mysql:sessions;host=...</seg>
<seg>Ce type de mécanisme &lt;a0&gt;SSO&lt;/a0&gt; n'est pas parfait et peut générer des problèmes tels des blocages de mots-de-passe, sessions locales mal closes, etc...</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>documentation:latest:applications:zimbra</seg>
</tuv>
<tuv lang="FR-FR">
<seg>documentation:latest:applications:zimbra</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>&lt;s0&gt;KERB_AUTH&lt;/s0&gt;: AD account to generate the keytab for &lt;a1&gt;LL::NG&lt;/a1&gt; server (in single mode)</seg>
@ -14214,14 +14222,6 @@ openssl x509 -req -days 3650 -in cert.csr -signkey lemonldap-ng-priv.key -out ce
<seg>Affiche le module de changement de mot-de-passe</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>Logout user from current application and from Lemonldap::NG and redirect it to http://intranet/</seg>
</tuv>
<tuv lang="FR-FR" changedate="20120506T060539Z" changeid="xavier">
<seg>Déconnecte l'utilisateur de l'application courante et de Lemonldap::NG le redirige vers http://intranet/</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>With YUM</seg>
@ -33172,14 +33172,6 @@ maxretry = 3</seg>
<seg>$uid eq &quot;bart.simpson&quot;</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>Logout user from current application and redirect it to the menu</seg>
</tuv>
<tuv lang="FR-FR" changedate="20120506T060501Z" changeid="xavier">
<seg>Déconnecte l'utilisateur de l'application courante et le redirige vers le menu</seg>
</tuv>
</tu>
<tu>
<tuv lang="EN-US">
<seg>Just run the tar command:</seg>

View File

@ -1,11 +1,11 @@
07/02/17 23:34
11/02/17 11:15
Données du projet
Segments Mots Caractères (sans espaces) Caractères (avec espaces)
Total : 14928 65163 456143 497568
Restants : 7178 24790 210067 220602
Segments uniques : 7228 46991 305273 341582
Segments uniques restants : 3056 14965 119011 128241
Total : 15082 65889 461157 503018
Restants : 7314 25477 214667 225631
Segments uniques : 7315 47534 308737 345416
Segments uniques restants : 3144 15529 122552 132176
Statistiques par fichiers :
@ -62,21 +62,21 @@ pages/documentation/current/authapache.html
pages/documentation/current/authbrowserid.html 47 11 26 5 287 27 229 11 1983 251 1452 119 2161 251 1622 119
pages/documentation/current/authcas.html 87 19 40 9 405 58 290 32 2675 479 1686 252 2942 495 1907 266
pages/documentation/current/authchoice.html 55 13 30 5 252 37 210 17 1588 316 1228 146 1767 323 1401 153
pages/documentation/current/authcombination.html 132 93 89 77 670 556 598 521 3806 3068 3207 2784 4330 3518 3714 3227
pages/documentation/current/authcombination.html 164 116 107 95 808 658 690 613 4722 3705 3751 3328 5344 4226 4328 3841
pages/documentation/current/authdbi.html 156 26 85 16 507 57 398 33 3385 492 2461 290 3687 503 2747 299
pages/documentation/current/authdemo.html 50 12 22 4 186 39 141 19 1165 304 803 130 1277 314 911 140
pages/documentation/current/authfacebook.html 54 18 31 11 309 104 253 82 1967 669 1457 476 2176 734 1659 541
pages/documentation/current/authldap.html 145 38 79 14 882 128 719 80 5673 1219 4322 753 6306 1272 4905 804
pages/documentation/current/authmulti.html 15 12 3 2 48 42 21 18 362 326 125 104 378 340 141 118
pages/documentation/current/authnull.html 30 9 9 1 121 23 82 3 791 192 473 26 869 192 544 26
pages/documentation/current/authopenid.html 63 19 36 9 280 73 222 49 1810 547 1317 328 1991 577 1488 358
pages/documentation/current/authopenid.html 63 19 32 5 280 73 214 41 1810 547 1217 228 1991 577 1388 258
pages/documentation/current/authopenidconnect_franceconnect.html 59 29 36 15 337 114 271 70 2712 1438 2092 955 2895 1445 2263 960
pages/documentation/current/authopenidconnect_google.html 71 33 34 16 373 88 236 33 2655 1043 1583 441 2879 1045 1750 441
pages/documentation/current/authopenidconnect.html 244 102 138 60 1030 268 820 160 6702 2615 4889 1474 7369 2688 5523 1540
pages/documentation/current/authproxy.html 62 29 29 20 297 174 231 151 1950 1161 1424 972 2147 1276 1605 1085
pages/documentation/current/authradius.html 46 13 20 5 190 29 130 9 1313 279 858 121 1426 281 955 121
pages/documentation/current/authremote.html 101 31 55 11 591 85 491 41 3785 941 2927 491 4221 959 3339 507
pages/documentation/current/authsaml.html 147 36 74 16 930 157 733 112 5589 1233 4103 808 6316 1323 4741 896
pages/documentation/current/authsaml.html 147 36 73 15 930 157 732 111 5589 1233 4090 795 6316 1323 4728 883
pages/documentation/current/authslave.html 54 13 22 5 282 61 211 41 1643 410 1123 235 1850 440 1305 265
pages/documentation/current/authssl.html 166 97 110 68 834 300 683 227 5730 2593 4546 1970 6228 2689 5008 2059
pages/documentation/current/authtwitter.html 44 9 18 3 206 23 132 7 1404 204 786 74 1532 204 886 74
@ -88,10 +88,10 @@ pages/documentation/current/cda.html
pages/documentation/current/changeconfbackend.html 48 21 32 14 170 45 135 26 1234 484 1011 333 1323 486 1094 333
pages/documentation/current/configapache.html 34 19 25 13 194 65 173 49 1284 470 1125 339 1390 501 1231 370
pages/documentation/current/configlocation.html 479 204 356 126 2366 666 2067 505 16459 6024 14011 4456 18293 6409 15687 4771
pages/documentation/current/confignginx.html 30 18 15 8 198 135 165 109 1444 1071 1203 868 1528 1111 1284 905
pages/documentation/current/confignginx.html 46 32 24 17 262 195 206 150 1930 1531 1531 1196 2057 1614 1643 1264
pages/documentation/current/configvhost.html 245 143 105 58 979 403 597 199 7793 4343 4207 2031 8490 4557 4639 2125
pages/documentation/current/customfunctions.html 76 30 45 15 381 88 300 52 2765 893 2086 527 3006 919 2303 551
pages/documentation/current/customhandlers.html 22 20 14 14 126 123 107 107 762 747 614 614 851 836 703 703
pages/documentation/current/customhandlers.html 55 51 39 39 378 367 328 328 2378 2271 2034 2034 2620 2513 2259 2259
pages/documentation/current/docker.html 33 19 19 10 166 80 131 53 1243 711 927 468 1319 733 1003 490
pages/documentation/current/documentation/captcha.png_documentation_2.0_captcha.html 37 34 9 9 84 80 24 24 692 675 224 224 701 684 230 230
pages/documentation/current/documentation/configuration-ldap.png_documentation_2.0_ldapconfbackend.html 37 33 11 10 85 79 28 26 822 769 333 297 831 778 339 303
@ -124,7 +124,8 @@ pages/documentation/current/federationproxy.html
pages/documentation/current/fileconfbackend.html 22 11 9 1 95 27 67 3 688 273 420 33 742 273 474 33
pages/documentation/current/filesessionbackend.html 36 11 19 3 181 27 145 7 1224 291 909 95 1319 291 1003 95
pages/documentation/current/formreplay.html 78 21 44 10 594 50 509 23 3225 510 2546 260 3704 517 2994 267
pages/documentation/current/handlerauthbasic.html 73 44 28 17 319 138 228 77 2391 1307 1460 662 2630 1389 1664 726
pages/documentation/current/handlerarch.html 43 38 30 28 131 119 105 97 940 828 725 640 998 886 783 698
pages/documentation/current/handlerauthbasic.html 73 44 26 15 319 138 224 73 2391 1307 1405 607 2630 1389 1609 671
pages/documentation/current/header_remote_user_conversion.html 41 23 20 8 233 72 182 36 1755 807 1217 381 1910 836 1364 402
pages/documentation/current/highavailability.html 27 13 15 7 135 35 105 19 1057 444 777 309 1129 444 849 309
pages/documentation/current/icons/access.png_documentation_2.0_start.html 37 33 9 8 85 79 26 24 657 624 219 203 666 633 225 209
@ -181,7 +182,7 @@ pages/documentation/current/resetpassword.html
pages/documentation/current/restsessionbackend.html 65 46 36 33 401 348 348 319 2642 2255 2201 1970 2935 2521 2486 2234
pages/documentation/current/safejail.html 35 13 17 1 125 31 85 3 852 302 485 26 916 302 549 26
pages/documentation/current/samlservice.html 329 104 167 49 1650 385 1228 269 10587 2864 7381 1833 11781 3095 8386 2044
pages/documentation/current/securetoken.html 54 28 21 12 312 123 236 93 2046 977 1480 718 2282 1050 1685 789
pages/documentation/current/securetoken.html 54 28 19 10 312 123 232 89 2046 977 1435 673 2282 1050 1640 744
pages/documentation/current/security.html 247 104 152 62 1404 484 1175 378 9244 4011 7211 2823 10262 4303 8176 3102
pages/documentation/current/selfmadeapplication.html 72 23 37 9 343 99 262 65 2265 784 1496 411 2469 829 1689 454
pages/documentation/current/selinux.html 26 24 14 14 77 74 47 47 556 541 349 349 591 576 377 377
@ -193,9 +194,9 @@ pages/documentation/current/soapsessionbackend.html
pages/documentation/current/sqlconfbackend.html 69 32 44 20 319 122 258 92 2082 915 1574 639 2299 976 1776 695
pages/documentation/current/sqlsessionbackend.html 119 29 52 11 557 104 334 59 3751 747 2054 338 4057 800 2292 384
pages/documentation/current/ssocookie.html 60 17 32 4 436 67 364 36 2393 502 1871 238 2740 530 2195 266
pages/documentation/current/start.html 587 331 130 68 1310 756 530 208 11708 7948 3658 1731 12143 8048 4001 1821
pages/documentation/current/start.html 584 330 130 69 1307 756 531 212 11665 7931 3665 1763 12101 8034 4009 1856
pages/documentation/current/status.html 62 21 30 7 312 71 248 41 2008 539 1486 300 2182 565 1654 324
pages/documentation/current/u2f.html 44 38 24 24 224 215 180 180 1409 1342 1052 1052 1562 1493 1200 1200
pages/documentation/current/upgrade.html 83 73 41 41 413 397 302 302 2635 2502 1689 1689 2932 2794 1942 1942
pages/documentation/current/u2f.html 51 43 28 28 274 259 217 217 1761 1638 1297 1297 1942 1813 1469 1469
pages/documentation/current/upgrade.html 94 84 46 46 462 446 337 337 3045 2912 1929 1929 3371 3233 2209 2209
pages/documentation/current/variables.html 174 48 96 26 524 131 401 85 3333 985 2353 577 3658 1044 2653 632
pages/documentation/current/writingrulesand_headers.html 110 32 61 12 571 175 468 127 3675 1370 2710 807 4082 1479 3097 916
pages/documentation/current/writingrulesand_headers.html 125 47 66 19 616 244 496 181 4012 1832 2878 1112 4445 1989 3288 1266

View File

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav">
<li><a href="/documentation/2.0/applications/img/icons.png?do=login&amp;sectok=4b672ef72fa0a5a16fe79036bfaaaf52" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
<li><a href="/documentation/2.0/applications/img/icons.png?do=login&amp;sectok=6cc832d32ee620a66fe468f5fc8a13ab" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aicons.png&amp;1486506626" width="2" height="1" alt="" /></div>
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aicons.png&amp;1486807628" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no">
<span class="visible-xs"></span>
<span class="visible-sm"></span>

View File

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav">
<li><a href="/documentation/2.0/applications/img/loader.gif?do=login&amp;sectok=4b672ef72fa0a5a16fe79036bfaaaf52" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
<li><a href="/documentation/2.0/applications/img/loader.gif?do=login&amp;sectok=6cc832d32ee620a66fe468f5fc8a13ab" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aloader.gif&amp;1486506626" width="2" height="1" alt="" /></div>
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Aapplications%3Aimg%3Aloader.gif&amp;1486807628" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no">
<span class="visible-xs"></span>
<span class="visible-sm"></span>

View File

@ -65,6 +65,7 @@
</li>
<li class="level1"><div class="li"><a href="#known_problems">Problèmes connus</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#federation_protocols">Federation protocols</a></div></li>
<li class="level2"><div class="li"><a href="#authapache_authentication">Authentification AuthApache</a></div></li>
<li class="level2"><div class="li"><a href="#ssl_authentication">Authentification SSL</a></div></li>
</ul></li>
@ -295,7 +296,30 @@ The following rule is valid:
</div><!-- EDIT11 SECTION "Known problems" [3611-3638] -->
<h3 class="sectionedit12" id="authapache_authentication">Authentification AuthApache</h3>
<h3 class="sectionedit12" id="federation_protocols">Federation protocols</h3>
<div class="level3">
<p>
<a href="authsaml.html" class="wikilink1" title="documentation:2.0:authsaml">SAML</a>, <a href="authopenidconnect.html" class="wikilink1" title="documentation:2.0:authopenidconnect">OpenID-Connect</a>, <a href="authcas.html" class="wikilink1" title="documentation:2.0:authcas">CAS</a> or <a href="authopenid.html" class="wikilink1" title="documentation:2.0:authopenid">old OpenID</a> can't be chained with a “and” for authentication part. So “[<abbr title="Security Assertion Markup Language">SAML</abbr>] and [LDAP]” isn't valid. This is because their authentication kinematic don't use the same steps.
</p>
<div class="table sectionedit13"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0 centeralign"> Bad expression </th><th class="col1 centeralign"> Solution </th><th class="col2 centeralign"> Explanation </th>
</tr>
</thead>
<tr class="row1 rowodd">
<td class="col0"> <em><code>[<abbr title="Security Assertion Markup Language">SAML</abbr>] and [LDAP]</code></em> </td><td class="col1"> <code>[<abbr title="Security Assertion Markup Language">SAML</abbr>, <abbr title="Security Assertion Markup Language">SAML</abbr> and LDAP]</code> </td><td class="col2"> Authentication is done by <abbr title="Security Assertion Markup Language">SAML</abbr> only but user must match an LDAP entry </td>
</tr>
<tr class="row2 roweven">
<td class="col0"> <em><code>[<abbr title="Security Assertion Markup Language">SAML</abbr>] and [LDAP] or [LDAP]</code></em> </td><td class="col1"> <code>[<abbr title="Security Assertion Markup Language">SAML</abbr>, <abbr title="Security Assertion Markup Language">SAML</abbr> and LDAP] or [LDAP]</code> </td><td class="col2"> Authentication is done by <abbr title="Security Assertion Markup Language">SAML</abbr> or LDAP but user must match an LDAP entry </td>
</tr>
</table></div><!-- EDIT13 TABLE [3938-4270] -->
</div><!-- EDIT12 SECTION "Federation protocols" [3639-4271] -->
<h3 class="sectionedit14" id="authapache_authentication">Authentification AuthApache</h3>
<div class="level3">
<p>
@ -311,16 +335,16 @@ Example: <code>[ Apache and LDAP, LDAP ]</code>
Pour outrepasser ceci, suivre la documentation du <a href="authapache.html" class="wikilink1" title="documentation:2.0:authapache">module AuthApache</a>
</p>
</div><!-- EDIT12 SECTION "AuthApache authentication" [3639-4055] -->
</div><!-- EDIT14 SECTION "AuthApache authentication" [4272-4688] -->
<h3 class="sectionedit13" id="ssl_authentication">Authentification SSL</h3>
<h3 class="sectionedit15" id="ssl_authentication">Authentification SSL</h3>
<div class="level3">
<p>
Pour chaîner SSL, il est nécessaire de mettre “SSLRequire optional” dans le fichier de configuration Apache, sinon les utilisateurs ne seront authentifiés que par SSL.
</p>
</div><!-- EDIT13 SECTION "SSL authentication" [4056-] -->
</div><!-- EDIT15 SECTION "SSL authentication" [4689-] -->
</div>
</body>
</html>

View File

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav">
<li><a href="/bootswatch/3.3.4/flatly/bootstrap.min.css?do=login&amp;sectok=4b672ef72fa0a5a16fe79036bfaaaf52" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
<li><a href="/bootswatch/3.3.4/flatly/bootstrap.min.css?do=login&amp;sectok=6cc832d32ee620a66fe468f5fc8a13ab" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=bootswatch%3A3.3.4%3Aflatly%3Abootstrap.min.css&amp;1486506627" width="2" height="1" alt="" /></div>
<div class="no"><img src="/lib/exe/indexer.php?id=bootswatch%3A3.3.4%3Aflatly%3Abootstrap.min.css&amp;1486807629" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no">
<span class="visible-xs"></span>
<span class="visible-sm"></span>

View File

@ -11,7 +11,7 @@
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,confignginx"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="confignginx.html"/>
@ -50,10 +50,16 @@
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#files">Fichiers</a></div>
<li class="level1"><div class="li"><a href="#fastcgi_server">FastCGI server</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#debianubuntu">Debian/Ubuntu</a></div></li>
<li class="level2"><div class="li"><a href="#red_hatcentos">Red Hat/CentOS</a></div></li>
</ul>
</li>
<li class="level1"><div class="li"><a href="#files">Fichiers</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#debianubuntu1">Debian/Ubuntu</a></div></li>
<li class="level2"><div class="li"><a href="#red_hatcentos1">Red Hat/CentOS</a></div></li>
</ul></li>
</ul>
</div>
@ -65,7 +71,46 @@
</div><!-- EDIT1 SECTION "Deploy Nginx configuration" [1-42] -->
<h2 class="sectionedit2" id="files">Fichiers</h2>
<h2 class="sectionedit2" id="fastcgi_server">FastCGI server</h2>
<div class="level2">
<p>
To use Nginx, you must install LemonLDAP::NG FastCGI server, which is not installed by default lemonldap-ng meta package.
</p>
</div><!-- EDIT2 SECTION "FastCGI server" [43-193] -->
<h3 class="sectionedit3" id="debianubuntu">Debian/Ubuntu</h3>
<div class="level3">
<pre class="code">apt install lemonldap-ng-fastcgi-server</pre>
<p>
Enable and start the service :
</p>
<pre class="code">systemctl enable llng-fastcgi-server
systemctl start llng-fastcgi-server</pre>
</div><!-- EDIT3 SECTION "Debian/Ubuntu" [194-394] -->
<h3 class="sectionedit4" id="red_hatcentos">Red Hat/CentOS</h3>
<div class="level3">
<pre class="code">yum install lemonldap-ng-fastcgi-server</pre>
<p>
Enable and start the service :
</p>
<pre class="code">systemctl enable llng-fastcgi-server
systemctl start llng-fastcgi-server</pre>
</div><!-- EDIT4 SECTION "Red Hat/CentOS" [395-596] -->
<h2 class="sectionedit5" id="files">Fichiers</h2>
<div class="level2">
<p>
@ -76,9 +121,9 @@ Depuis une installation par les sources, les fichiers de configuration de Nginx
Il faut les inclure dans la configuration de Nginx, par exemple :
</p>
</div><!-- EDIT2 SECTION "Files" [43-265] -->
</div><!-- EDIT5 SECTION "Files" [597-819] -->
<h3 class="sectionedit3" id="debianubuntu">Debian/Ubuntu</h3>
<h3 class="sectionedit6" id="debianubuntu1">Debian/Ubuntu</h3>
<div class="level3">
<p>
@ -97,9 +142,9 @@ ln -s /etc/nginx/sites-available/manager-nginx.conf /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/portal-nginx.conf /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/test-nginx.conf /etc/nginx/sites-enabled/</pre>
</div><!-- EDIT3 SECTION "Debian/Ubuntu" [266-1024] -->
</div><!-- EDIT6 SECTION "Debian/Ubuntu" [820-1578] -->
<h3 class="sectionedit4" id="red_hatcentos">Red Hat/CentOS</h3>
<h3 class="sectionedit7" id="red_hatcentos1">Red Hat/CentOS</h3>
<div class="level3">
<p>
@ -110,7 +155,7 @@ ln -s /etc/lemonldap-ng/manager-nginx.conf /etc/nginx/conf.d/
ln -s /etc/lemonldap-ng/portal-nginx.conf /etc/nginx/conf.d/
ln -s /etc/lemonldap-ng/test-nginx.conf /etc/nginx/conf.d/</pre>
</div><!-- EDIT4 SECTION "Red Hat/CentOS" [1025-] -->
</div><!-- EDIT7 SECTION "Red Hat/CentOS" [1579-] -->
</div>
</body>
</html>

View File

@ -11,7 +11,7 @@
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,customhandlers"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="customhandlers.html"/>
@ -43,35 +43,130 @@
</head>
<body>
<div class="dokuwiki export container">
<div class="dokuwiki export container"><!-- TOC START -->
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#add_a_new_handler_type">Add a new handler type</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#enable_it">Enable it</a></div></li>
</ul>
</li>
<li class="level1"><div class="li"><a href="#add_a_new_platform">Add a new platform</a></div></li>
<li class="level1"><div class="li"><a href="#old_fashion_nginx_handlers">Old fashion Nginx handlers</a></div></li>
</ul>
</div>
</div><!-- TOC END -->
<h1 class="sectionedit1" id="custom_handlers">Custom handlers</h1>
<div class="level1">
<p>
LLNG provides Perl libraries that can be easily used by inheritance. To launch them:
LLNG provides Perl libraries that can be easily used by inheritance. So you can write your own handlers but you need first to understand <a href="handlerarch.html" class="wikilink1" title="documentation:2.0:handlerarch">Handler architecture</a>
</p>
</div><!-- EDIT1 SECTION "Custom handlers" [1-206] -->
<h2 class="sectionedit2" id="add_a_new_handler_type">Add a new handler type</h2>
<div class="level2">
<ol>
<li class="level1"><div class="li"> Write your new Module (in Lemonldap/NG/Handler/Lib for example) that overload some Lemonldap::NG::Handler::Main methods</div>
</li>
<li class="level1"><div class="li"> Write a wrapper in each platform directory <em>(see Lemonldap::NG::Handler::Apache2::AuthBasic or Lemonldap::NG::Handler::Server::AuthBasic for examples)</em></div>
</li>
</ol>
<p>
Wrapper usually look at this:
</p>
<pre class="code file perl"><a href="http://perldoc.perl.org/functions/package.html"><span class="kw3">package</span></a> Lemonldap<span class="sy0">::</span><span class="me2">NG</span><span class="sy0">::</span><span class="me2">Handler</span><span class="sy0">::</span><span class="me2">ApacheMP2</span><span class="sy0">::</span><span class="me2">MyType</span><span class="sy0">;</span>
&nbsp;
<span class="kw2">use</span> base <span class="st_h">'Lemonldap::NG::Handler::ApacheMP2::Main'</span><span class="sy0">,</span> <span class="st_h">'Lemonldap::NG::Handler::Lib::MyType'</span><span class="sy0">;</span>
&nbsp;
<span class="nu0">1</span><span class="sy0">;</span></pre>
</div><!-- EDIT2 SECTION "Add a new handler type" [207-723] -->
<h3 class="sectionedit3" id="enable_it">Enable it</h3>
<div class="level3">
<p>
You can enable it either:
</p>
<ul>
<li class="level1"><div class="li"> with Apache: replace simply Lemonldap::NG::Handler by your own package in Apache configuration file</div>
<li class="level1"><div class="li"> by setting a “PerlSetVar” in the Apache configuration file</div>
</li>
<li class="level1"><div class="li"> with Nginx: you can declare them as follow.</div>
<li class="level1"><div class="li"> by adding it to the menu: add its name in <code>vhostType</code> “select” declaration (file <code>lemonldap-ng-manager/lib/Lemonldap/NG/Build/Attributes</code>) and rebuild LLNG</div>
</li>
</ul>
</div><!-- EDIT1 SECTION "Custom handlers" [1-269] -->
</div><!-- EDIT3 SECTION "Enable it" [724-998] -->
<h2 class="sectionedit2" id="use_custom_handler_with_nginx">Use custom handler with Nginx</h2>
<h2 class="sectionedit4" id="add_a_new_platform">Add a new platform</h2>
<div class="level2">
<p>
LLNG provides 3 platforms:
</p>
<ul>
<li class="level1"><div class="li"> ApacheMP2</div>
</li>
<li class="level1"><div class="li"> FastCGI server <em>(Nginx is build from there)</em></div>
</li>
<li class="level1"><div class="li"> Auto-protected PSGI</div>
</li>
</ul>
<p>
If you want to add another, you must write:
</p>
<ul>
<li class="level1"><div class="li"> the platform launcher file that launch the required type <em>(see <code>lemonldap-ng-handler/lib/Lemonldap/NG/Handler/ApacheMP2</code> file for example)</em></div>
</li>
<li class="level1"><div class="li"> write the main platform file (<code>Lemonldap::NG::Handler::MyPlatform::Main</code>) that provides required method <em>(see <code>lemonldap-ng-handler/lib/Lemonldap/NG/Handler/*/Main</code> for examples)</em> and inherits from <code>Lemonldap::NG::Handler::Main</code></div>
</li>
<li class="level1"><div class="li"> write the “type” wrapper files (AuthBasic,…).</div>
</li>
</ul>
<p>
Wrapper usually look at this:
</p>
<pre class="code file perl"><a href="http://perldoc.perl.org/functions/package.html"><span class="kw3">package</span></a> Lemonldap<span class="sy0">::</span><span class="me2">NG</span><span class="sy0">::</span><span class="me2">Handler</span><span class="sy0">::</span><span class="me2">MyPlatform</span><span class="sy0">::</span><span class="me2">AuthBasic</span><span class="sy0">;</span>
&nbsp;
<span class="kw2">use</span> base <span class="st_h">'Lemonldap::NG::Handler::MyPlatform::Main'</span><span class="sy0">,</span> <span class="st_h">'Lemonldap::NG::Handler::Lib::AuthBasic'</span><span class="sy0">;</span>
&nbsp;
<span class="nu0">1</span><span class="sy0">;</span></pre>
</div><!-- EDIT4 SECTION "Add a new platform" [999-1839] -->
<h2 class="sectionedit5" id="old_fashion_nginx_handlers">Old fashion Nginx handlers</h2>
<div class="level2">
<div class="noteimportant">There is no need to use this feature now. It is kept for compatibility.
</div>
<p>
Three actions are needed:
</p>
<ul>
<li class="level1"><div class="li"> declare them in the manager “General Parameters » Advanced Parameters » Custom handlers (Nginx)”. Key is the name that will be used below and value is the name of the custom package,</div>
<li class="level1"><div class="li"> declare your own module in the manager “General Parameters » Advanced Parameters » Custom handlers (Nginx)”. Key is the name that will be used below and value is the name of the custom package,</div>
</li>
<li class="level1"><div class="li"> in your Nginx configuration file, add <code>LLTYPE=&lt;name&gt;;</code> in the <code>location = /lmauth {…}</code> paragraph</div>
</li>
@ -79,7 +174,7 @@ Three actions are needed:
</li>
</ul>
</div><!-- EDIT2 SECTION "Use custom handler with Nginx" [270-] -->
</div><!-- EDIT5 SECTION "Old fashion Nginx handlers" [1840-] -->
</div>
</body>
</html>

View File

@ -0,0 +1,110 @@
<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8" />
<title>documentation:2.0:handlerarch</title><!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,handlerarch"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="handlerarch.html"/>
<link rel="contents" href="handlerarch.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:handlerarch","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script><!-- //endif --><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/lib/scripts/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/lib/scripts/jquery-ui.js"></script><!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<h1 class="sectionedit1" id="handler_architecture">Handler architecture</h1>
<div class="level1">
<p>
Handlers are build on rows of modules:
</p>
<ul>
<li class="level1"><div class="li"> Applications or launchers that get the request and choose the good type <em>(Main, AuthBasic, ZimbraPreAuth,…)</em> and launch it <em>(may not inherits of other Handler::* modules)</em></div>
</li>
<li class="level1"><div class="li"> Wrappers that call “type” library and platform “Main” <em>(may all inherits from Platform::Main)</em></div>
</li>
<li class="level1"><div class="li"> library types if needed <em>(may inherits from Main)</em></div>
</li>
<li class="level1"><div class="li"> Main: the main handler library</div>
</li>
</ul>
</div><!-- EDIT1 SECTION "Handler architecture" [1-452] -->
<h2 class="sectionedit2" id="overview_of_handler_packages">Overview of Handler packages</h2>
<div class="level2">
<div class="table sectionedit3"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0 centeralign" colspan="2"> Platform </th><th class="col2 centeralign" rowspan="2"> Wrapper </th><th class="col3 centeralign" rowspan="2"> Types </th><th class="col4 centeralign" rowspan="2"> Main </th>
</tr>
<tr class="row1 rowodd">
<th class="col0 centeralign"> Applications </th><th class="col1 centeralign"> Launchers </th>
</tr>
</thead>
<tr class="row2 roweven">
<td class="col0"> </td><td class="col1 centeralign"> ApacheMP2 </td><td class="col2 centeralign"> ApacheMP2::&lt;type&gt; </td><td class="col3 centeralign" rowspan="3"> Lib::&lt;type&gt; </td><td class="col4 centeralign" rowspan="3"> Main </td>
</tr>
<tr class="row3 rowodd">
<td class="col0 centeralign" colspan="2"> Server </td><td class="col2 centeralign"> Server::&lt;type&gt; </td>
</tr>
<tr class="row4 roweven">
<td class="col0 centeralign" colspan="2"> PSGI </td><td class="col2 centeralign"> PSGI::&lt;type&gt; </td>
</tr>
</table></div><!-- EDIT3 TABLE [495-753] -->
<p>
Types are:
</p>
<ul>
<li class="level1"><div class="li"> <em>(Main)</em></div>
</li>
<li class="level1"><div class="li"> <a href="handlerauthbasic.html" class="wikilink1" title="documentation:2.0:handlerauthbasic">AuthBasic</a></div>
</li>
<li class="level1"><div class="li"> <a href="documentation/latest/applications/zimbra.html" class="wikilink1" title="documentation:latest:applications:zimbra">ZimbraPreAuth</a></div>
</li>
<li class="level1"><div class="li"> <a href="securetoken.html" class="wikilink1" title="documentation:2.0:securetoken">SecureToken</a></div>
</li>
</ul>
</div><!-- EDIT2 SECTION "Overview of Handler packages" [453-] -->
</div>
</body>
</html>

View File

@ -90,7 +90,7 @@
<form action="/start" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>
<ul class="nav navbar-nav">
<li><a href="/documentation/2.0/restserverplugin?do=login&amp;sectok=4b672ef72fa0a5a16fe79036bfaaaf52" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
<li><a href="/documentation/2.0/restserverplugin?do=login&amp;sectok=6cc832d32ee620a66fe468f5fc8a13ab" class="action login" rel="nofollow" title="Login"><i class="glyphicon glyphicon-log-in"></i> Login</a></li> </ul>
</div>
@ -204,7 +204,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</div><!-- /site -->
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Arestserverplugin&amp;1486506640" width="2" height="1" alt="" /></div>
<div class="no"><img src="/lib/exe/indexer.php?id=documentation%3A2.0%3Arestserverplugin&amp;1486807643" width="2" height="1" alt="" /></div>
<div id="screen__mode" class="no">
<span class="visible-xs"></span>
<span class="visible-sm"></span>

View File

@ -11,7 +11,7 @@
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="documentation,2.0,selfmadeapplication"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="selfmadeapplication.html"/>

View File

@ -241,87 +241,84 @@
<td class="col0"> <a href="authapache.html" class="wikilink1" title="documentation:2.0:authapache">Apache (Kerberos, NTLM, OTP, ...)</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row3 rowodd">
<td class="col0"> <a href="authbrowserid.html" class="wikilink1" title="documentation:2.0:authbrowserid">BrowserID (Mozilla Persona)</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row4 roweven">
<td class="col0"> <a href="authcas.html" class="wikilink1" title="documentation:2.0:authcas">CAS</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row5 rowodd">
<tr class="row4 roweven">
<td class="col0"> <a href="authdbi.html" class="wikilink1" title="documentation:2.0:authdbi">Bases de données (DBI)</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row6 roweven">
<tr class="row5 rowodd">
<td class="col0"> <a href="authdemo.html" class="wikilink1" title="documentation:2.0:authdemo">Démonstration</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row7 rowodd">
<tr class="row6 roweven">
<td class="col0"> <a href="authfacebook.html" class="wikilink1" title="documentation:2.0:authfacebook">Facebook</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row8 roweven">
<tr class="row7 rowodd">
<td class="col0"> <a href="authldap.html" class="wikilink1" title="documentation:2.0:authldap">LDAP</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row9 rowodd">
<tr class="row8 roweven">
<td class="col0"> <a href="authnull.html" class="wikilink1" title="documentation:2.0:authnull">Null</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row10 roweven">
<tr class="row9 rowodd">
<td class="col0"> <a href="authopenidconnect.html" class="wikilink1" title="documentation:2.0:authopenidconnect">OpenID Connect</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row11 rowodd">
<tr class="row10 roweven">
<td class="col0"> <a href="authproxy.html" class="wikilink1" title="documentation:2.0:authproxy">Proxy LL::NG</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row12 roweven">
<tr class="row11 rowodd">
<td class="col0"> <a href="authradius.html" class="wikilink1" title="documentation:2.0:authradius">Radius</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row13 rowodd">
<tr class="row12 roweven">
<td class="col0"> <a href="authsaml.html" class="wikilink1" title="documentation:2.0:authsaml">SAML 2.0 / Shibboleth</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row14 roweven">
<tr class="row13 rowodd">
<td class="col0"> <a href="authslave.html" class="wikilink1" title="documentation:2.0:authslave">Slave</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row15 rowodd">
<tr class="row14 roweven">
<td class="col0"> <a href="authssl.html" class="wikilink1" title="documentation:2.0:authssl">SSL</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row16 roweven">
<tr class="row15 rowodd">
<td class="col0"> <a href="authtwitter.html" class="wikilink1" title="documentation:2.0:authtwitter">Twitter</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row17 rowodd">
<tr class="row16 roweven">
<td class="col0"> <a href="authwebid.html" class="wikilink1" title="documentation:2.0:authwebid">WebID</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row18 roweven">
<tr class="row17 rowodd">
<td class="col0"> <a href="authyubikey.html" class="wikilink1" title="documentation:2.0:authyubikey">Yubikey</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
</tr>
<tr class="row19 rowodd">
<tr class="row18 roweven">
<th class="col0"> Combo Backends </th><th class="col1 centeralign"> Authentification </th><th class="col2 centeralign"> Utilisateurs </th><th class="col3 centeralign"> Mot-de-passe </th>
</tr>
<tr class="row20 roweven">
<tr class="row19 rowodd">
<td class="col0"> <a href="authchoice.html" class="wikilink1" title="documentation:2.0:authchoice">Choice by users</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td>
</tr>
<tr class="row21 rowodd">
<tr class="row20 roweven">
<td class="col0"> <a href="authcombination.html" class="wikilink1" title="documentation:2.0:authcombination">Combination of auth schemes</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row22 roweven">
<td class="col0"> <del><a href="authmulti.html" class="wikilink1" title="documentation:2.0:authmulti">Empiler de multiples backends</a></del> </td><td class="col1 leftalign"> </td><td class="col2 leftalign"> </td><td class="col3 leftalign"> </td>
<tr class="row21 rowodd">
<td class="col0"> <del><a href="authmulti.html" class="wikilink1" title="documentation:2.0:authmulti">Empiler de multiples backends</a></del> </td><td class="col1 centeralign" colspan="3"> <em>Deprecated, replaced by Combination</em> </td>
</tr>
<tr class="row23 rowodd">
<tr class="row22 roweven">
<th class="col0"> Obsolete Backends </th><th class="col1 centeralign"> Authentification </th><th class="col2 centeralign"> Utilisateurs </th><th class="col3 centeralign"> Mot-de-passe </th>
</tr>
<tr class="row24 roweven">
<tr class="row23 rowodd">
<td class="col0"> <a href="authopenid.html" class="wikilink1" title="documentation:2.0:authopenid">OpenID</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row25 rowodd">
<tr class="row24 roweven">
<td class="col0"> <a href="authremote.html" class="wikilink1" title="documentation:2.0:authremote">LL::NG distant</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 leftalign"> </td>
</tr>
<tr class="row26 roweven">
<tr class="row25 rowodd">
<th class="col0"> Second factor </th><th class="col1 centeralign"> Authentification </th><td class="col2"></td><td class="col3"></td>
</tr>
<tr class="row27 rowodd">
<tr class="row26 roweven">
<td class="col0"> <a href="u2f.html" class="wikilink1" title="documentation:2.0:u2f">U2F</a> </td><td class="col1 centeralign"></td><td class="col2"></td><td class="col3"></td>
</tr>
</table></div><!-- EDIT10 TABLE [2124-3592] -->
</table></div><!-- EDIT10 TABLE [2124-3555] -->
<p>
</p></div></div>
</p>
</div><!-- EDIT9 SECTION "Authentication, users and password databases" [1951-3620] -->
</div><!-- EDIT9 SECTION "Authentication, users and password databases" [1951-3583] -->
<h3 class="sectionedit11" id="configuration_database">Base de données de la configuration</h3>
<div class="level3">
@ -356,14 +353,14 @@
<tr class="row5 rowodd">
<td class="col0 centeralign"> <a href="soapconfbackend.html" class="wikilink1" title="documentation:2.0:soapconfbackend">SOAP</a> </td><td class="col1 centeralign"></td><td class="col2 leftalign"> Backend proxy à utiliser avec un autre backend de configuration. <br/><strong>Peut être utilisé pour sécuriser un autre backend</strong> pour des serveurs distants. </td>
</tr>
</table></div><!-- EDIT12 TABLE [3895-4484] -->
</table></div><!-- EDIT12 TABLE [3858-4447] -->
<div class="notetip">On ne peut démarrer avec une configuration vide, il faut donc lire <a href="changeconfbackend.html" class="wikilink1" title="documentation:2.0:changeconfbackend">comment changer de backend de configuration</a> pour convertir une configuration existante en une autre.
</div>
<p>
</p></div></div>
</p>
</div><!-- EDIT11 SECTION "Configuration database" [3621-4700] -->
</div><!-- EDIT11 SECTION "Configuration database" [3584-4663] -->
<h3 class="sectionedit13" id="sessions_database">Base de données des sessions</h3>
<div class="level3">
@ -404,13 +401,13 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
<tr class="row7 rowodd">
<td class="col0 centeralign"> <a href="soapsessionbackend.html" class="wikilink1" title="documentation:2.0:soapsessionbackend">SOAP</a> </td><td class="col1 centeralign"></td><td class="col2 centeralign"></td><td class="col3 centeralign"></td><td class="col4 centeralign"></td><td class="col5 leftalign"> Backend proxy à utiliser avec un autre backend de sessions. <br/> <strong>Peut être utilisé pour sécuriser un autre backend</strong> pour des serveurs distants. </td>
</tr>
</table></div><!-- EDIT14 TABLE [5086-6540] -->
</table></div><!-- EDIT14 TABLE [5049-6503] -->
<p>
</p></div></div>
</p>
</div><!-- EDIT13 SECTION "Sessions database" [4701-6568] -->
</div><!-- EDIT13 SECTION "Sessions database" [4664-6531] -->
<h3 class="sectionedit15" id="identity_provider">Fournisseur d'identité</h3>
<div class="level3">
@ -444,7 +441,7 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</p></div></div>
</p>
</div><!-- EDIT15 SECTION "Identity provider" [6569-7113] -->
</div><!-- EDIT15 SECTION "Identity provider" [6532-7076] -->
<h2 class="sectionedit16" id="applications_protection">Protection des applications</h2>
<div class="level2">
@ -473,7 +470,7 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</p></div></div>
</p>
</div><!-- EDIT16 SECTION "Applications protection" [7114-7604] -->
</div><!-- EDIT16 SECTION "Applications protection" [7077-7567] -->
<h3 class="sectionedit17" id="well_known_compatible_applications">Well known compatible applications</h3>
<div class="level3">
@ -548,7 +545,7 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</p></div>
</p>
</div><!-- EDIT17 SECTION "Well known compatible applications" [7605-9246] -->
</div><!-- EDIT17 SECTION "Well known compatible applications" [7568-9209] -->
<h2 class="sectionedit18" id="advanced_features">Fonctionnalités avancées</h2>
<div class="level2">
@ -595,7 +592,7 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</p></div></div>
</p>
</div><!-- EDIT18 SECTION "Advanced features" [9247-10091] -->
</div><!-- EDIT18 SECTION "Advanced features" [9210-10054] -->
<h2 class="sectionedit19" id="mini_howtos">Mini howtos</h2>
<div class="level2">
@ -626,7 +623,7 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</p></div></div>
</p>
</div><!-- EDIT19 SECTION "Mini howtos" [10092-10761] -->
</div><!-- EDIT19 SECTION "Mini howtos" [10055-10724] -->
<h2 class="sectionedit20" id="exploitation">Exploitation</h2>
<div class="level2">
@ -659,7 +656,7 @@ Les sessions sont stockées en utilisant les modules de la famille <a href="http
</p></div></div>
</p>
</div><!-- EDIT20 SECTION "Exploitation" [10762-] -->
</div><!-- EDIT20 SECTION "Exploitation" [10725-] -->
</div>
</body>
</html>

View File

@ -50,6 +50,7 @@
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#prerequisites_and_dependencies">Pré-requis et dépendances</a></div></li>
<li class="level1"><div class="li"><a href="#configuration">Configuration</a></div></li>
<li class="level1"><div class="li"><a href="#assistance">Assistance</a></div></li>
<li class="level1"><div class="li"><a href="#developer_corner">Developer corner</a></div></li>
@ -76,7 +77,18 @@ LLNG can propose to users to register their keys. When done, registered user can
</div>
</div><!-- EDIT1 SECTION "Universal 2nd Factor Authentication (U2F)" [1-521] -->
<h2 class="sectionedit2" id="configuration">Configuration</h2>
<h2 class="sectionedit2" id="prerequisites_and_dependencies">Pré-requis et dépendances</h2>
<div class="level2">
<p>
This feature uses <a href="https://metacpan.org/pod/Crypt::U2F::Server::Simple" class="urlextern" title="https://metacpan.org/pod/Crypt::U2F::Server::Simple" rel="nofollow">Crypt::U2F::Server::Simple</a> that is available only via CPAN for now. Before compiling it, you must install Yubico's C library headers (called libu2f-server-dev on Debian).
</p>
</div><!-- EDIT2 SECTION "Prerequisites and dependencies" [522-811] -->
<h2 class="sectionedit3" id="configuration">Configuration</h2>
<div class="level2">
<p>
@ -91,9 +103,9 @@ In the manager (advanced parameters), you just have to enable it:
</li>
</ul>
</div><!-- EDIT2 SECTION "Configuration" [522-818] -->
</div><!-- EDIT3 SECTION "Configuration" [812-1108] -->
<h2 class="sectionedit3" id="assistance">Assistance</h2>
<h2 class="sectionedit4" id="assistance">Assistance</h2>
<div class="level2">
<p>
@ -102,9 +114,9 @@ If a user lost its key, you may remove it's persistent session using the session
</p>
</div><!-- EDIT3 SECTION "Assistance" [819-934] -->
</div><!-- EDIT4 SECTION "Assistance" [1109-1224] -->
<h2 class="sectionedit4" id="developer_corner">Developer corner</h2>
<h2 class="sectionedit5" id="developer_corner">Developer corner</h2>
<div class="level2">
<p>
@ -112,7 +124,7 @@ If a user lost its key, you may remove it's persistent session using the session
If you have another U2F registration interface, you have to populate session (using exported variables) to set these keys:
</p>
<div class="table sectionedit5"><table class="inline table table-bordered table-striped">
<div class="table sectionedit6"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0"> Nom </th><th class="col1"> Value </th>
@ -124,7 +136,7 @@ If you have another U2F registration interface, you have to populate session (us
<tr class="row2 roweven">
<td class="col0"> _u2fUserKey </td><td class="col1"> user key value, base64 encoded </td>
</tr>
</table></div><!-- EDIT5 TABLE [1089-1207] -->
</table></div><!-- EDIT6 TABLE [1379-1497] -->
<p>
@ -132,7 +144,7 @@ Note that both “origin” and “appId” are fixed to portal <abbr title="Uni
</p>
</div><!-- EDIT4 SECTION "Developer corner" [935-] -->
</div><!-- EDIT5 SECTION "Developer corner" [1225-] -->
</div>
</body>
</html>

View File

@ -52,6 +52,7 @@
<ul class="toc">
<li class="level1"><div class="li"><a href="#configuration">Configuration</a></div></li>
<li class="level1"><div class="li"><a href="#security">Sécurité</a></div></li>
<li class="level1"><div class="li"><a href="#rules_and_headers">Rules and headers</a></div></li>
<li class="level1"><div class="li"><a href="#supported_servers">Supported servers</a></div></li>
<li class="level1"><div class="li"><a href="#soaprest_services">SOAP/REST services</a></div></li>
<li class="level1"><div class="li"><a href="#developer_corner">Developer corner</a></div>
@ -83,11 +84,12 @@
<div class="notewarning">Apache-ModPerl is no longer usable since version 2.4 <em>(many segfaults,…)</em>. LLNG doesn't use anymore ModPerl::Registry: all is now handle by FastCGI <em>(portal and manager)</em>.
<p>
<strong>For handlers, it is now recommended to migrate to Nginx !</strong>
<strong>For handlers, it is now recommended to migrate to Nginx</strong>, but Apache-2 is still supported
</p>
</div>
</div><!-- EDIT2 SECTION "Configuration" [163-792] -->
</div><!-- EDIT2 SECTION "Configuration" [163-823] -->
<h2 class="sectionedit3" id="security">Sécurité</h2>
<div class="level2">
@ -104,18 +106,27 @@ LLNG portal now embeds the following features:
</li>
</ul>
</div><!-- EDIT3 SECTION "Security" [793-1360] -->
</div><!-- EDIT3 SECTION "Security" [824-1391] -->
<h2 class="sectionedit4" id="supported_servers">Supported servers</h2>
<h2 class="sectionedit4" id="rules_and_headers">Rules and headers</h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> pseudo variable <code>$ip</code> is replaced by <code><a href="extendedfunctions.html#request_information" class="wikilink1" title="documentation:2.0:extendedfunctions">remote_ip()</a></code> function in <a href="writingrulesand_headers.html" class="wikilink1" title="documentation:2.0:writingrulesand_headers">rules and headers</a>. Note that session variable <code>$ipAddr</code> <em>(remote address seen by portal)</em> is still available</div>
</li>
</ul>
</div><!-- EDIT4 SECTION "Rules and headers" [1392-1677] -->
<h2 class="sectionedit5" id="supported_servers">Supported servers</h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> Apache-1.3 files are not provided now. You can build them yourself by looking at Apache-2 configuration files</div>
</li>
</ul>
</div><!-- EDIT4 SECTION "Supported servers" [1361-1506] -->
</div><!-- EDIT5 SECTION "Supported servers" [1678-1823] -->
<h2 class="sectionedit5" id="soaprest_services">SOAP/REST services</h2>
<h2 class="sectionedit6" id="soaprest_services">SOAP/REST services</h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> SOAP server activation is now split in 2 parameters (configuration/sessions). You must set them else SOAP service will be disabled</div>
@ -126,14 +137,14 @@ LLNG portal now embeds the following features:
</li>
</ul>
</div><!-- EDIT5 SECTION "SOAP/REST services" [1507-1847] -->
</div><!-- EDIT6 SECTION "SOAP/REST services" [1824-2164] -->
<h2 class="sectionedit6" id="developer_corner">Developer corner</h2>
<h2 class="sectionedit7" id="developer_corner">Developer corner</h2>
<div class="level2">
</div><!-- EDIT6 SECTION "Developer corner" [1848-1877] -->
</div><!-- EDIT7 SECTION "Developer corner" [2165-2194] -->
<h3 class="sectionedit7" id="apis">APIs</h3>
<h3 class="sectionedit8" id="apis">APIs</h3>
<div class="level3">
<p>
@ -142,9 +153,9 @@ Portal has now many REST features and includes a plugin <abbr title="Interface d
</p>
</div><!-- EDIT7 SECTION "APIs" [1878-2035] -->
</div><!-- EDIT8 SECTION "APIs" [2195-2352] -->
<h3 class="sectionedit8" id="portal_overview">Portal overview</h3>
<h3 class="sectionedit9" id="portal_overview">Portal overview</h3>
<div class="level3">
<p>
@ -168,14 +179,13 @@ The request is a separated object based on Lemonldap::NG::Portal::Main::Request
</p>
</div><!-- EDIT8 SECTION "Portal overview" [2036-2483] -->
</div><!-- EDIT9 SECTION "Portal overview" [2353-2800] -->
<h3 class="sectionedit9" id="handler">Agent (Handler)</h3>
<h3 class="sectionedit10" id="handler">Agent (Handler)</h3>
<div class="level3">
<div class="noteimportant">Handler libraries have been changed another time. Inheritance is back (like 1.3.3). We are sorry for this new inconvenience.
<div class="noteimportant">Handler libraries have been totally rewritten. If you've made custom handlers, they must be rewritten. See <a href="customhandlers.html" class="wikilink1" title="documentation:2.0:customhandlers">customhandlers</a>
</div>
</div><!-- EDIT9 SECTION "Handler" [2484-] -->
</div><!-- EDIT10 SECTION "Handler" [2801-] -->
</div>
</body>
</html>

View File

@ -11,7 +11,7 @@
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="documentation,2.0,writingrulesand_headers"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="writingrulesand_headers.html"/>
@ -43,7 +43,20 @@
</head>
<body>
<div class="dokuwiki export container">
<div class="dokuwiki export container"><!-- TOC START -->
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#rules">Règles</a></div></li>
<li class="level1"><div class="li"><a href="#headers">En-têtes</a></div></li>
<li class="level1"><div class="li"><a href="#available_functions">Available functions</a></div></li>
</ul>
</div>
</div><!-- TOC END -->
<h1 class="sectionedit1" id="writing_rules_and_headers">Écrire les règles et en-têtes</h1>
<div class="level1">
@ -127,16 +140,19 @@ Les règles peuvent également être utilisées pour intercepter les <abbr title
<td class="col0 leftalign"> Déconnecte l'utilisateur de Lemonldap::NG le redirige vers http://intranet/ </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_sso&nbsp;http://intranet/ </td>
</tr>
<tr class="row2 roweven">
<td class="col0 leftalign"> Déconnecte l'utilisateur de l'application courante et le redirige vers le menu </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_app&nbsp;https://auth.example.com/ </td>
<td class="col0 leftalign"> Logout user from current application and redirect it to the menu <strong><em>(Apache only)</em></strong> </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_app&nbsp;https://auth.example.com/ </td>
</tr>
<tr class="row3 rowodd">
<td class="col0 leftalign"> Déconnecte l'utilisateur de l'application courante et de Lemonldap::NG le redirige vers http://intranet/ </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_app_sso&nbsp;http://intranet/ </td>
<td class="col0"> Logout user from current application and from Lemonldap::NG and redirect it to http://intranet/ <strong><em>(Apache only)</em></strong> </td><td class="col1 centeralign"> ^/index.php\?logout </td><td class="col2 centeralign"> logout_app_sso&nbsp;http://intranet/ </td>
</tr>
</table></div><!-- EDIT4 TABLE [2052-2657] -->
<div class="notetip">Par défaut, l'utilisateur est redirigé vers le portail si aucune <abbr title="Uniform Resource Locator">URL</abbr> n'est définie ou vers l'<abbr title="Uniform Resource Locator">URL</abbr> indiquée sinon.
</div><div class="noteimportant">Seule l'application est concernée par les cibles logout_app*. Faire attention avec certaines applications qui ne vérifient pas les en-têtes Lemonldap::NG après avoir créé leurs propres cookies. Dans ce cas, il faut rediriger les utilisateurs vers une page <abbr title="HyperText Markup Language">HTML</abbr> qui explique qu'il est préférable de clore son navigateur après déconnexion.
</table></div><!-- EDIT4 TABLE [2052-2700] -->
<p>
Par défaut, l'utilisateur est redirigé vers le portail si aucune <abbr title="Uniform Resource Locator">URL</abbr> n'est définie ou vers l'<abbr title="Uniform Resource Locator">URL</abbr> indiquée sinon.
</p>
<div class="noteimportant">Seule l'application est concernée par les cibles logout_app*. Faire attention avec certaines applications qui ne vérifient pas les en-têtes Lemonldap::NG après avoir créé leurs propres cookies. Dans ce cas, il faut rediriger les utilisateurs vers une page <abbr title="HyperText Markup Language">HTML</abbr> qui explique qu'il est préférable de clore son navigateur après déconnexion.
</div>
</div><!-- EDIT2 SECTION "Rules" [493-3085] -->
</div><!-- EDIT2 SECTION "Rules" [493-3111] -->
<h2 class="sectionedit5" id="headers">En-têtes</h2>
<div class="level2">
@ -166,7 +182,7 @@ Exemples :
<tr class="row4 roweven">
<td class="col0 leftalign"> Done une valeur non-ascii </td><td class="col1 centeralign"> Display-Name </td><td class="col2 centeralign"> encode_base64($givenName."&nbsp;".$surName) </td>
</tr>
</table></div><!-- EDIT6 TABLE [3269-3602] -->
</table></div><!-- EDIT6 TABLE [3295-3628] -->
<p>
Comme indiqué au <a href="performances.html#handler_performance" class="wikilink1" title="documentation:2.0:performances">chapître performances</a>, on peut utiliser des macros, macros locales,…
@ -182,7 +198,24 @@ Comme indiqué au <a href="performances.html#handler_performance" class="wikilin
<pre class="code">Session-ID =&gt; $_session_id</pre>
</div>
</div><!-- EDIT5 SECTION "Headers" [3086-] -->
</div><!-- EDIT5 SECTION "Headers" [3112-4161] -->
<h2 class="sectionedit7" id="available_functions">Available functions</h2>
<div class="level2">
<p>
In addition to macros and name, you can use some functions in rules and headers:
</p>
<ul>
<li class="level1"><div class="li"> <a href="extendedfunctions.html" class="wikilink1" title="documentation:2.0:extendedfunctions">LLNG extended functions</a></div>
</li>
<li class="level1"><div class="li"> <a href="customfunctions.html" class="wikilink1" title="documentation:2.0:customfunctions">Your custom functions</a></div>
</li>
</ul>
</div><!-- EDIT7 SECTION "Available functions" [4162-] -->
</div>
</body>
</html>