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, 1 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -5,71 +5,72 @@ 5 5 #set ($mainCapabilityItems = [{ 6 6 'title': 'Second verification step', 7 7 'icon': 'key', 8 - 'content': 'A fter the normal username andpasswordcheck, users completean additional verification step beforeaccessingXWiki.'8 + 'content': 'Add an additional verification screen after the normal XWiki username and password login.' 9 9 },{ 10 10 'title': 'Authenticator app codes', 11 11 'icon': 'mobile', 12 - 'content': ' Userscanverify access with time-based TOTP codes generated by authenticator applicationson mobile or desktop devices.'12 + 'content': 'Let users verify access with time-based TOTP codes generated by authenticator applications.' 13 13 },{ 14 14 'title': 'Email verification codes', 15 15 'icon': 'envelope-o', 16 - 'content': ' Users canreceiveone-time verification codes by email whenan authenticatorappis notavailable orpreferred.'16 + 'content': 'Send one-time verification codes by email when this method is enabled or combined with app codes.' 17 17 }]) 18 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 -]) 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': 'Recovery and trusted devices', 25 + 'icon': 'shield', 26 + 'content': 'Configure recovery-code count and trusted-device duration according to the organization security policy.' 27 +},{ 28 + 'title': 'Administration overview', 29 + 'icon': 'table', 30 + 'content': 'Review MFA adoption across users with summary indicators and a filterable Live Data table.' 31 +}]) 27 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 -]) 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': 'Familiar login flow', 39 + 'icon': 'sign-in', 40 + 'content': 'After the normal login, users enter the configured verification code before accessing XWiki.' 41 +},{ 42 + 'title': 'Profile management', 43 + 'icon': 'user', 44 + 'content': 'Users can review MFA status, manage recovery codes and remove trusted devices from their profile.' 45 +}]) 36 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 -]) 47 +#set ($recoveryItems = [{ 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 browsers or devices can skip repeated MFA prompts for a configured period.' 55 +},{ 56 + 'title': 'Administrator reset', 57 + 'icon': 'refresh', 58 + 'content': 'Administrators can reset a user MFA setup when the user needs to restart the configuration process.' 59 +}]) 46 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 57 #set ($rolloutItems = [{ 58 - 'title': ' Install and configuretheextension',59 - 'content': ' Startby validatingcompatibilitywith the currentXWiki versionandauthenticationsetup.'62 + 'title': 'Start with a pilot group', 63 + 'content': 'Test the extension with administrators or a small user group before enabling it widely.' 60 60 },{ 61 61 'title': 'Define the MFA policy', 62 62 'content': 'Decide whether MFA should be optional, required for administrators, or required for all users.' 63 63 },{ 64 - 'title': 'Configure recovery andtrusted devices',65 - 'content': 'Choose whether users can rely on recovery codes andwhethertrustedbrowsers ordevicesare allowed.'68 + 'title': 'Configure recovery options', 69 + 'content': 'Choose whether recovery codes and trusted devices should be enabled.' 66 66 },{ 67 - 'title': ' Test with a pilot group',68 - 'content': ' Validate the setupandloginflowwith administrators orasmallgroup beforewiderrollout.'71 + 'title': 'Inform users', 72 + 'content': 'Explain how users configure MFA, save recovery codes and manage trusted devices.' 69 69 },{ 70 - 'title': 'Communicate the user process', 71 - 'content': 'Explain how users should configure MFA, store recovery codes and manage trusted devices.' 72 -},{ 73 73 'title': 'Monitor adoption', 74 74 'content': 'Use the administration overview to identify users who still need to configure MFA.' 75 75 }]) ... ... @@ -114,11 +114,6 @@ 114 114 setup where both methods are required. It improves account protection without replacing the familiar 115 115 XWiki authentication experience. 116 116 </p> 117 - 118 - <p> 119 - It is designed for organizations that use XWiki for internal knowledge bases, intranets, 120 - documentation platforms, customer portals, workflows or other business-critical applications. 121 - </p> 122 122 </article> 123 123 124 124 <aside class="product-info-card" aria-labelledby="quick-facts-title"> ... ... @@ -125,12 +125,12 @@ 125 125 <h3 id="quick-facts-title">Quick facts</h3> 126 126 <ul> 127 127 <li>Works with the standard XWiki login flow</li> 128 - <li>Supports authenticator app codes using TOTP</li>129 - <li>Supports email-delivered one-time verification codes</li>130 - <li>Can require app codeand email codetogether</li>124 + <li>Supports TOTP authenticator applications</li> 125 + <li>Supports email-delivered one-time codes</li> 126 + <li>Can require app and email verification together</li> 131 131 <li>Includes recovery codes for backup access</li> 132 132 <li>Can remember trusted browsers or devices</li> 133 - <li>Includes administration and user setupcontrols</li>129 + <li>Includes administration and user controls</li> 134 134 </ul> 135 135 </aside> 136 136 </div> ... ... @@ -137,13 +137,12 @@ 137 137 </div> 138 138 </section> 139 139 140 -<section aria-labelledby=" features-title">136 +<section aria-labelledby="capabilities-title"> 141 141 <div class="container"> 142 - <h2 id=" features-title">Main capabilities</h2>138 + <h2 id="capabilities-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 changing 146 - the standard login experience. 141 + A focused set of MFA/2FA features for stronger XWiki account protection without changing the standard login experience. 147 147 </p> 148 148 149 149 <div class="product-feature-grid"> ... ... @@ -167,32 +167,28 @@ 167 167 <div class="container"> 168 168 <div class="product-layout"> 169 169 <article class="product-summary-card"> 170 - <h2 id="security-title">Useful for XWiki security and NIS2readiness</h2>165 + <h2 id="security-title">Useful for XWiki security and access protection</h2> 171 171 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. 168 + Many organizations need multi-factor authentication for internal tools, knowledge bases, 169 + intranets, documentation platforms and systems containing operational or sensitive information. 176 176 </p> 177 177 178 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. 173 + For XWiki, adding two-factor authentication directly to the standard login flow helps protect 174 + administrator accounts, remote users, private knowledge bases and customer or partner portals. 182 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 190 <aside class="product-info-card" aria-labelledby="use-cases-title"> 191 191 <h3 id="use-cases-title">Typical use cases</h3> 192 192 <ul> 193 - #foreach ($item in $useCaseItems) 194 - <li>$item</li> 195 - #end 181 + <li>Administrator account protection</li> 182 + <li>Internal knowledge base security</li> 183 + <li>Private documentation platforms</li> 184 + <li>Remote user access protection</li> 185 + <li>Customer or partner portals</li> 186 + <li>Security review and NIS 2 readiness initiatives</li> 196 196 </ul> 197 197 </aside> 198 198 </div> ... ... @@ -199,74 +199,32 @@ 199 199 </div> 200 200 </section> 201 201 202 -<section aria-labelledby="admin-title"> 193 +<section aria-labelledby="admin-experience-title"> 203 203 <div class="container"> 204 - <div class="product-layout"> 205 - <article class="product-summary-card"> 206 - <h2 id="admin-title">Administrator configuration</h2> 195 + <h2 id="admin-experience-title">Administrator experience</h2> 207 207 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. 211 - </p> 197 + <p class="section-intro"> 198 + Administrators can configure the MFA policy, monitor adoption and reset user MFA setups when needed. 199 + </p> 212 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> 201 + <div class="product-feature-grid"> 202 + #foreach ($entry in $adminExperienceItems) 203 + <article class="product-feature"> 204 + <div class="card-heading"> 205 + <div class="feature-icon"> 206 + <i class="fa fa-$entry.icon" aria-hidden="true"></i> 207 + </div> 208 + <h3>$entry.title</h3> 209 + </div> 217 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 - </article> 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> 211 + <p>$entry.content</p> 212 + </article> 213 + #end 232 232 </div> 233 - </div> 234 -</section> 235 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 - 250 - <p> 251 - The Administration section includes an MFA overview page that helps administrators understand adoption 252 - and usage across the wiki. 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 - </article> 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> 216 + <p class="product-gallery-caption"> 217 + Administration screens for configuring MFA and reviewing MFA adoption across users. 218 + </p> 270 270 </div> 271 271 </section> 272 272 ... ... @@ -273,40 +273,38 @@ 273 273 {{/html}} 274 274 275 275 {{gallery}} 225 +[[image:mfa-admin-configuration.png]] 276 276 [[image:mfa-admin-overview.png]] 277 277 {{/gallery}} 278 278 279 279 {{html clean="false"}} 280 280 281 -<section class="product-section-muted" aria-labelledby="user- setup-title">231 +<section class="product-section-muted" aria-labelledby="user-experience-title"> 282 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> 233 + <h2 id="user-experience-title">User experience</h2> 286 286 287 - <p> 288 - Users can configure MFA from their profile page. During setup, the user scans a QR code with 289 - an authenticator application. 290 - </p> 235 + <p class="section-intro"> 236 + Users can configure MFA from their profile and complete the second verification step during login. 237 + </p> 291 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 - </article> 239 + <div class="product-feature-grid"> 240 + #foreach ($entry in $userExperienceItems) 241 + <article class="product-feature"> 242 + <div class="card-heading"> 243 + <div class="feature-icon"> 244 + <i class="fa fa-$entry.icon" aria-hidden="true"></i> 245 + </div> 246 + <h3>$entry.title</h3> 247 + </div> 298 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> 249 + <p>$entry.content</p> 250 + </article> 251 + #end 309 309 </div> 253 + 254 + <p class="product-gallery-caption"> 255 + User setup and login verification screens. 256 + </p> 310 310 </div> 311 311 </section> 312 312 ... ... @@ -321,37 +321,30 @@ 321 321 322 322 <section aria-labelledby="recovery-title"> 323 323 <div class="container"> 324 - <div class="product-layout"> 325 - <article class="product-summary-card"> 326 - <h2 id="recovery-title">Recovery codes</h2> 271 + <h2 id="recovery-title">Recovery codes and trusted devices</h2> 327 327 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. 331 - </p> 273 + <p class="section-intro"> 274 + Recovery codes and trusted devices help balance stronger access protection with a smoother user experience. 275 + </p> 332 332 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. 336 - </p> 277 + <div class="product-feature-grid"> 278 + #foreach ($entry in $recoveryItems) 279 + <article class="product-feature"> 280 + <div class="card-heading"> 281 + <div class="feature-icon"> 282 + <i class="fa fa-$entry.icon" aria-hidden="true"></i> 283 + </div> 284 + <h3>$entry.title</h3> 285 + </div> 337 337 338 - <p> 339 - Users should save their recovery codes in a secure location immediately after generation. 340 - Administrators can configure how many recovery codes are generated, and setting the number to 0 disables them. 341 - </p> 342 - </article> 343 - 344 - <aside class="product-info-card" aria-labelledby="trusted-devices-title"> 345 - <h3 id="trusted-devices-title">Trusted devices</h3> 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> 352 - </ul> 353 - </aside> 287 + <p>$entry.content</p> 288 + </article> 289 + #end 354 354 </div> 291 + 292 + <p class="product-gallery-caption"> 293 + Recovery codes, trusted devices and user profile management. 294 + </p> 355 355 </div> 356 356 </section> 357 357 ... ... @@ -360,47 +360,6 @@ 360 360 {{gallery}} 361 361 [[image:mfa-recovery-codes.png]] 362 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 404 [[image:mfa-user-profile-overview.png]] 405 405 [[image:mfa-admin-user-management.png]] 406 406 {{/gallery}} ... ... @@ -407,45 +407,29 @@ 407 407 408 408 {{html clean="false"}} 409 409 410 -<section aria-labelledby="rollout-title"> 309 +<section class="product-section-muted" aria-labelledby="rollout-title"> 411 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 432 <div class="product-layout"> 433 433 <article class="product-summary-card"> 434 - <h2 id=" planning-title">Planninginstallation</h2>313 + <h2 id="rollout-title">Rollout recommendations</h2> 435 435 436 436 <p> 437 - BeforeinstallingorrollingoutMFA,it isuseful to reviewthecurrentXWiki version,438 - a uthenticationsetup,userbaseandsecurityexpectations.316 + For a smooth rollout, start with a small administrator or pilot group before requiring MFA for everyone. 317 + This helps validate the configuration, prepare user communication and reduce support issues. 439 439 </p> 440 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> 320 + <ol class="process-list"> 321 + #foreach ($entry in $rolloutItems) 322 + <li> 323 + <strong>$entry.title</strong> 324 + $entry.content 325 + </li> 326 + #end 327 + </ol> 445 445 </article> 446 446 447 - <aside class="product-info-card" aria-labelledby="planning- info-title">448 - <h3 id="planning- info-title">Useful information before installation</h3>330 + <aside class="product-info-card" aria-labelledby="planning-title"> 331 + <h3 id="planning-title">Useful information before installation</h3> 449 449 <ul> 450 450 <li>XWiki version</li> 451 451 <li>Single wiki or wiki farm with subwikis</li>
- mfa-admin-configuration.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Admin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +123.2 KB - Content