lemonldap-ng/doc/pages/documentation/current/cda.html
2019-09-23 22:41:16 +02:00

126 lines
6.2 KiB
HTML

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<title>documentation:2.0:cda</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="documentation,2.0,cda"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="cda.html"/>
<link rel="contents" href="cda.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:cda","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="/static/bwr/jquery-ui/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.js"></script>
<!-- //endif -->
</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="#presentation">Presentation</a></div></li>
<li class="level1"><div class="li"><a href="#configuration">Configuration</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#handlers">Handlers</a></div></li>
</ul></li>
</ul>
</div>
</div>
<!-- TOC END -->
<h1 class="sectionedit1" id="cross_domain_authentication">Cross Domain Authentication</h1>
<div class="level1">
</div>
<!-- EDIT1 SECTION "Cross Domain Authentication" [1-43] -->
<h2 class="sectionedit2" id="presentation">Presentation</h2>
<div class="level2">
</div>
<!-- EDIT3 PLUGIN_INCLUDE_START_NOREDIRECT "documentation:presentation" [0-] --><div class="plugin_include_content plugin_include__documentation:presentation">
<div class="level3">
<div class="noteclassic">For security reason, a cookie provided for a domain cannot be sent to another domain. To extend <abbr title="Single Sign On">SSO</abbr> on several domains, a cross-domain mechanism is implemented in LemonLDAP::NG.
</div><ol>
<li class="level1"><div class="li"> User owns <a href="documentation/latest/ssocookie.html#sso_cookie" class="wikilink1" title="documentation:latest:ssocookie">SSO cookies</a> on the main domain (see <a href="documentation/presentation.html#login" class="wikilink1" title="documentation:presentation">Login kinematics</a>)</div>
</li>
<li class="level1"><div class="li"> User tries to access a protected application in a different domain</div>
</li>
<li class="level1"><div class="li"> Handler does not see <a href="documentation/latest/ssocookie.html#sso_cookie" class="wikilink1" title="documentation:latest:ssocookie">SSO cookies</a> (because it is not in main domain) and redirects user on Portal</div>
</li>
<li class="level1"><div class="li"> Portal recognizes the user with its <a href="documentation/latest/ssocookie.html#sso_cookie" class="wikilink1" title="documentation:latest:ssocookie">SSO cookies</a>, and see he is coming from a different domain</div>
</li>
<li class="level1"><div class="li"> Portal redirects user on protected application with a token as <abbr title="Uniform Resource Locator">URL</abbr> parameter. The token is linked to a session which contains the real session ID</div>
</li>
<li class="level1"><div class="li"> Handler detects <abbr title="Uniform Resource Locator">URL</abbr> parameter, gets the real session ID, delete the token session and creates a <a href="documentation/latest/ssocookie.html#sso_cookie" class="wikilink1" title="documentation:latest:ssocookie">SSO cookies</a> on its domain, with session ID as value</div>
</li>
</ol>
</div>
<!-- EDIT4 PLUGIN_INCLUDE_END "documentation:presentation" [0-] --></div>
<div class="level2">
</div>
<!-- EDIT2 SECTION "Presentation" [44-138] -->
<h2 class="sectionedit5" id="configuration">Configuration</h2>
<div class="level2">
<p>
Go in Manager, <code>General Parameters</code> » <code>Cookies</code> » <code>Multiple domains</code> and set to <code>On</code>.
</p>
<p>
To use this feature only locally, edit <code>lemonldap-ng.ini</code> in section [all]:
</p>
<pre class="code file ini"><span class="re0"><span class="br0">&#91;</span>all<span class="br0">&#93;</span></span>
<span class="re1">cda</span> <span class="sy0">=</span><span class="re2"> 1</span></pre>
<div class="noteimportant">If your handler is being served by Nginx, you have to uncomment the following lines in your nginx configuration file:
<pre class="code"># If CDA is used, uncomment this
auth_request_set $cookie_value $upstream_http_set_cookie;
add_header Set-Cookie $cookie_value;</pre>
</div>
</div>
<!-- EDIT5 SECTION "Configuration" [139-662] -->
<h3 class="sectionedit6" id="handlers">Handlers</h3>
<div class="level3">
<p>
Choose &quot;<abbr title="Cross Domain Authentication">CDA</abbr>&quot; as type for each virtualHost concerned by <abbr title="Cross Domain Authentication">CDA</abbr> <em>(ie not in main domain)</em>.
</p>
</div>
<!-- EDIT6 SECTION "Handlers" [663-] --></div>
</body>
</html>