File: upgrade.html

package info (click to toggle)
lemonldap-ng 1.9.7-3%2Bdeb9u2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 39,024 kB
  • sloc: perl: 37,552; makefile: 922; sh: 472; sql: 5
file content (262 lines) | stat: -rw-r--r-- 12,782 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
  <meta charset="utf-8" />
  <title>documentation:1.9:upgrade</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="documentation,1.9,upgrade"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="upgrade.html"/>
<link rel="contents" href="upgrade.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:1.9';var JSINFO = {"id":"documentation:1.9:upgrade","namespace":"documentation:1.9"};
/*!]]>*/</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">
<!-- 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="#json_serialization">JSON serialization</a></div></li>
<li class="level1"><div class="li"><a href="#avoid_using_lmconfigeditor_during_upgrade">Avoid using lmConfigEditor during upgrade</a></div></li>
<li class="level1"><div class="li"><a href="#migration_of_old_configuration">Migration of old configuration</a></div></li>
<li class="level1"><div class="li"><a href="#portal_autocomplete_configuration">Portal autocomplete configuration</a></div></li>
<li class="level1"><div class="li"><a href="#support_for_centosrhel_5_and_centosrhel_6_dropped">Support for CentOS/RHEL 5 and CentOS/RHEL 6 dropped</a></div></li>
<li class="level1"><div class="li"><a href="#manager_components_protection">Manager components protection</a></div></li>
<li class="level1"><div class="li"><a href="#ajax_unauthenticated_requests_in_handler">AJAX unauthenticated requests in handler</a></div></li>
<li class="level1"><div class="li"><a href="#persistent_sessions">Persistent sessions</a></div></li>
<li class="level1"><div class="li"><a href="#multi_backend">Multi backend</a></div></li>
<li class="level1"><div class="li"><a href="#specific_handler">Specific Handler</a></div></li>
<li class="level1"><div class="li"><a href="#saml_conditions_checking">SAML conditions checking</a></div></li>
</ul>
</div>
</div>
<!-- TOC END -->

<h1 class="sectionedit1" id="upgrade_from_14_to_19">Upgrade from 1.4 to 1.9</h1>
<div class="level1">

</div>
<!-- EDIT1 SECTION "Upgrade from 1.4 to 1.9" [1-39] -->
<h2 class="sectionedit2" id="json_serialization">JSON serialization</h2>
<div class="level2">

<p>
From now, LemonLDAP::NG uses JSON serialization to store configuration and sessions instead of <code>Storable::nfreeze</code> Perl function. This permits to have heterogenous servers connected to the same <abbr title="LemonLDAP::NG">LL::NG</abbr> organization <em>(32/64 bits or different Perl versions)</em>. Old format still works but:
</p>
<ul>
<li class="level1"><div class="li"> configuration backends: new format is applied at first configuration save,</div>
</li>
<li class="level1"><div class="li"> sessions storages: new format is applied for each new session or when updating an existing session. You can force LemonLDAP::NG to keep the old serialization method by setting <code>useStorable</code> to 1 in sessions backend options if you have some custom hooks.</div>
</li>
</ul>
<div class="noteimportant">If you have more than one server and don&#039;t want to stop the <abbr title="Single Sign On">SSO</abbr> service, start upgrading in the following order:<ul>
<li class="level1"><div class="li"> servers that have only handlers;</div>
</li>
<li class="level1"><div class="li"> portal servers (all together if your load balancer doesn&#039;t keep state by user or client <abbr title="Internet Protocol">IP</abbr> and if users use the menu);</div>
</li>
<li class="level1"><div class="li"> manager server</div>
</li>
</ul>

</div>
</div>
<!-- EDIT2 SECTION "JSON serialization" [40-1018] -->
<h2 class="sectionedit3" id="avoid_using_lmconfigeditor_during_upgrade">Avoid using lmConfigEditor during upgrade</h2>
<div class="level2">

<p>
Some attributes may be removed during each upgrade. Since 1.9, saving is rejected if an attribute isn&#039;t declared in manager structure. So don&#039;t use lmConfigEditor during upgrade unless you know exactly which changes have been done.
</p>

</div>
<!-- EDIT3 SECTION "Avoid using lmConfigEditor during upgrade" [1019-1306] -->
<h2 class="sectionedit4" id="migration_of_old_configuration">Migration of old configuration</h2>
<div class="level2">

<p>
Old configuration format is compatible with current version. It will be converted to new format at first save. But you need to check all non-<abbr title="American Standard Code for Information Interchange">ASCII</abbr> values that may have been registered with ISO instead of Unicode. You must convert them before saving the new configuration.
</p>

</div>
<!-- EDIT4 SECTION "Migration of old configuration" [1307-1623] -->
<h2 class="sectionedit5" id="portal_autocomplete_configuration">Portal autocomplete configuration</h2>
<div class="level2">

<p>
Modern browsers do not take into account the autocomplete attribute in password fields anymore. This means even if you don&#039;t want users to remember the password, the browser will still propose it.
</p>

<p>
As it was not used anymore, this option is now removed. See <a href="https://jira.ow2.org/browse/LEMONLDAP-824" class="urlextern" title="https://jira.ow2.org/browse/LEMONLDAP-824"  rel="nofollow">https://jira.ow2.org/browse/LEMONLDAP-824</a> for more details.
</p>

</div>
<!-- EDIT5 SECTION "Portal autocomplete configuration" [1624-1993] -->
<h2 class="sectionedit6" id="support_for_centosrhel_5_and_centosrhel_6_dropped">Support for CentOS/RHEL 5 and CentOS/RHEL 6 dropped</h2>
<div class="level2">

<p>
Due to a too old Perl version and some missing modules, <abbr title="LemonLDAP::NG">LL::NG</abbr> is no more available for CentOS/RHEL 5 and 6. You need CentOS/RHEL 7 or a Debian based box to run this version of <abbr title="LemonLDAP::NG">LL::NG</abbr>.
</p>

</div>
<!-- EDIT6 SECTION "Support for CentOS/RHEL 5 and CentOS/RHEL 6 dropped" [1994-2244] -->
<h2 class="sectionedit7" id="manager_components_protection">Manager components protection</h2>
<div class="level2">

<p>
You can no more set up a different <code>protection</code> parameter for sessions explorer and configuration management. The <code>protection</code> is used for all components, but can use access rules to manage authorizations between configuration, notifications and sessions:
</p>
<pre class="code perl"><span class="sy0">^</span><span class="co2">/(manager\.html|conf/</span><span class="br0">&#41;</span> <span class="sy0">=&gt;</span> <span class="re0">$uid</span> <span class="kw1">eq</span> <span class="st0">&quot;dwho&quot;</span>
default <span class="sy0">=&gt;</span> <span class="re0">$uid</span> <span class="kw1">eq</span> <span class="st0">&quot;dwho&quot;</span> <span class="kw1">or</span> <span class="re0">$uid</span> <span class="kw1">eq</span> <span class="st0">&quot;rtyler&quot;</span> </pre>

</div>
<!-- EDIT7 SECTION "Manager components protection" [2245-2657] -->
<h2 class="sectionedit8" id="ajax_unauthenticated_requests_in_handler">AJAX unauthenticated requests in handler</h2>
<div class="level2">

<p>
To request for authentication, handlers sent a 302 HTTP code, then portal sent the <abbr title="HyperText Markup Language">HTML</abbr> form even if request was an Ajax one. From now, after being redirected by the Handler, a 401 code will be sent by the portal with a <code>WWW-Authenticate</code> header containing “<abbr title="Single Sign On">SSO</abbr> &lt;portal-<abbr title="Uniform Resource Locator">URL</abbr>&gt;”. This is a little HTTP protocol hook created because browsers follow redirection transparently and we have to respond to JSON queries by JSON.
</p>

<p>
If you want to keep old behavior, set <code>noAjaxHook</code> to 1 (in General Parameters → Advanced → Portal redirections → Keep redirections for Ajax).
</p>

</div>
<!-- EDIT8 SECTION "AJAX unauthenticated requests in handler" [2658-3282] -->
<h2 class="sectionedit9" id="persistent_sessions">Persistent sessions</h2>
<div class="level2">

<p>
Persistent sessions have a new attributes:
</p>
<ul>
<li class="level1"><div class="li"> <code>_session_uid</code>: real user identifier</div>
</li>
<li class="level1"><div class="li"> <code>_utime</code>: creation timestamp</div>
</li>
</ul>

<p>
These attributes allow to browse them in the sessions explorer. Old persistent sessions will automatically get these new attributes at user connexion.
</p>

</div>
<!-- EDIT9 SECTION "Persistent sessions" [3283-3589] -->
<h2 class="sectionedit10" id="multi_backend">Multi backend</h2>
<div class="level2">

<p>
The <a href="authmulti.html" class="wikilink1" title="documentation:1.9:authmulti">Multi backend</a> configuration has changed. Now the stacks are defined in separate attributes:
</p>
<ul>
<li class="level1"><div class="li"> multiAuthStack</div>
</li>
<li class="level1"><div class="li"> multiUserDBStack</div>
</li>
</ul>

<p>
So an old configuration like this:
</p>
<pre class="file">authentication = Multi LDAP;DBI
userDB = Multi LDAP;DBI</pre>

<p>
Must be replaced by:
</p>
<pre class="file">authentication = Multi
userDB = Multi
multiAuthStack = LDAP;DBI
multiUserDBStack = LDAP;DBI</pre>

</div>
<!-- EDIT10 SECTION "Multi backend" [3590-4003] -->
<h2 class="sectionedit11" id="specific_handler">Specific Handler</h2>
<div class="level2">

<p>
Handler <abbr title="Application Programming Interface">API</abbr> has changed and specific Handlers have been rewritten. They still work but their configuration must be set in <code>lemonldap-ng.ini</code> file instead of Manager. More details:
</p>
<ul>
<li class="level1"><div class="li"> <a href="applications/zimbra.html" class="wikilink1" title="documentation:1.9:applications:zimbra">Zimbra</a></div>
</li>
<li class="level1"><div class="li"> <a href="securetoken.html" class="wikilink1" title="documentation:1.9:securetoken">Secure Token</a></div>
</li>
<li class="level1"><div class="li"> <a href="handlerauthbasic.html" class="wikilink1" title="documentation:1.9:handlerauthbasic">Auth Basic</a></div>
</li>
</ul>

<p>
Note that some specific Handlers have been removed, you will not be able to use them anymore:
</p>
<ul>
<li class="level1"><div class="li"> Sympa AutoLogin</div>
</li>
<li class="level1"><div class="li"> UpdateCookie</div>
</li>
<li class="level1"><div class="li"> Internal Proxy</div>
</li>
</ul>

</div>
<!-- EDIT11 SECTION "Specific Handler" [4004-4473] -->
<h2 class="sectionedit12" id="saml_conditions_checking">SAML conditions checking</h2>
<div class="level2">

<p>
<div class="badge">Since 1.9.6</div>
</p>

<p>
The option to disable conditions checking in <abbr title="Security Assertion Markup Language">SAML</abbr> response has been split into:
</p>
<ul>
<li class="level1"><div class="li"> Time conditions checking</div>
</li>
<li class="level1"><div class="li"> Audience conditions checking</div>
</li>
</ul>

<p>
By default, conditions are checked. Set them both to Off if you need to deactivate conditions checking.
</p>

</div>
<!-- EDIT12 SECTION "SAML conditions checking" [4474-] --></div>
</body>
</html>