Changes for page XWiki Two-Factor Authentication
Last modified by Agnease on 2026/06/24 16:39
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 12 removed)
- mfa-admin-configuration.png
- mfa-admin-full.png
- mfa-admin-overview.png
- mfa-admin-user-management.png
- mfa-login-verification-code.png
- mfa-login-verification-setup.png
- mfa-recovery-codes-generated.png
- mfa-recovery-codes-not-generated.png
- mfa-trusted-devices.png
- mfa-user-profile-full.png
- mfa-user-profile-overview.png
- mfa-user-setup-qr.png
Details
- Page properties
-
- Content
-
... ... @@ -1,128 +1,9 @@ 1 1 {{velocity}} 2 2 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 3 3 #set ($discard = $xwiki.ssx.use('products.WebHome')) 4 - 5 -#set ($businessValueItems = [{ 6 - 'title': 'Reduce account compromise risk', 7 - 'icon': 'shield', 8 - 'content': 'Add a second verification step after password login to better protect private XWiki content and administrator accounts.' 9 -},{ 10 - 'title': 'Keep the standard XWiki experience', 11 - 'icon': 'sign-in', 12 - 'content': 'Extend the familiar XWiki login flow instead of replacing it with a completely different authentication experience.' 13 -},{ 14 - 'title': 'Support a controlled rollout', 15 - 'icon': 'tasks', 16 - 'content': 'Start with optional MFA, then require MFA for all users when the organization is ready.' 17 -}]) 18 - 19 -#set ($adminControlItems = [{ 20 - 'title': 'Global MFA policy', 21 - 'icon': 'cog', 22 - 'content': 'Administrators can decide whether MFA is optional or required for all users.' 23 -},{ 24 - 'title': 'Recovery policy', 25 - 'icon': 'life-ring', 26 - 'content': 'Configure how many one-time recovery codes are generated for each user, or disable recovery codes if needed.' 27 -},{ 28 - 'title': 'Trusted-device policy', 29 - 'icon': 'desktop', 30 - 'content': 'Configure how long a trusted browser remains valid, or disable trusted devices for stricter environments.' 31 -}]) 32 - 33 -#set ($adminVisibilityItems = [{ 34 - 'title': 'MFA adoption overview', 35 - 'icon': 'bar-chart', 36 - 'content': 'Review how many users are scanned, how many have MFA configured, and how many still need attention.' 37 -},{ 38 - 'title': 'Filterable user table', 39 - 'icon': 'table', 40 - 'content': 'Use the Live Data table to review configured users, recovery-code status and trusted-device usage.' 41 -},{ 42 - 'title': 'Operational monitoring', 43 - 'icon': 'search', 44 - 'content': 'Identify accounts with missing recovery codes or trusted devices from the administration area.' 45 -}]) 46 - 47 -#set ($userAdoptionItems = [{ 48 - 'title': 'Self-service setup', 49 - 'icon': 'qrcode', 50 - 'content': 'Users can configure MFA by scanning a QR code with their authenticator application.' 51 -},{ 52 - 'title': 'Manual setup details', 53 - 'icon': 'keyboard-o', 54 - 'content': 'Users can also enter the account name and secret key manually if they cannot scan the QR code.' 55 -},{ 56 - 'title': 'Enforced setup flow', 57 - 'icon': 'lock', 58 - 'content': 'When MFA is required, users are guided to complete setup before continuing.' 59 -}]) 60 - 61 -#set ($loginProtectionItems = [{ 62 - 'title': 'Second login step', 63 - 'icon': 'key', 64 - 'content': 'After the normal username and password login, users enter the verification code from their authenticator app.' 65 -},{ 66 - 'title': 'Backup login option', 67 - 'icon': 'unlock-alt', 68 - 'content': 'If recovery codes are enabled, users can use a recovery code when they lose access to the authenticator app.' 69 -},{ 70 - 'title': 'Trusted browser option', 71 - 'icon': 'desktop', 72 - 'content': 'Users can trust the current browser for the configured duration after successful verification.' 73 -}]) 74 - 75 -#set ($continuityItems = [{ 76 - 'title': 'One-time recovery codes', 77 - 'icon': 'life-ring', 78 - 'content': 'Recovery codes help users regain access if they lose their authenticator device.' 79 -},{ 80 - 'icon': 'life-ring', 81 - 'content': 'Recovery codes help users regain access if they lose their authenticator device.' 82 -},{ 83 - 'title': 'Codes shown once', 84 - 'icon': 'eye-slash', 85 - 'content': 'Recovery codes are displayed only once and each code can be used a single time.' 86 -},{ 87 - 'title': 'Trusted-device management', 88 - 'icon': 'desktop', 89 - 'content': 'Users can review trusted devices, identify the current browser and remove devices they no longer use.' 90 -}]) 91 - 92 -#set ($adminSupportItems = [{ 93 - 'title': 'User MFA status', 94 - 'icon': 'user', 95 - 'content': 'Administrators can open a user profile and check whether MFA is configured for that account.' 96 -},{ 97 - 'title': 'Helpdesk recovery', 98 - 'icon': 'refresh', 99 - 'content': 'Administrators can reset MFA when a user loses access to the authenticator app or needs to restart setup.' 100 -},{ 101 - 'title': 'Clean reset', 102 - 'icon': 'trash', 103 - 'content': 'Resetting MFA removes the authenticator setup, recovery codes and trusted devices for that user.' 104 -}]) 105 - 106 -#set ($rolloutItems = [{ 107 - 'title': 'Start with a pilot group', 108 - 'content': 'Test the extension with administrators or a small user group before enabling it widely.' 109 -},{ 110 - 'title': 'Define the MFA policy', 111 - 'content': 'Decide whether MFA should be optional at first or required for all users.' 112 -},{ 113 - 'title': 'Configure recovery options', 114 - 'content': 'Choose the number of recovery codes and whether trusted devices should be allowed.' 115 -},{ 116 - 'title': 'Prepare user communication', 117 - 'content': 'Explain how users configure MFA, save recovery codes and manage trusted devices.' 118 -},{ 119 - 'title': 'Monitor adoption', 120 - 'content': 'Use the administration overview to identify users who still need to configure MFA.' 121 -}]) 122 - 123 123 {{html clean="false"}} 124 124 125 -<section class="hero hero-centered" aria-labelledby=" product-title">6 +<section class="hero hero-centered" aria-labelledby="hero-title"> 126 126 <div class="container hero-inner"> 127 127 <div class="hero-kicker"> 128 128 <i class="fa fa-lock" aria-hidden="true"></i> ... ... @@ -132,8 +132,8 @@ 132 132 <h1 id="product-title">XWiki Two-Factor Authentication</h1> 133 133 134 134 <p class="lead"> 135 - Protect XWiki logins with a uthenticatorappverification,recoverycodes,trusteddevices136 - a ndadministratorvisibility.16 + Protect XWiki logins with a second verification step using authenticator app codes, 17 + email verification codes, or both. 137 137 </p> 138 138 139 139 <div class="hero-actions"> ... ... @@ -147,19 +147,23 @@ 147 147 <div class="container"> 148 148 <div class="product-layout"> 149 149 <article class="product-summary-card"> 150 - <h2 id="overview-title"> MFA protection builtforXWiki</h2>31 + <h2 id="overview-title">Two-factor authentication built into XWiki</h2> 151 151 152 152 <p> 153 - XWiki Two-Factor Authentication adds a secondverification steptothe standardXWiki login flow.154 - Users continue to signin with their normalusername and password,then confirm accesswith a155 - time-based code generatedbyan authenticatorapplication.34 + XWiki Two-Factor Authentication adds an additional verification screen after the standard 35 + XWiki username and password login. It improves account protection without replacing the 36 + familiar XWiki authentication flow. 156 156 </p> 157 157 158 158 <p> 159 - The extension is designed for organizations that use XWiki to manage internal documentation, 160 - procedures, knowledge bases, customer portals or other private collaboration spaces where 161 - stronger account protection is needed. 40 + Users can verify access with TOTP codes generated by an authenticator app, with one-time 41 + codes delivered by email, or with a combined setup requiring both methods. 162 162 </p> 43 + 44 + <p> 45 + Trusted browsers or devices can be remembered for a configured period, reducing repeated 46 + verification prompts on known clients while still requiring verification from new or untrusted ones. 47 + </p> 163 163 </article> 164 164 165 165 <aside class="product-info-card" aria-labelledby="quick-facts-title"> ... ... @@ -166,12 +166,11 @@ 166 166 <h3 id="quick-facts-title">Quick facts</h3> 167 167 <ul> 168 168 <li>Works with the standard XWiki login flow</li> 169 - <li>Uses TOTP authenticator applications</li> 170 - <li>Can require MFA for all users</li> 171 - <li>Includes one-time recovery codes</li> 172 - <li>Supports trusted browsers or devices</li> 173 - <li>Includes user self-service controls</li> 174 - <li>Includes administration monitoring</li> 54 + <li>Supports authenticator app codes using TOTP</li> 55 + <li>Supports email-delivered one-time verification codes</li> 56 + <li>Can require app code and email code together</li> 57 + <li>Can remember trusted browsers or devices</li> 58 + <li>Includes administration and user setup controls</li> 175 175 </ul> 176 176 </aside> 177 177 </div> ... ... @@ -178,295 +178,91 @@ 178 178 </div> 179 179 </section> 180 180 181 -<section class="product-section-muted"aria-labelledby="business-value-title">65 +<section aria-labelledby="features-title"> 182 182 <div class="container"> 183 - <h2 id=" business-value-title">Businessvalue</h2>67 + <h2 id="features-title">Main capabilities</h2> 184 184 185 185 <p class="section-intro"> 186 - The extensionhelps organizationsstrengthenXWiki accessprotection withoutmakinglogin andaccountrecovery unnecessarily complex.70 + A focused set of MFA/2FA features for stronger XWiki account protection without changing the standard login experience. 187 187 </p> 188 188 189 189 <div class="product-feature-grid"> 190 - #foreach ($entry in $businessValueItems) 191 - <article class="product-feature"> 192 - <div class="card-heading"> 193 - <div class="feature-icon"> 194 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 195 - </div> 196 - <h3>$entry.title</h3> 74 + <article class="product-feature"> 75 + <div class="card-heading"> 76 + <div class="feature-icon"> 77 + <i class="fa fa-key" aria-hidden="true"></i> 197 197 </div> 79 + <h3>Second verification step</h3> 80 + </div> 198 198 199 - <p>$entry.content</p> 200 - </article> 201 - #end 202 - </div> 203 - </div> 204 -</section> 82 + <p> 83 + After username and password verification, users complete an additional step before accessing XWiki. 84 + The flow can require one verification method or both app and email codes. 85 + </p> 86 + </article> 205 205 206 -<section aria-labelledby="admin-control-title"> 207 - <div class="container"> 208 - <h2 id="admin-control-title">Administrator control</h2> 209 - 210 - <p class="section-intro"> 211 - Administrators configure the MFA policy directly from the XWiki Administration section, without editing configuration files for day-to-day policy changes. 212 - </p> 213 - 214 - <div class="product-feature-grid"> 215 - #foreach ($entry in $adminControlItems) 216 - <article class="product-feature"> 217 - <div class="card-heading"> 218 - <div class="feature-icon"> 219 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 220 - </div> 221 - <h3>$entry.title</h3> 88 + <article class="product-feature"> 89 + <div class="card-heading"> 90 + <div class="feature-icon"> 91 + <i class="fa fa-mobile" aria-hidden="true"></i> 222 222 </div> 93 + <h3>Authenticator app codes</h3> 94 + </div> 223 223 224 - <p>$entry.content</p>225 - </article>226 - #end227 - </ div>96 + <p> 97 + Users can verify access with TOTP codes generated by authenticator applications on mobile or desktop devices. 98 + </p> 99 + </article> 228 228 229 -{{/html}} 230 - 231 -{{gallery}} 232 -[[image:mfa-admin-configuration.png]] 233 -{{/gallery}} 234 - 235 -{{html clean="false"}} 236 - 237 - <p class="product-gallery-caption"> 238 - Administration configuration for requiring MFA, setting the authenticator issuer name, recovery-code count and trusted-device duration. 239 - </p> 240 - </div> 241 -</section> 242 - 243 -<section class="product-section-muted" aria-labelledby="admin-visibility-title"> 244 - <div class="container"> 245 - <h2 id="admin-visibility-title">Administration overview and monitoring</h2> 246 - 247 - <p class="section-intro"> 248 - The administration overview helps teams understand MFA adoption and identify users who still need to complete setup or maintain recovery options. 249 - </p> 250 - 251 - <div class="product-feature-grid"> 252 - #foreach ($entry in $adminVisibilityItems) 253 - <article class="product-feature"> 254 - <div class="card-heading"> 255 - <div class="feature-icon"> 256 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 257 - </div> 258 - <h3>$entry.title</h3> 101 + <article class="product-feature"> 102 + <div class="card-heading"> 103 + <div class="feature-icon"> 104 + <i class="fa fa-envelope-o" aria-hidden="true"></i> 259 259 </div> 106 + <h3>Email verification codes</h3> 107 + </div> 260 260 261 - <p>$entry.content</p> 262 - </article> 263 - #end 109 + <p> 110 + Users can receive one-time verification codes by email when an authenticator app is not available or preferred. 111 + </p> 112 + </article> 264 264 </div> 265 - 266 -{{/html}} 267 - 268 -{{gallery}} 269 -[[image:mfa-admin-overview.png]] 270 -[[image:mfa-admin-full.png]] 271 -{{/gallery}} 272 - 273 -{{html clean="false"}} 274 - 275 - <p class="product-gallery-caption"> 276 - MFA adoption indicators and a filterable user overview for administrators. 277 - </p> 278 278 </div> 279 279 </section> 280 280 281 -<section aria-labelledby=" user-adoption-title">117 +<section class="product-section-muted" aria-labelledby="security-title"> 282 282 <div class="container"> 283 - <h2 id="user-adoption-title">User setup and adoption</h2> 284 - 285 - <p class="section-intro"> 286 - Users can configure MFA themselves by scanning a QR code or entering the setup information manually in their authenticator application. 287 - </p> 288 - 289 - <div class="product-feature-grid"> 290 - #foreach ($entry in $userAdoptionItems) 291 - <article class="product-feature"> 292 - <div class="card-heading"> 293 - <div class="feature-icon"> 294 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 295 - </div> 296 - <h3>$entry.title</h3> 297 - </div> 298 - 299 - <p>$entry.content</p> 300 - </article> 301 - #end 302 - </div> 303 - 304 -{{/html}} 305 - 306 -{{gallery}} 307 -[[image:mfa-user-setup-qr.png]] 308 -[[image:mfa-login-verification-setup.png]] 309 -{{/gallery}} 310 - 311 -{{html clean="false"}} 312 - 313 - <p class="product-gallery-caption"> 314 - Profile-based setup and enforced setup during login when MFA is required. 315 - </p> 316 - </div> 317 -</section> 318 - 319 -<section class="product-section-muted" aria-labelledby="login-protection-title"> 320 - <div class="container"> 321 - <h2 id="login-protection-title">Login protection</h2> 322 - 323 - <p class="section-intro"> 324 - After MFA is configured, XWiki asks for a verification code after the normal username and password step. 325 - </p> 326 - 327 - <div class="product-feature-grid"> 328 - #foreach ($entry in $loginProtectionItems) 329 - <article class="product-feature"> 330 - <div class="card-heading"> 331 - <div class="feature-icon"> 332 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 333 - </div> 334 - <h3>$entry.title</h3> 335 - </div> 336 - 337 - <p>$entry.content</p> 338 - </article> 339 - #end 340 - </div> 341 - 342 -{{/html}} 343 - 344 -{{gallery}} 345 -[[image:mfa-login-verification-code.png]] 346 -{{/gallery}} 347 - 348 -{{html clean="false"}} 349 - 350 - <p class="product-gallery-caption"> 351 - Verification screen displayed after the standard XWiki username and password login. 352 - </p> 353 - </div> 354 -</section> 355 - 356 -<section aria-labelledby="continuity-title"> 357 - <div class="container"> 358 - <h2 id="continuity-title">Recovery codes and trusted devices</h2> 359 - 360 - <p class="section-intro"> 361 - Recovery codes and trusted devices help balance stronger access protection with practical day-to-day usability. 362 - </p> 363 - 364 - <div class="product-feature-grid"> 365 - #foreach ($entry in $continuityItems) 366 - <article class="product-feature"> 367 - <div class="card-heading"> 368 - <div class="feature-icon"> 369 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 370 - </div> 371 - <h3>$entry.title</h3> 372 - </div> 373 - 374 - <p>$entry.content</p> 375 - </article> 376 - #end 377 - </div> 378 - 379 -{{/html}} 380 - 381 -{{gallery}} 382 -[[image:mfa-recovery-codes-not-generated.png]] 383 -[[image:mfa-recovery-codes-generated.png]] 384 -[[image:mfa-trusted-devices.png]] 385 -[[image:mfa-user-profile-overview.png]] 386 -[[image:mfa-user-profile-full.png]] 387 -{{/gallery}} 388 - 389 -{{html clean="false"}} 390 - 391 - <p class="product-gallery-caption"> 392 - User profile screens for recovery-code generation, trusted-device review and MFA self-service management. 393 - </p> 394 - </div> 395 -</section> 396 - 397 -<section class="product-section-muted" aria-labelledby="admin-support-title"> 398 - <div class="container"> 399 - <h2 id="admin-support-title">Administrator support and user recovery</h2> 400 - 401 - <p class="section-intro"> 402 - Administrators can help users recover from lost devices or restart MFA setup when needed. 403 - </p> 404 - 405 - <div class="product-feature-grid"> 406 - #foreach ($entry in $adminSupportItems) 407 - <article class="product-feature"> 408 - <div class="card-heading"> 409 - <div class="feature-icon"> 410 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 411 - </div> 412 - <h3>$entry.title</h3> 413 - </div> 414 - 415 - <p>$entry.content</p> 416 - </article> 417 - #end 418 - </div> 419 - 420 -{{/html}} 421 - 422 -{{gallery}} 423 -[[image:mfa-admin-user-management.png]] 424 -{{/gallery}} 425 - 426 -{{html clean="false"}} 427 - 428 - <p class="product-gallery-caption"> 429 - Administrator view for checking and resetting a user MFA setup. 430 - </p> 431 - </div> 432 -</section> 433 - 434 -<section aria-labelledby="rollout-title"> 435 - <div class="container"> 436 436 <div class="product-layout"> 437 437 <article class="product-summary-card"> 438 - <h2 id=" rollout-title">Rolloutrecommendations</h2>121 + <h2 id="security-title">Useful for XWiki security and NIS 2 readiness</h2> 439 439 440 440 <p> 441 - For a smooth rollout, start with a small administrator or pilot group before requiring MFA for everyone. 442 - This helps validate the configuration, prepare user communication and reduce support issues. 124 + Many organizations need multi-factor authentication for enterprise software, including internal 125 + knowledge bases, intranets, documentation platforms and systems containing operational procedures 126 + or sensitive business information. 443 443 </p> 444 444 445 - <ol class="process-list"> 446 - #foreach ($entry in $rolloutItems) 447 - <li> 448 - <strong>$entry.title</strong> 449 - $entry.content 450 - </li> 451 - #end 452 - </ol> 453 - </article> 129 + <p> 130 + For organizations using XWiki, adding two-factor authentication directly to the standard login flow 131 + can help close a practical access-control gap. It can be useful for administrator accounts, remote users, 132 + private knowledge bases and broader security readiness initiatives such as NIS 2 preparation. 133 + </p> 454 454 455 - <aside class="product-info-card" aria-labelledby="planning-title"> 456 - <h3 id="planning-title">Useful information before installation</h3> 457 - 458 - <p class="product-card-note"> 459 - These details help evaluate compatibility, rollout scope and configuration options. 135 + <p> 136 + This extension is not a complete compliance solution on its own, but it can provide an important 137 + technical control for protecting access to XWiki. 460 460 </p> 139 + </article> 461 461 141 + <aside class="product-info-card" aria-labelledby="security-controls-title"> 142 + <h3 id="security-controls-title">Useful for</h3> 462 462 <ul> 463 - <li>XWiki version</li> 464 - <li>Single wiki or wiki farm with subwikis</li> 465 - <li>Current authentication setup</li> 466 - <li>Optional or globally required MFA policy</li> 467 - <li>Trusted-device policy</li> 468 - <li>Recovery-code policy</li> 469 - <li>Rollout communication needs</li> 144 + <li>XWiki 2FA rollout</li> 145 + <li>XWiki MFA adoption</li> 146 + <li>Administrator account protection</li> 147 + <li>Remote user access protection</li> 148 + <li>Private knowledge base security</li> 149 + <li>NIS 2 readiness initiatives</li> 470 470 </ul> 471 471 </aside> 472 472 </div> ... ... @@ -477,11 +477,10 @@ 477 477 <div class="container"> 478 478 <div class="cta-panel"> 479 479 <h2 id="cta-title">Interested in using this extension?</h2> 480 - 481 481 <p> 482 - Send a short message with your XWiki version, current authentication setup and MFA rollout goal. 161 + Send a short message with your XWiki version, authentication setup, and whether you need 162 + authenticator app codes, email verification codes, combined verification, or trusted-device remembering. 483 483 </p> 484 - 485 485 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a> 486 486 </div> 487 487 </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