Last modified by Agnease on 2026/06/29 13:22

From version 23.11
edited by Agnease
on 2026/06/24 15:58
Change comment: There is no comment for this version
To version 1.5
edited by Agnease
on 2026/05/12 19:53
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -XWiki Multi‑Factor Authentication
1 +xwiki-two-factor-authentication
Content
... ... @@ -1,110 +1,26 @@
1 1  {{velocity}}
2 2  #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 3  #set ($discard = $xwiki.ssx.use('products.WebHome'))
4 -
5 -#set ($mainCapabilityItems = [{
6 - 'title': 'MFA login protection',
7 - 'icon': 'key',
8 - 'content': 'Add an additional verification step after the normal XWiki username and password login.'
9 -},{
10 - 'title': 'Authenticator app verification',
11 - 'icon': 'mobile',
12 - 'content': 'Let users verify access with time-based TOTP codes generated by authenticator applications.'
13 -},{
14 - 'title': 'Recovery and trusted devices',
15 - 'icon': 'shield',
16 - 'content': 'Provide backup access with recovery codes and reduce repeated prompts on trusted browsers.'
17 -}])
18 -
19 -#set ($adminExperienceItems = [{
20 - 'title': 'MFA policy',
21 - 'icon': 'cog',
22 - 'content': 'Make MFA optional or required for all users from the XWiki Administration section.'
23 -},{
24 - 'title': 'Configuration options',
25 - 'icon': 'sliders',
26 - 'content': 'Set the authenticator issuer name, recovery-code count and trusted-device duration.'
27 -},{
28 - 'title': 'Administration overview',
29 - 'icon': 'table',
30 - 'content': 'Review MFA adoption with summary indicators and a filterable Live Data table.'
31 -}])
32 -
33 -#set ($userExperienceItems = [{
34 - 'title': 'Self-service setup',
35 - 'icon': 'qrcode',
36 - 'content': 'Users configure MFA from their profile by scanning a QR code or entering the setup key manually.'
37 -},{
38 - 'title': 'Login verification',
39 - 'icon': 'sign-in',
40 - 'content': 'After the normal login, users enter the code generated by their authenticator app.'
41 -},{
42 - 'title': 'Trusted browser option',
43 - 'icon': 'desktop',
44 - 'content': 'Users can trust the current browser for the configured duration after successful verification.'
45 -}])
46 -
47 -#set ($selfServiceItems = [{
48 - 'title': 'Recovery codes',
49 - 'icon': 'life-ring',
50 - 'content': 'Recovery codes provide backup access when a user loses access to the authenticator application.'
51 -},{
52 - 'title': 'Trusted devices',
53 - 'icon': 'desktop',
54 - 'content': 'Trusted devices can be reviewed and removed from the user profile.'
55 -},{
56 - 'title': 'Profile management',
57 - 'icon': 'user',
58 - 'content': 'Users can review MFA status, generate recovery codes, manage trusted devices and reset MFA.'
59 -}])
60 -
61 -#set ($adminSupportItems = [{
62 - 'title': 'User MFA status',
63 - 'icon': 'user',
64 - 'content': 'Administrators can open a user profile and check the MFA status for that account.'
65 -},{
66 - 'title': 'MFA reset',
67 - 'icon': 'refresh',
68 - 'content': 'Administrators can reset MFA when a user needs to restart the configuration process.'
69 -},{
70 - 'title': 'Controlled recovery',
71 - 'icon': 'unlock-alt',
72 - 'content': 'Resetting MFA removes the authenticator setup, recovery codes and trusted devices for that user.'
73 -}])
74 -
75 -#set ($rolloutItems = [{
76 - 'title': 'Start with a pilot group',
77 - 'content': 'Test the extension with administrators or a small user group before enabling it widely.'
78 -},{
79 - 'title': 'Define the MFA policy',
80 - 'content': 'Decide whether MFA should be optional at first or required for all users.'
81 -},{
82 - 'title': 'Configure recovery options',
83 - 'content': 'Choose the number of recovery codes and whether trusted devices should be allowed.'
84 -},{
85 - 'title': 'Inform users',
86 - 'content': 'Explain how users configure MFA, save recovery codes and manage trusted devices.'
87 -},{
88 - 'title': 'Monitor adoption',
89 - 'content': 'Use the administration overview to identify users who still need to configure MFA.'
90 -}])
91 -
92 92  {{html clean="false"}}
93 93  
94 -<section class="hero hero-centered" aria-labelledby="product-title">
6 +<section class="hero hero-centered product-hero" aria-labelledby="product-title">
95 95   <div class="container hero-inner">
96 - <div class="hero-kicker">
8 + <div class="product-kicker">
97 97   <i class="fa fa-lock" aria-hidden="true"></i>
98 - XWiki MFA and 2FA
10 + XWiki security extension
99 99   </div>
100 100  
101 - <h1 id="product-title">XWiki MFA and Two-Factor Authentication</h1>
13 + <h1 id="product-title">XWiki Two-Factor Authentication</h1>
102 102  
103 103   <p class="lead">
104 - Add multi-factor authentication to XWiki with authenticator app verification,
105 - recovery codes, trusted devices, user self-service and administrator monitoring.
16 + Add a second verification step to the standard XWiki login flow.
106 106   </p>
107 107  
19 + <p class="hero-support">
20 + This extension protects XWiki accounts with time-based one-time verification codes while keeping the familiar
21 + XWiki username and password authentication as the first login step.
22 + </p>
23 +
108 108   <div class="hero-actions">
109 109   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Ask about this extension</a>
110 110   <a class="btn btn-secondary" href="$xwiki.getURL('products.WebHome')">View all products</a>
... ... @@ -116,19 +116,23 @@
116 116   <div class="container">
117 117   <div class="product-layout">
118 118   <article class="product-summary-card">
119 - <h2 id="overview-title">MFA support built into the XWiki login flow</h2>
35 + <h2 id="overview-title">Stronger login protection for XWiki</h2>
120 120  
121 121   <p>
122 - XWiki Two-Factor Authentication adds MFA support to the standard XWiki login flow.
123 - Users continue to sign in with their normal username and password, then confirm access
124 - with a time-based verification code from an authenticator application.
38 + The XWiki Two-Factor Authentication extension adds an additional verification screen after the standard
39 + username and password login. Users confirm their identity with a time-based one-time code before accessing
40 + the wiki.
125 125   </p>
126 126  
127 127   <p>
128 - Beyond the login verification step, the extension also supports recovery codes, trusted devices,
129 - user self-service management, administrator reset actions and an administration overview for
130 - monitoring MFA adoption.
44 + The extension is designed for organizations that want to improve account security while keeping authentication
45 + close to the standard XWiki login experience.
131 131   </p>
47 +
48 + <p>
49 + It can be useful for internal knowledge bases, intranets, documentation platforms, SOP systems, or other
50 + XWiki environments where access to content and administration should be better protected.
51 + </p>
132 132   </article>
133 133  
134 134   <aside class="product-info-card" aria-labelledby="quick-facts-title">
... ... @@ -135,12 +135,11 @@
135 135   <h3 id="quick-facts-title">Quick facts</h3>
136 136   <ul>
137 137   <li>Works with the standard XWiki login flow</li>
138 - <li>Supports TOTP authenticator applications</li>
139 - <li>Can require MFA for all users</li>
140 - <li>Includes one-time recovery codes</li>
141 - <li>Can remember trusted browsers or devices</li>
142 - <li>Includes user self-service controls</li>
143 - <li>Includes an administration overview</li>
58 + <li>Adds a second TOTP verification step</li>
59 + <li>Configuration available from wiki administration</li>
60 + <li>User setup available during login or from the user profile</li>
61 + <li>Administrators can enable, disable or reset MFA for users</li>
62 + <li>Can be used on the main wiki and subwikis</li>
144 144   </ul>
145 145   </aside>
146 146   </div>
... ... @@ -147,293 +147,103 @@
147 147   </div>
148 148  </section>
149 149  
150 -<section aria-labelledby="capabilities-title">
69 +<section aria-labelledby="features-title">
151 151   <div class="container">
152 - <h2 id="capabilities-title">Main MFA capabilities</h2>
153 -
71 + <h2 id="features-title">Main capabilities</h2>
154 154   <p class="section-intro">
155 - A focused set of MFA features for stronger XWiki account protection without replacing the familiar login experience.
73 + The extension focuses on adding a practical second authentication step while keeping the standard XWiki login
74 + process and administration experience understandable.
156 156   </p>
157 157  
158 158   <div class="product-feature-grid">
159 - #foreach ($entry in $mainCapabilityItems)
160 - <article class="product-feature">
161 - <div class="card-heading">
162 - <div class="feature-icon">
163 - <i class="fa fa-$entry.icon" aria-hidden="true"></i>
164 - </div>
165 - <h3>$entry.title</h3>
166 - </div>
167 -
168 - <p>$entry.content</p>
169 - </article>
170 - #end
171 - </div>
172 - </div>
173 -</section>
174 -
175 -<section class="product-section-muted" aria-labelledby="security-title">
176 - <div class="container">
177 - <div class="product-layout">
178 - <article class="product-summary-card">
179 - <h2 id="security-title">MFA for XWiki security and access protection</h2>
180 -
78 + <article class="product-feature">
79 + <div class="feature-icon">
80 + <i class="fa fa-key" aria-hidden="true"></i>
81 + </div>
82 + <h3>Second login step</h3>
181 181   <p>
182 - Many organizations use XWiki to store internal documentation, procedures, operational
183 - knowledge and business-critical information. Adding an additional authentication factor helps
184 - reduce the risk of account compromise when a password is exposed or reused.
84 + After the username and password are verified, users are asked to enter a time-based verification code.
185 185   </p>
86 + </article>
186 186  
88 + <article class="product-feature">
89 + <div class="feature-icon">
90 + <i class="fa fa-qrcode" aria-hidden="true"></i>
91 + </div>
92 + <h3>User setup screen</h3>
187 187   <p>
188 - The extension is especially useful for protecting administrator accounts, remote users,
189 - private knowledge bases and customer or partner portals.
94 + Users can configure their verification code setup during login or from their XWiki profile when needed.
190 190   </p>
191 191   </article>
192 192  
193 - <aside class="product-info-card" aria-labelledby="use-cases-title">
194 - <h3 id="use-cases-title">Typical use cases</h3>
195 - <ul>
196 - <li>Administrator account protection</li>
197 - <li>Internal knowledge base security</li>
198 - <li>Private documentation platforms</li>
199 - <li>Remote user access protection</li>
200 - <li>Customer or partner portals</li>
201 - <li>Security review, MFA rollout and compliance readiness</li>
202 - </ul>
203 - </aside>
204 - </div>
205 - </div>
206 -</section>
207 -
208 -<section aria-labelledby="admin-experience-title">
209 - <div class="container">
210 - <h2 id="admin-experience-title">Administrator configuration and monitoring</h2>
211 -
212 - <p class="section-intro">
213 - Administrators can configure the MFA policy, define recovery options and monitor adoption from the XWiki Administration section.
214 - </p>
215 -
216 - <div class="product-feature-grid">
217 - #foreach ($entry in $adminExperienceItems)
218 - <article class="product-feature">
219 - <div class="card-heading">
220 - <div class="feature-icon">
221 - <i class="fa fa-$entry.icon" aria-hidden="true"></i>
222 - </div>
223 - <h3>$entry.title</h3>
224 - </div>
225 -
226 - <p>$entry.content</p>
227 - </article>
228 - #end
229 - </div>
230 -
231 -{{/html}}
232 -
233 -{{gallery}}
234 -[[image:mfa-admin-configuration.png]]
235 -[[image:mfa-admin-overview.png]]
236 -[[image:mfa-admin-full.png]]
237 -{{/gallery}}
238 -
239 -{{html clean="false"}}
240 -
241 - <p class="product-gallery-caption">
242 - Administration screens for configuring MFA and reviewing MFA adoption across users.
243 - </p>
244 - </div>
245 -</section>
246 -
247 -<section class="product-section-muted" aria-labelledby="user-experience-title">
248 - <div class="container">
249 - <h2 id="user-experience-title">User setup and login verification</h2>
250 -
251 - <p class="section-intro">
252 - Users can configure MFA from their profile or during the enforced setup flow, then verify future logins with their authenticator app.
253 - </p>
254 -
255 - <div class="product-feature-grid">
256 - #foreach ($entry in $userExperienceItems)
257 - <article class="product-feature">
258 - <div class="card-heading">
259 - <div class="feature-icon">
260 - <i class="fa fa-$entry.icon" aria-hidden="true"></i>
261 - </div>
262 - <h3>$entry.title</h3>
263 - </div>
264 -
265 - <p>$entry.content</p>
266 - </article>
267 - #end
268 - </div>
269 -
270 -{{/html}}
271 -
272 -{{gallery}}
273 -[[image:mfa-user-setup-qr.png]]
274 -[[image:mfa-login-verification-setup.png]]
275 -[[image:mfa-login-verification-code.png]]
276 -{{/gallery}}
277 -
278 -{{html clean="false"}}
279 -
280 - <p class="product-gallery-caption">
281 - User setup, enforced MFA configuration and login verification screens.
282 - </p>
283 - </div>
284 -</section>
285 -
286 -<section aria-labelledby="self-service-title">
287 - <div class="container">
288 - <h2 id="self-service-title">MFA recovery codes and trusted devices</h2>
289 -
290 - <p class="section-intro">
291 - Recovery codes and trusted devices help balance stronger access protection with a smoother user experience.
292 - </p>
293 -
294 - <div class="product-feature-grid">
295 - #foreach ($entry in $selfServiceItems)
296 - <article class="product-feature">
297 - <div class="card-heading">
298 - <div class="feature-icon">
299 - <i class="fa fa-$entry.icon" aria-hidden="true"></i>
300 - </div>
301 - <h3>$entry.title</h3>
302 - </div>
303 -
304 - <p>$entry.content</p>
305 - </article>
306 - #end
307 - </div>
308 -
309 -{{/html}}
310 -
311 -{{gallery}}
312 -[[image:mfa-user-profile-overview.png]]
313 -[[image:mfa-recovery-codes-not-generated.png]]
314 -[[image:mfa-recovery-codes-generated.png]]
315 -[[image:mfa-trusted-devices.png]]
316 -[[image:mfa-user-profile-full.png]]
317 -{{/gallery}}
318 -
319 -{{html clean="false"}}
320 -
321 - <p class="product-gallery-caption">
322 - User profile screens for recovery codes, trusted devices and MFA self-service management.
323 - </p>
324 - </div>
325 -</section>
326 -
327 -<section class="product-section-muted" aria-labelledby="admin-support-title">
328 - <div class="container">
329 - <h2 id="admin-support-title">Administrator support and user recovery</h2>
330 -
331 - <p class="section-intro">
332 - Administrators can help users recover from lost devices or restart MFA setup when needed.
333 - </p>
334 -
335 - <div class="product-feature-grid">
336 - #foreach ($entry in $adminSupportItems)
337 - <article class="product-feature">
338 - <div class="card-heading">
339 - <div class="feature-icon">
340 - <i class="fa fa-$entry.icon" aria-hidden="true"></i>
341 - </div>
342 - <h3>$entry.title</h3>
343 - </div>
344 -
345 - <p>$entry.content</p>
346 - </article>
347 - #end
348 - </div>
349 -
350 -{{/html}}
351 -
352 -{{gallery}}
353 -[[image:mfa-admin-user-management.png]]
354 -{{/gallery}}
355 -
356 -{{html clean="false"}}
357 -
358 - <p class="product-gallery-caption">
359 - Administrator view for checking and resetting a user MFA setup.
360 - </p>
361 - </div>
362 -</section>
363 -
364 -<section aria-labelledby="mfa-faq-title">
365 - <div class="container">
366 - <h2 id="mfa-faq-title">MFA questions</h2>
367 -
368 - <div class="resource-content">
369 - <details class="resource-faq-item">
370 - <summary>Is this an MFA or 2FA extension?</summary>
98 + <article class="product-feature">
99 + <div class="feature-icon">
100 + <i class="fa fa-sliders" aria-hidden="true"></i>
101 + </div>
102 + <h3>Administration controls</h3>
371 371   <p>
372 - It is best described as an MFA extension for XWiki. The most visible login flow is two-factor authentication,
373 - but the extension also includes MFA policy, recovery codes, trusted devices, user self-service and administrator monitoring.
104 + Administrators can enable the feature globally, manage user-level activation, and reset a user setup when required.
374 374   </p>
375 - </details>
106 + </article>
376 376  
377 - <details class="resource-faq-item">
378 - <summary>Does it replace the standard XWiki login?</summary>
108 + <article class="product-feature">
109 + <div class="feature-icon">
110 + <i class="fa fa-user" aria-hidden="true"></i>
111 + </div>
112 + <h3>Profile integration</h3>
379 379   <p>
380 - No. It adds an additional verification step after the normal XWiki username and password login.
114 + The extension adds user profile controls so the second-factor setup can be reviewed or reset from XWiki.
381 381   </p>
382 - </details>
116 + </article>
383 383  
384 - <details class="resource-faq-item">
385 - <summary>Which verification method is used?</summary>
118 + <article class="product-feature">
119 + <div class="feature-icon">
120 + <i class="fa fa-random" aria-hidden="true"></i>
121 + </div>
122 + <h3>Fallback behavior</h3>
386 386   <p>
387 - Users verify access with time-based codes generated by an authenticator application.
124 + The extension can fall back to standard XWiki authentication when the feature is not enabled or not configured.
388 388   </p>
389 - </details>
126 + </article>
390 390  
391 - <details class="resource-faq-item">
392 - <summary>What happens if a user loses access to the authenticator app?</summary>
128 + <article class="product-feature">
129 + <div class="feature-icon">
130 + <i class="fa fa-sitemap" aria-hidden="true"></i>
131 + </div>
132 + <h3>Main wiki and subwikis</h3>
393 393   <p>
394 - Recovery codes can provide backup access when enabled. Administrators can also reset the user MFA setup.
134 + The extension is designed to support XWiki environments using the main wiki and subwikis.
395 395   </p>
396 - </details>
136 + </article>
397 397   </div>
398 398   </div>
399 399  </section>
400 400  
401 -<section class="product-section-muted" aria-labelledby="rollout-title">
141 +<section aria-labelledby="use-cases-title">
402 402   <div class="container">
403 403   <div class="product-layout">
404 404   <article class="product-summary-card">
405 - <h2 id="rollout-title">MFA rollout recommendations</h2>
145 + <h2 id="use-cases-title">When this extension is useful</h2>
406 406  
407 407   <p>
408 - For a smooth rollout, start with a small administrator or pilot group before requiring MFA for everyone.
409 - This helps validate the configuration, prepare user communication and reduce support issues.
148 + Two-factor authentication is especially relevant when XWiki contains internal documentation, procedures,
149 + customer information, project knowledge, administrative pages, or business-critical content.
410 410   </p>
411 411  
412 - <ol class="process-list">
413 - #foreach ($entry in $rolloutItems)
414 - <li>
415 - <strong>$entry.title</strong>
416 - $entry.content
417 - </li>
418 - #end
419 - </ol>
152 + <p>
153 + It is also useful when many users access the wiki remotely, when administrator accounts need stronger protection,
154 + or when the organization wants to reduce the risk of compromised passwords.
155 + </p>
420 420   </article>
421 421  
422 - <aside class="product-info-card" aria-labelledby="planning-title">
423 - <h3 id="planning-title">Useful information before installation</h3>
424 -
425 - <p class="product-card-note">
426 - These details help evaluate compatibility, rollout scope and configuration options.
427 - </p>
428 -
158 + <aside class="product-info-card" aria-labelledby="good-fit-title">
159 + <h3 id="good-fit-title">Good fit for</h3>
429 429   <ul>
430 - <li>XWiki version</li>
431 - <li>Single wiki or wiki farm with subwikis</li>
432 - <li>Current authentication setup</li>
433 - <li>Optional or globally required MFA policy</li>
434 - <li>Trusted-device policy</li>
435 - <li>Recovery-code policy</li>
436 - <li>Rollout communication needs</li>
161 + <li>Private XWiki knowledge bases</li>
162 + <li>Company intranets</li>
163 + <li>SOP and controlled-document platforms</li>
164 + <li>Documentation portals with sensitive content</li>
165 + <li>Wikis with several administrators or remote users</li>
437 437   </ul>
438 438   </aside>
439 439   </div>
... ... @@ -440,15 +440,30 @@
440 440   </div>
441 441  </section>
442 442  
172 +<section aria-labelledby="gallery-title">
173 + <div class="container">
174 + <div class="product-gallery-panel">
175 + <h2 id="gallery-title">Screenshots</h2>
176 + <p class="gallery-note">
177 + Use this area to show the login verification screen, first-time setup, user profile controls,
178 + and administration configuration.
179 + </p>
180 +
181 + <div class="product-gallery-placeholder">
182 + Replace this placeholder with the XWiki gallery macro and 3-5 screenshots from the application.
183 + </div>
184 + </div>
185 + </div>
186 +</section>
187 +
443 443  <section class="cta-section" aria-labelledby="cta-title">
444 444   <div class="container">
445 445   <div class="cta-panel">
446 - <h2 id="cta-title">Interested in XWiki MFA?</h2>
447 -
191 + <h2 id="cta-title">Interested in using this extension?</h2>
448 448   <p>
449 - Send a short message with your XWiki version, current authentication setup and MFA rollout goal.
193 + Send a short message with your XWiki version, authentication setup, and whether you use a single wiki
194 + or a main wiki with subwikis.
450 450   </p>
451 -
452 452   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a>
453 453   </div>
454 454   </div>
mfa-admin-configuration.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -125.3 KB
Content
mfa-admin-full.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -184.3 KB
Content
mfa-admin-overview.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -64.7 KB
Content
mfa-admin-user-management.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -26.9 KB
Content
mfa-login-verification-code.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -23.6 KB
Content
mfa-login-verification-setup.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -115.9 KB
Content
mfa-recovery-codes-generated.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -38.5 KB
Content
mfa-recovery-codes-not-generated.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -27.0 KB
Content
mfa-trusted-devices.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -59.1 KB
Content
mfa-user-profile-full.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -197.5 KB
Content
mfa-user-profile-overview.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -193.4 KB
Content
mfa-user-setup-qr.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -176.6 KB
Content
Agnease.Code.SEODetailsClass[0]
metaDescription
... ... @@ -1,1 +1,0 @@
1 -Agnease Multi‑Factor Authentication for XWiki adds secure login verification using authenticator app codes, email codes, combined verification, recovery codes, and trusted‑device remembering.
metaTitle
... ... @@ -1,1 +1,0 @@
1 -XWiki Multi‑Factor Authentication (MFA) with 2FA Support | Agnease