Last modified by Agnease on 2026/05/25 12:52

From version 8.4
edited by Agnease
on 2026/05/25 12:45
Change comment: There is no comment for this version
To version 8.10
edited by Agnease
on 2026/05/25 12:52
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -8,14 +8,11 @@
8 8   <i class="fa fa-lock" aria-hidden="true"></i>
9 9   XWiki authentication and access control
10 10   </div>
11 -
12 12   <h1 id="hero-title">Secure XWiki access, authentication and permissions</h1>
13 -
14 14   <p class="lead">
15 15   Secure XWiki access with LDAP, Active Directory, SSO, OIDC, SAML, MFA, user synchronization,
16 16   group management and maintainable permission policies.
17 17   </p>
18 -
19 19   <div class="hero-actions">
20 20   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Discuss access control needs</a>
21 21   <a class="btn btn-secondary" href="#access-control-process">See the approach</a>
... ... @@ -82,131 +82,95 @@
82 82   </section>
83 83  
84 84   ## COMMON NEEDS
82 + #set ($accessNeedsItems = [{
83 + 'title': 'LDAP and Active Directory integration',
84 + 'icon': 'address-book',
85 + 'content': 'Configuration, troubleshooting and optimization of LDAP/AD authentication, user creation and group synchronization.'
86 + },{
87 + 'title': 'SSO, OIDC and SAML',
88 + 'icon': 'sign-in',
89 + 'content': 'Integration with identity providers, single sign-on flows and authentication extensions used in enterprise environments.'
90 + },{
91 + 'title': 'Multi-factor authentication',
92 + 'icon': 'shield',
93 + 'content': 'MFA setup, licensing, configuration, troubleshooting and review of authentication-related user experience.'
94 + },{
95 + 'title': 'User and group synchronization',
96 + 'icon': 'users',
97 + 'content': 'Review of synchronization strategy, group mapping, large-directory behavior and performance implications.'
98 + },{
99 + 'title': 'Rights model review',
100 + 'icon': 'key',
101 + 'content': 'Review and cleanup of space, page, group and application permissions to reduce confusion and access risks.'
102 + },{
103 + 'title': 'Access-related troubleshooting',
104 + 'icon': 'warning',
105 + 'content': 'Investigation of login failures, missing users, group sync issues, unexpected permissions or denied access.'
106 + }])
107 +
85 85   <section class="services" aria-labelledby="access-needs-title">
86 86   <div class="container">
87 87   <h2 id="access-needs-title">Common authentication and access control needs</h2>
88 -
89 89   <p class="section-intro">
90 90   Authentication and permissions often become more complex as XWiki grows. The right setup depends on your
91 91   identity provider, group structure, security expectations, user volume and internal administration model.
92 92   </p>
93 -
94 94   <div class="services-grid">
95 - <article class="service">
96 - <div class="service-icon" aria-hidden="true">
97 - <i class="fa fa-address-book"></i>
98 - </div>
99 - <div class="service-body">
100 - <h4>LDAP and Active Directory integration</h4>
101 - <p>
102 - Configuration, troubleshooting and optimization of LDAP/AD authentication, user creation and group synchronization.
103 - </p>
104 - </div>
105 - </article>
106 -
107 - <article class="service">
108 - <div class="service-icon" aria-hidden="true">
109 - <i class="fa fa-sign-in"></i>
110 - </div>
111 - <div class="service-body">
112 - <h4>SSO, OIDC and SAML</h4>
113 - <p>
114 - Integration with identity providers, single sign-on flows and authentication extensions used in enterprise environments.
115 - </p>
116 - </div>
117 - </article>
118 -
119 - <article class="service">
120 - <div class="service-icon" aria-hidden="true">
121 - <i class="fa fa-shield"></i>
122 - </div>
123 - <div class="service-body">
124 - <h4>Multi-factor authentication</h4>
125 - <p>
126 - MFA setup, licensing, configuration, troubleshooting and review of authentication-related user experience.
127 - </p>
128 - </div>
129 - </article>
130 -
131 - <article class="service">
132 - <div class="service-icon" aria-hidden="true">
133 - <i class="fa fa-users"></i>
134 - </div>
135 - <div class="service-body">
136 - <h4>User and group synchronization</h4>
137 - <p>
138 - Review of synchronization strategy, group mapping, large-directory behavior and performance implications.
139 - </p>
140 - </div>
141 - </article>
142 -
143 - <article class="service">
144 - <div class="service-icon" aria-hidden="true">
145 - <i class="fa fa-key"></i>
146 - </div>
147 - <div class="service-body">
148 - <h4>Rights model review</h4>
149 - <p>
150 - Review and cleanup of space, page, group and application permissions to reduce confusion and access risks.
151 - </p>
152 - </div>
153 - </article>
154 -
155 - <article class="service">
156 - <div class="service-icon" aria-hidden="true">
157 - <i class="fa fa-warning"></i>
158 - </div>
159 - <div class="service-body">
160 - <h4>Access-related troubleshooting</h4>
161 - <p>
162 - Investigation of login failures, missing users, group sync issues, unexpected permissions or denied access.
163 - </p>
164 - </div>
165 - </article>
116 + #foreach ($entry in $accessNeedsItems)
117 + <article class="service">
118 + <div class="service-icon" aria-hidden="true">
119 + <i class="fa fa-$entry.icon"></i>
120 + </div>
121 + <div class="service-body">
122 + <h4>$entry.title</h4>
123 + <p>$entry.content</p>
124 + </div>
125 + </article>
126 + #end
166 166   </div>
167 167   </div>
168 168   </section>
169 169  
170 - ## APPROACH
131 + ## ACCESS CONTROL PROCESS
132 + #set ($accessProcessItems = [{
133 + 'title': 'Review the current access setup',
134 + 'content': 'Authentication method, user directory, groups, synchronization behavior, rights configuration and known issues.'
135 + },{
136 + 'title': 'Clarify the target model',
137 + 'content': 'Expected login flow, user provisioning, group mapping, administration model and permission boundaries.'
138 + },{
139 + 'title': 'Validate configuration safely',
140 + 'content': 'Test authentication, synchronization and rights behavior before applying changes to production when needed.'
141 + },{
142 + 'title': 'Apply controlled changes',
143 + 'content': 'Update configuration, extensions, rights or group mappings with attention to rollback and administrator access.'
144 + },{
145 + 'title': 'Document the result',
146 + 'content': 'Provide practical notes about the final configuration, assumptions, risks and future maintenance actions.'
147 + }])
148 +
171 171   <section id="access-control-process" class="split-section" aria-labelledby="process-title">
172 172   <div class="container">
173 173   <div class="split-grid">
174 174   <div class="split-copy">
175 175   <h2 id="process-title">A practical access control approach</h2>
176 -
177 177   <p>
178 178   Authentication and permissions should be handled with care because small configuration mistakes can affect
179 179   access to the entire platform. The goal is to understand the current setup, clarify the expected access
180 180   model and apply changes in a controlled way.
181 181   </p>
182 -
183 183   <p>
184 184   When possible, authentication and rights changes should first be validated in a staging or temporary clone
185 185   of the instance, especially when directory synchronization, group mappings, SSO or custom rights logic are involved.
186 186   </p>
187 187   </div>
188 -
189 189   <ol class="process-list">
190 - <li>
191 - <strong>Review the current access setup</strong>
192 - Authentication method, user directory, groups, synchronization behavior, rights configuration and known issues.
193 - </li>
194 - <li>
195 - <strong>Clarify the target model</strong>
196 - Expected login flow, user provisioning, group mapping, administration model and permission boundaries.
197 - </li>
198 - <li>
199 - <strong>Validate configuration safely</strong>
200 - Test authentication, synchronization and rights behavior before applying changes to production when needed.
201 - </li>
202 - <li>
203 - <strong>Apply controlled changes</strong>
204 - Update configuration, extensions, rights or group mappings with attention to rollback and administrator access.
205 - </li>
206 - <li>
207 - <strong>Document the result</strong>
208 - Provide practical notes about the final configuration, assumptions, risks and future maintenance actions.
209 - </li>
165 + #foreach ($entry in $accessProcessItems)
166 + <li>
167 + <strong>$entry.title</strong>
168 + $entry.content
169 + </li>
170 + #end
210 210   </ol>
211 211   </div>
212 212   </div>
... ... @@ -213,146 +213,108 @@
213 213   </section>
214 214  
215 215   ## SPECIFIC AREAS
177 + #set ($accessAreasItems = [{
178 + 'title': 'Directory configuration',
179 + 'icon': 'server',
180 + 'content': 'LDAP/AD connection settings, bind users, search bases, user filters, group filters and synchronization behavior.'
181 + },{
182 + 'title': 'Group mapping',
183 + 'icon': 'random',
184 + 'content': 'Mapping external groups into XWiki groups while avoiding unnecessary complexity and performance issues.'
185 + },{
186 + 'title': 'Permission structure',
187 + 'icon': 'lock',
188 + 'content': 'Space and page rights, inheritance, administrative access, edit rights, view rights and application permissions.'
189 + },{
190 + 'title': 'Security-sensitive rights',
191 + 'icon': 'user-secret',
192 + 'content': 'Review of powerful rights such as admin, programming, script and edit rights where they affect security.'
193 + }])
194 +
216 216   <section aria-labelledby="areas-title">
217 217   <div class="container">
218 218   <h2 id="areas-title">Specific areas we can review</h2>
219 -
220 220   <p class="section-intro">
221 221   Access control in XWiki is not limited to the login page. It includes the full chain from identity provider
222 222   to user synchronization, group membership, page permissions and application-level rules.
223 223   </p>
224 -
225 225   <div class="widgets">
226 - <article class="widget">
227 - <div class="icon" aria-hidden="true">
228 - <i class="fa fa-server"></i>
229 - <h4>Directory<br />configuration</h4>
230 - </div>
231 - <p>
232 - LDAP/AD connection settings, bind users, search bases, user filters, group filters and synchronization behavior.
233 - </p>
234 - </article>
235 -
236 - <article class="widget">
237 - <div class="icon" aria-hidden="true">
238 - <i class="fa fa-random"></i>
239 - <h4>Group<br />mapping</h4>
240 - </div>
241 - <p>
242 - Mapping external groups into XWiki groups while avoiding unnecessary complexity and performance issues.
243 - </p>
244 - </article>
245 -
246 - <article class="widget">
247 - <div class="icon" aria-hidden="true">
248 - <i class="fa fa-lock"></i>
249 - <h4>Permission<br />structure</h4>
250 - </div>
251 - <p>
252 - Space and page rights, inheritance, administrative access, edit rights, view rights and application permissions.
253 - </p>
254 - </article>
255 -
256 - <article class="widget">
257 - <div class="icon" aria-hidden="true">
258 - <i class="fa fa-user-secret"></i>
259 - <h4>Security<br />sensitive rights</h4>
260 - </div>
261 - <p>
262 - Review of powerful rights such as admin, programming, script and edit rights where they affect security.
263 - </p>
264 - </article>
203 + #foreach ($entry in $accessAreasItems)
204 + <article class="widget">
205 + <div class="icon" aria-hidden="true">
206 + <i class="fa fa-$entry.icon"></i>
207 + <h4>$entry.title</h4>
208 + </div>
209 + <p>$entry.content</p>
210 + </article>
211 + #end
265 265   </div>
266 266   </div>
267 267   </section>
268 268  
269 269   ## IMPORTANT CONSIDERATIONS
217 + #set ($accessConsiderationItems = [{
218 + 'title': 'Large directory performance',
219 + 'icon': 'tachometer',
220 + 'content': 'Large numbers of users and groups can create synchronization, login-time or permission-management challenges.'
221 + },{
222 + 'title': 'Visibility of groups and users',
223 + 'icon': 'eye',
224 + 'content': 'Group display, permission screens and administration workflows should remain usable even with many directory groups.'
225 + },{
226 + 'title': 'User provisioning strategy',
227 + 'icon': 'user-plus',
228 + 'content': 'Decide when users are created, how profiles are updated and how synchronization behaves after first login.'
229 + },{
230 + 'title': 'Administrator access safety',
231 + 'icon': 'unlock-alt',
232 + 'content': 'Authentication changes should preserve reliable administrator access and avoid accidental lockouts.'
233 + },{
234 + 'title': 'Upgrade compatibility',
235 + 'icon': 'refresh',
236 + 'content': 'Authentication extensions, configuration keys and security behavior should be reviewed during XWiki upgrades.'
237 + },{
238 + 'title': 'Documentation and handover',
239 + 'icon': 'file-text-o',
240 + 'content': 'Access rules, configuration decisions and operational assumptions should be documented for future maintenance.'
241 + }])
242 +
270 270   <section class="services" aria-labelledby="considerations-title">
271 271   <div class="container">
272 272   <h2 id="considerations-title">Important considerations</h2>
273 -
274 274   <p class="section-intro">
275 275   Authentication and access control should be designed for both security and usability. A setup that is too
276 276   permissive creates risk, while a setup that is too complex becomes hard to operate and troubleshoot.
277 277   </p>
278 -
279 279   <div class="services-grid">
280 - <article class="service">
281 - <div class="service-icon" aria-hidden="true">
282 - <i class="fa fa-tachometer"></i>
283 - </div>
284 - <div class="service-body">
285 - <h4>Large directory performance</h4>
286 - <p>
287 - Large numbers of users and groups can create synchronization, login-time or permission-management challenges.
288 - </p>
289 - </div>
290 - </article>
291 -
292 - <article class="service">
293 - <div class="service-icon" aria-hidden="true">
294 - <i class="fa fa-eye"></i>
295 - </div>
296 - <div class="service-body">
297 - <h4>Visibility of groups and users</h4>
298 - <p>
299 - Group display, permission screens and administration workflows should remain usable even with many directory groups.
300 - </p>
301 - </div>
302 - </article>
303 -
304 - <article class="service">
305 - <div class="service-icon" aria-hidden="true">
306 - <i class="fa fa-user-plus"></i>
307 - </div>
308 - <div class="service-body">
309 - <h4>User provisioning strategy</h4>
310 - <p>
311 - Decide when users are created, how profiles are updated and how synchronization behaves after first login.
312 - </p>
313 - </div>
314 - </article>
315 -
316 - <article class="service">
317 - <div class="service-icon" aria-hidden="true">
318 - <i class="fa fa-unlock-alt"></i>
319 - </div>
320 - <div class="service-body">
321 - <h4>Administrator access safety</h4>
322 - <p>
323 - Authentication changes should preserve reliable administrator access and avoid accidental lockouts.
324 - </p>
325 - </div>
326 - </article>
327 -
328 - <article class="service">
329 - <div class="service-icon" aria-hidden="true">
330 - <i class="fa fa-refresh"></i>
331 - </div>
332 - <div class="service-body">
333 - <h4>Upgrade compatibility</h4>
334 - <p>
335 - Authentication extensions, configuration keys and security behavior should be reviewed during XWiki upgrades.
336 - </p>
337 - </div>
338 - </article>
339 -
340 - <article class="service">
341 - <div class="service-icon" aria-hidden="true">
342 - <i class="fa fa-file-text-o"></i>
343 - </div>
344 - <div class="service-body">
345 - <h4>Documentation and handover</h4>
346 - <p>
347 - Access rules, configuration decisions and operational assumptions should be documented for future maintenance.
348 - </p>
349 - </div>
350 - </article>
251 + #foreach ($entry in $accessConsiderationItems)
252 + <article class="service">
253 + <div class="service-icon" aria-hidden="true">
254 + <i class="fa fa-$entry.icon"></i>
255 + </div>
256 + <div class="service-body">
257 + <h4>$entry.title</h4>
258 + <p>$entry.content</p>
259 + </div>
260 + </article>
261 + #end
351 351   </div>
352 352   </div>
353 353   </section>
354 354  
355 355   ## RELATED SERVICES
267 + #set ($relatedServiceItems = [{
268 + 'title': 'XWiki Support & Maintenance',
269 + 'url': 'services.xwiki-maintenance-support',
270 + 'content': 'Ongoing support for production environments, including troubleshooting, maintenance planning and operational review.',
271 + 'linkLabel': 'View support services'
272 + },{
273 + 'title': 'XWiki Security Review',
274 + 'url': 'services.xwiki-security-review',
275 + 'content': 'Security-aware review of versions, extensions, rights, scripting, authentication and upgrade exposure.',
276 + 'linkLabel': 'View security review'
277 + }])
278 +
356 356   <section class="resource-strip" aria-labelledby="related-title">
357 357   <div class="container">
358 358   <h2 id="related-title">Related XWiki services</h2>
... ... @@ -362,21 +362,13 @@
362 362   </p>
363 363  
364 364   <div class="resource-grid">
365 - <article class="resource-card">
366 - <h4>XWiki Support &amp; Maintenance</h4>
367 - <p>
368 - Ongoing support for production environments, including troubleshooting, maintenance planning and operational review.
369 - </p>
370 - <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
371 - </article>
372 -
373 - <article class="resource-card">
374 - <h4>XWiki Security Review</h4>
375 - <p>
376 - Security-aware review of versions, extensions, rights, scripting, authentication and upgrade exposure.
377 - </p>
378 - <a href="$xwiki.getURL('services.xwiki-security-review')">View security review</a>
379 - </article>
288 + #foreach ($entry in $relatedServiceItems)
289 + <article class="resource-card">
290 + <h4>$entry.title</h4>
291 + <p>$entry.content</p>
292 + <a href="$xwiki.getURL($entry.url)">$entry.linkLabel</a>
293 + </article>
294 + #end
380 380   </div>
381 381   </div>
382 382   </section>