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)
Details
- Page properties
-
- Content
-
... ... @@ -1,82 +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 ($mainCapabilityItems = [{ 6 - 'title': 'Second verification step', 7 - 'icon': 'key', 8 - 'content': 'After the normal username and password check, users complete an additional verification step before accessing XWiki.' 9 -},{ 10 - 'title': 'Authenticator app codes', 11 - 'icon': 'mobile', 12 - 'content': 'Users can verify access with time-based TOTP codes generated by authenticator applications on mobile or desktop devices.' 13 -},{ 14 - 'title': 'Email verification codes', 15 - 'icon': 'envelope-o', 16 - 'content': 'Users can receive one-time verification codes by email when an authenticator app is not available or preferred.' 17 -}]) 18 - 19 -#set ($useCaseItems = [ 20 - 'Protecting administrator accounts', 21 - 'Improving access security for internal knowledge bases', 22 - 'Securing private documentation platforms and intranets', 23 - 'Supporting remote-user access policies', 24 - 'Strengthening customer or partner portals', 25 - 'Preparing for security reviews or broader compliance initiatives' 26 -]) 27 - 28 -#set ($adminCapabilityItems = [ 29 - 'Require MFA for all users', 30 - 'Define the issuer name displayed in authenticator applications', 31 - 'Configure trusted-device duration', 32 - 'Configure how many recovery codes are generated', 33 - 'Reset a user’s MFA setup when needed', 34 - 'Review MFA adoption from the administration overview' 35 -]) 36 - 37 -#set ($overviewItems = [ 38 - 'Number of users scanned', 39 - 'Users with MFA configured', 40 - 'Users without MFA configured', 41 - 'Users with trusted devices', 42 - 'Recovery-code status', 43 - 'Unused and total recovery-code count', 44 - 'Trusted-device count' 45 -]) 46 - 47 -#set ($profileItems = [ 48 - 'Configure MFA', 49 - 'Review MFA status', 50 - 'Generate or regenerate recovery codes', 51 - 'Review trusted devices', 52 - 'Remove individual trusted devices', 53 - 'Remove all trusted devices', 54 - 'Reset MFA setup' 55 -]) 56 - 57 -#set ($rolloutItems = [{ 58 - 'title': 'Install and configure the extension', 59 - 'content': 'Start by validating compatibility with the current XWiki version and authentication setup.' 60 -},{ 61 - 'title': 'Define the MFA policy', 62 - 'content': 'Decide whether MFA should be optional, required for administrators, or required for all users.' 63 -},{ 64 - 'title': 'Configure recovery and trusted devices', 65 - 'content': 'Choose whether users can rely on recovery codes and whether trusted browsers or devices are allowed.' 66 -},{ 67 - 'title': 'Test with a pilot group', 68 - 'content': 'Validate the setup and login flow with administrators or a small group before wider rollout.' 69 -},{ 70 - 'title': 'Communicate the user process', 71 - 'content': 'Explain how users should configure MFA, store recovery codes and manage trusted devices.' 72 -},{ 73 - 'title': 'Monitor adoption', 74 - 'content': 'Use the administration overview to identify users who still need to configure MFA.' 75 -}]) 76 - 77 77 {{html clean="false"}} 78 78 79 -<section class="hero hero-centered" aria-labelledby="product-title"> 6 +<section class="hero hero-centered product-hero" aria-labelledby="product-title"> 80 80 <div class="container hero-inner"> 81 81 <div class="hero-kicker"> 82 82 <i class="fa fa-lock" aria-hidden="true"></i> ... ... @@ -86,10 +86,14 @@ 86 86 <h1 id="product-title">XWiki Two-Factor Authentication</h1> 87 87 88 88 <p class="lead"> 89 - Protect XWiki logins with a second verification step using authenticator app codes, 90 - email verification codes, or both. 16 + Add a second verification step to the standard XWiki login flow. 91 91 </p> 92 92 19 + <p class="hero-support"> 20 + Protect XWiki accounts with authenticator app codes, email verification codes, 21 + or a combined setup requiring both. 22 + </p> 23 + 93 93 <div class="hero-actions"> 94 94 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Ask about this extension</a> 95 95 <a class="btn btn-secondary" href="$xwiki.getURL('products.WebHome')">View all products</a> ... ... @@ -104,20 +104,19 @@ 104 104 <h2 id="overview-title">Two-factor authentication built into XWiki</h2> 105 105 106 106 <p> 107 - XWiki Two-Factor Authentication adds MFA/2FAsupport tothe standardXWiki login flow.108 - Users continue to signin with their normalusername and password,then confirm accesswith109 - a n additional verificationmethod.38 + XWiki Two-Factor Authentication adds an additional verification screen after the standard 39 + XWiki username and password login. It improves account protection without replacing the 40 + familiar XWiki authentication flow. 110 110 </p> 111 111 112 112 <p> 113 - The extension supports authenticator app codes, email-delivered verification codes, or a combined 114 - setup where both methods are required. It improves account protection without replacing the familiar 115 - XWiki authentication experience. 44 + Users can verify access with TOTP codes generated by an authenticator app, with one-time 45 + codes delivered by email, or with a combined setup requiring both methods. 116 116 </p> 117 117 118 118 <p> 119 - It isdesignedfor organizationsthatuseXWikiforinternalknowledgebases, intranets,120 - documentation platforms, customerportals,workflowsor otherbusiness-critical applications.49 + Trusted browsers or devices can be remembered for a configured period, reducing repeated 50 + verification prompts on known clients while still requiring verification from new or untrusted ones. 121 121 </p> 122 122 </article> 123 123 ... ... @@ -128,7 +128,6 @@ 128 128 <li>Supports authenticator app codes using TOTP</li> 129 129 <li>Supports email-delivered one-time verification codes</li> 130 130 <li>Can require app code and email code together</li> 131 - <li>Includes recovery codes for backup access</li> 132 132 <li>Can remember trusted browsers or devices</li> 133 133 <li>Includes administration and user setup controls</li> 134 134 </ul> ... ... @@ -142,213 +142,87 @@ 142 142 <h2 id="features-title">Main capabilities</h2> 143 143 144 144 <p class="section-intro"> 145 - A focused set of MFA/2FA features for stronger XWiki account protection without changing146 - the standard login experience. 74 + A focused set of MFA/2FA features for organizations that want stronger XWiki account protection 75 + without changing the standard login experience. 147 147 </p> 148 148 149 149 <div class="product-feature-grid"> 150 - #foreach ($entry in $mainCapabilityItems) 151 - <article class="product-feature"> 152 - <div class="card-heading"> 153 - <div class="feature-icon"> 154 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 155 - </div> 156 - <h3>$entry.title</h3> 157 - </div> 158 - 159 - <p>$entry.content</p> 160 - </article> 161 - #end 162 - </div> 163 - </div> 164 -</section> 165 - 166 -<section class="product-section-muted" aria-labelledby="security-title"> 167 - <div class="container"> 168 - <div class="product-layout"> 169 - <article class="product-summary-card"> 170 - <h2 id="security-title">Useful for XWiki security and NIS 2 readiness</h2> 171 - 79 + <article class="product-feature"> 80 + <div class="feature-icon"> 81 + <i class="fa fa-key" aria-hidden="true"></i> 82 + </div> 83 + <h3>Second login step</h3> 172 172 <p> 173 - Many organizations need multi-factor authentication for enterprise software, including internal 174 - knowledge bases, intranets, documentation platforms and systems containing operational procedures 175 - or sensitive business information. 85 + After username and password verification, users must complete an additional verification step before accessing XWiki. 176 176 </p> 177 - 178 - <p> 179 - For organizations using XWiki, adding two-factor authentication directly to the standard login flow 180 - can help close a practical access-control gap. It can be useful for administrator accounts, 181 - remote users, private knowledge bases and broader security readiness initiatives such as NIS 2 preparation. 182 - </p> 183 - 184 - <p> 185 - This extension is not a complete compliance solution on its own, but it provides an important 186 - technical control for protecting access to XWiki. 187 - </p> 188 188 </article> 189 189 190 - <aside class="product-info-card" aria-labelledby="use-cases-title"> 191 - <h3 id="use-cases-title">Typical use cases</h3> 192 - <ul> 193 - #foreach ($item in $useCaseItems) 194 - <li>$item</li> 195 - #end 196 - </ul> 197 - </aside> 198 - </div> 199 - </div> 200 -</section> 201 - 202 -<section aria-labelledby="admin-title"> 203 - <div class="container"> 204 - <div class="product-layout"> 205 - <article class="product-summary-card"> 206 - <h2 id="admin-title">Administrator configuration</h2> 207 - 89 + <article class="product-feature"> 90 + <div class="feature-icon"> 91 + <i class="fa fa-mobile" aria-hidden="true"></i> 92 + </div> 93 + <h3>Authenticator app codes</h3> 208 208 <p> 209 - Administrators configure MFA from the XWiki Administration section. The configuration is intentionally 210 - simple, so the rollout can be adapted to the organization’s security policy and user base. 95 + Users can verify access with TOTP codes generated by authenticator applications on mobile or desktop devices. 211 211 </p> 212 - 213 - <p> 214 - MFA can be optional or required for all users. When MFA is required, users who have not configured it yet 215 - are guided through the setup flow from their profile or during login. 216 - </p> 217 - 218 - <p> 219 - If trusted devices should not be allowed, the trusted-device duration can be set to 0. 220 - If recovery codes should not be available, the recovery-code number can be set to 0. 221 - </p> 222 222 </article> 223 223 224 - <aside class="product-info-card" aria-labelledby="admin-capabilities-title"> 225 - <h3 id="admin-capabilities-title">Administrators can</h3> 226 - <ul> 227 - #foreach ($item in $adminCapabilityItems) 228 - <li>$item</li> 229 - #end 230 - </ul> 231 - </aside> 232 - </div> 233 - </div> 234 -</section> 235 - 236 -{{/html}} 237 - 238 -{{gallery}} 239 -[[image:mfa-admin-configuration.png]] 240 -{{/gallery}} 241 - 242 -{{html clean="false"}} 243 - 244 -<section aria-labelledby="admin-overview-title"> 245 - <div class="container"> 246 - <div class="product-layout"> 247 - <article class="product-summary-card"> 248 - <h2 id="admin-overview-title">MFA overview for administrators</h2> 249 - 99 + <article class="product-feature"> 100 + <div class="feature-icon"> 101 + <i class="fa fa-envelope-o" aria-hidden="true"></i> 102 + </div> 103 + <h3>Email verification codes</h3> 250 250 <p> 251 - The Administration section includes an MFA overview page that helps administrators understand adoption 252 - and usage across the wiki. 105 + Users can receive one-time verification codes by email when an authenticator app is not available or preferred. 253 253 </p> 254 - 255 - <p> 256 - The overview displays summary indicators and a Live Data table with MFA-related information. 257 - The table is filterable and sortable, making it suitable for installations with many users. 258 - </p> 259 259 </article> 260 260 261 - <aside class="product-info-card" aria-labelledby="overview-data-title"> 262 - <h3 id="overview-data-title">The overview can show</h3> 263 - <ul> 264 - #foreach ($item in $overviewItems) 265 - <li>$item</li> 266 - #end 267 - </ul> 268 - </aside> 269 - </div> 270 - </div> 271 -</section> 272 - 273 -{{/html}} 274 - 275 -{{gallery}} 276 -[[image:mfa-admin-overview.png]] 277 -{{/gallery}} 278 - 279 -{{html clean="false"}} 280 - 281 -<section class="product-section-muted" aria-labelledby="user-setup-title"> 282 - <div class="container"> 283 - <div class="product-layout"> 284 - <article class="product-summary-card"> 285 - <h2 id="user-setup-title">User setup experience</h2> 286 - 109 + <article class="product-feature"> 110 + <div class="feature-icon"> 111 + <i class="fa fa-plus-circle" aria-hidden="true"></i> 112 + </div> 113 + <h3>Combined verification</h3> 287 287 <p> 288 - Users can configure MFA from their profile page. During setup, the user scans a QR code with 289 - an authenticator application. 115 + The login flow can require both an authenticator app code and an email code when stricter verification is needed. 290 290 </p> 291 - 292 - <p> 293 - If scanning is not possible, the setup page also provides the account name and secret key that can be 294 - entered manually. After the generated verification code is entered successfully, MFA is activated for 295 - the user account. 296 - </p> 297 297 </article> 298 - 299 - <aside class="product-info-card" aria-labelledby="login-flow-title"> 300 - <h3 id="login-flow-title">Login flow</h3> 301 - <ul> 302 - <li>User signs in with the normal XWiki credentials</li> 303 - <li>XWiki asks for the configured verification code</li> 304 - <li>The user enters the app code, email code, or both</li> 305 - <li>A recovery code can be used when enabled and available</li> 306 - <li>A trusted browser or device can be remembered when allowed</li> 307 - </ul> 308 - </aside> 309 309 </div> 310 310 </div> 311 311 </section> 312 312 313 -{{/html}} 314 - 315 -{{gallery}} 316 -[[image:mfa-user-setup-qr.png]] 317 -[[image:mfa-login-verification.png]] 318 -{{/gallery}} 319 - 320 -{{html clean="false"}} 321 - 322 -<section aria-labelledby="recovery-title"> 122 +<section class="product-section-muted" aria-labelledby="security-title"> 323 323 <div class="container"> 324 324 <div class="product-layout"> 325 325 <article class="product-summary-card"> 326 - <h2 id=" recovery-title">Recoverycodes</h2>126 + <h2 id="security-title">Useful for XWiki security and NIS 2 readiness</h2> 327 327 328 328 <p> 329 - Recovery codes provide a backup access method when a user loses access to the authenticator application 330 - or cannot complete the normal verification flow. 129 + Many organizations need multi-factor authentication for enterprise software, including internal 130 + knowledge bases, intranets, documentation platforms and systems containing operational procedures 131 + or sensitive business information. 331 331 </p> 332 332 333 333 <p> 334 - Recovery codes are generated for the user and displayed only once. Each code can be used one time. 335 - When new recovery codes are generated, previous recovery codes are invalidated. 135 + For organizations using XWiki, adding two-factor authentication directly to the standard login flow 136 + can help close a practical access-control gap. It can be useful for administrator accounts, remote users, 137 + private knowledge bases and broader security readiness initiatives such as NIS 2 preparation. 336 336 </p> 337 337 338 338 <p> 339 - Usersshouldsavetheirrecoverycodesinasecurelocation immediatelyaftergeneration.340 - Administratorscanconfigure howmany recoverycodes are generated, and settingthenumberto0 disables them.141 + This extension is not a complete compliance solution on its own, but it can provide an important 142 + technical control for protecting access to XWiki. 341 341 </p> 342 342 </article> 343 343 344 - <aside class="product-info-card" aria-labelledby=" trusted-devices-title">345 - <h3 id=" trusted-devices-title">Trusteddevices</h3>146 + <aside class="product-info-card" aria-labelledby="security-controls-title"> 147 + <h3 id="security-controls-title">Useful for</h3> 346 346 <ul> 347 - <li>Reduce repeated MFA prompts on known browsers or devices</li> 348 - <li>Remain valid for the configured number of days</li> 349 - <li>Can be reviewed and removed from the user profile</li> 350 - <li>The current trusted browser is marked in the list</li> 351 - <li>Removed when a user’s MFA setup is reset</li> 149 + <li>XWiki 2FA rollout</li> 150 + <li>XWiki MFA adoption</li> 151 + <li>Administrator account protection</li> 152 + <li>Remote user access protection</li> 153 + <li>Private knowledge base security</li> 154 + <li>NIS 2 readiness initiatives</li> 352 352 </ul> 353 353 </aside> 354 354 </div> ... ... @@ -355,122 +355,14 @@ 355 355 </div> 356 356 </section> 357 357 358 -{{/html}} 359 - 360 -{{gallery}} 361 -[[image:mfa-recovery-codes.png]] 362 -[[image:mfa-trusted-devices.png]] 363 -{{/gallery}} 364 - 365 -{{html clean="false"}} 366 - 367 -<section class="product-section-muted" aria-labelledby="profile-title"> 368 - <div class="container"> 369 - <div class="product-layout"> 370 - <article class="product-summary-card"> 371 - <h2 id="profile-title">User and administrator management</h2> 372 - 373 - <p> 374 - The user profile contains a dedicated MFA section. Users can configure MFA, review their status, 375 - manage recovery codes and manage trusted devices from this area. 376 - </p> 377 - 378 - <p> 379 - Administrators can also open a user profile and access the MFA section for that user. 380 - This is useful when a user loses access to their authenticator application or needs to restart the setup process. 381 - </p> 382 - 383 - <p> 384 - Resetting MFA removes the authenticator app setup, invalidates recovery codes and removes trusted devices. 385 - If MFA is required globally, the user will be asked to configure MFA again at the next login. 386 - </p> 387 - </article> 388 - 389 - <aside class="product-info-card" aria-labelledby="profile-actions-title"> 390 - <h3 id="profile-actions-title">Profile actions</h3> 391 - <ul> 392 - #foreach ($item in $profileItems) 393 - <li>$item</li> 394 - #end 395 - </ul> 396 - </aside> 397 - </div> 398 - </div> 399 -</section> 400 - 401 -{{/html}} 402 - 403 -{{gallery}} 404 -[[image:mfa-user-profile-overview.png]] 405 -[[image:mfa-admin-user-management.png]] 406 -{{/gallery}} 407 - 408 -{{html clean="false"}} 409 - 410 -<section aria-labelledby="rollout-title"> 411 - <div class="container"> 412 - <h2 id="rollout-title">Rollout recommendations</h2> 413 - 414 - <p class="section-intro"> 415 - For a smooth rollout, start with a small administrator or pilot group before requiring MFA for everyone. 416 - A gradual rollout helps validate the configuration, prepare communication and reduce support issues. 417 - </p> 418 - 419 - <ol class="process-list"> 420 - #foreach ($entry in $rolloutItems) 421 - <li> 422 - <strong>$entry.title</strong> 423 - $entry.content 424 - </li> 425 - #end 426 - </ol> 427 - </div> 428 -</section> 429 - 430 -<section class="product-section-muted" aria-labelledby="planning-title"> 431 - <div class="container"> 432 - <div class="product-layout"> 433 - <article class="product-summary-card"> 434 - <h2 id="planning-title">Planning installation</h2> 435 - 436 - <p> 437 - Before installing or rolling out MFA, it is useful to review the current XWiki version, 438 - authentication setup, user base and security expectations. 439 - </p> 440 - 441 - <p> 442 - This helps define whether MFA should be optional, required for selected users, or enforced globally. 443 - It also helps decide whether trusted devices and recovery codes should be enabled. 444 - </p> 445 - </article> 446 - 447 - <aside class="product-info-card" aria-labelledby="planning-info-title"> 448 - <h3 id="planning-info-title">Useful information before installation</h3> 449 - <ul> 450 - <li>XWiki version</li> 451 - <li>Single wiki or wiki farm with subwikis</li> 452 - <li>Current authentication setup</li> 453 - <li>Optional or globally required MFA policy</li> 454 - <li>Trusted-device policy</li> 455 - <li>Recovery-code policy</li> 456 - <li>Rollout communication needs</li> 457 - </ul> 458 - </aside> 459 - </div> 460 - </div> 461 -</section> 462 - 463 463 <section class="cta-section" aria-labelledby="cta-title"> 464 464 <div class="container"> 465 465 <div class="cta-panel"> 466 466 <h2 id="cta-title">Interested in using this extension?</h2> 467 - 468 468 <p> 469 - Send a short message with your XWiki version, authentication setup and whether you need 470 - authenticator app codes, email verification codes, combined verification, recovery codes 471 - or trusted-device remembering. 166 + Send a short message with your XWiki version, authentication setup, and whether you need 167 + authenticator app codes, email verification codes, combined verification, or trusted-device remembering. 472 472 </p> 473 - 474 474 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a> 475 475 </div> 476 476 </div>