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
-
... ... @@ -3,90 +3,75 @@ 3 3 #set ($discard = $xwiki.ssx.use('products.WebHome')) 4 4 5 5 #set ($mainCapabilityItems = [{ 6 -'title': 'Second verification step', 7 -'icon': 'key', 8 -'content': 'Add an additional verification s creen afterthenormal XWiki usernameand password login.'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 9 },{ 10 -'title': 'Authenticator app codes', 11 -'icon': 'mobile', 12 -'content': ' Let users verify access with time-based TOTP codes generated by authenticator applications.'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 13 },{ 14 -'title': ' Recoveryandtrusteddevices',15 -'icon': ' shield',16 -'content': ' Providebackupaccesswithrecoverycodesandreducerepeatedpromptsontrustedbrowsers.'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 17 }]) 18 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 -}]) 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 +]) 32 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 -}]) 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 +]) 46 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 -}]) 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 +]) 60 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 -}]) 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 +]) 74 74 75 75 #set ($rolloutItems = [{ 76 -'title': ' Startwitha pilot group',77 -'content': ' Testtheextension withadministratorsorasmalluser group before enablingit widely.'58 + 'title': 'Install and configure the extension', 59 + 'content': 'Start by validating compatibility with the current XWiki version and authentication setup.' 78 78 },{ 79 -'title': 'Define the MFA policy', 80 -'content': 'Decide whether MFA should be optional atfirst or required for all users.'61 + 'title': 'Define the MFA policy', 62 + 'content': 'Decide whether MFA should be optional, required for administrators, or required for all users.' 81 81 },{ 82 -'title': 'Configure recovery options',83 -'content': 'Choose the number ofrecovery codes and whether trusted devicesshould be allowed.'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.' 84 84 },{ 85 -'title': ' Informusers',86 -'content': ' ExplainhowusersconfigureMFA, saverecoverycodesandmanagetrusteddevices.'67 + 'title': 'Test with a pilot group', 68 + 'content': 'Validate the setup and login flow with administrators or a small group before wider rollout.' 87 87 },{ 88 -'title': 'Monitor adoption', 89 -'content': 'Use the administration overview to identify users who still need to configure MFA.' 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.' 90 90 }]) 91 91 92 92 {{html clean="false"}} ... ... @@ -98,20 +98,17 @@ 98 98 XWiki 2FA and MFA 99 99 </div> 100 100 101 -``` 102 -<h1 id="product-title">XWiki Two-Factor Authentication</h1> 86 + <h1 id="product-title">XWiki Two-Factor Authentication</h1> 103 103 104 -<p class="lead"> 105 - Protect XWiki logins with a second verification step using authenticator app codes, 106 - recoverycodesand trusteddevices.107 -</p> 88 + <p class="lead"> 89 + Protect XWiki logins with a second verification step using authenticator app codes, 90 + email verification codes, or both. 91 + </p> 108 108 109 -<div class="hero-actions"> 110 - <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Ask about this extension</a> 111 - <a class="btn btn-secondary" href="$xwiki.getURL('products.WebHome')">View all products</a> 112 -</div> 113 -``` 114 - 93 + <div class="hero-actions"> 94 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Ask about this extension</a> 95 + <a class="btn btn-secondary" href="$xwiki.getURL('products.WebHome')">View all products</a> 96 + </div> 115 115 </div> 116 116 </section> 117 117 ... ... @@ -121,63 +121,63 @@ 121 121 <article class="product-summary-card"> 122 122 <h2 id="overview-title">Two-factor authentication built into XWiki</h2> 123 123 124 -``` 125 - <p> 126 - XWiki Two-Factor Authentication adds MFA support to the standard XWiki login flow. 127 - Users continue to sign in with their normal username and password, then confirm access 128 - with a time-based verification code from an authenticator application. 129 - </p> 106 + <p> 107 + XWiki Two-Factor Authentication adds MFA/2FA support to the standard XWiki login flow. 108 + Users continue to sign in with their normal username and password, then confirm access with 109 + an additional verification method. 110 + </p> 130 130 131 - <p> 132 - The extension is designed for organizations that want stronger access protection for 133 - internal knowledge bases, intranets, documentation platforms, customer portals and other 134 - XWiki-based applications. 135 - </p> 136 - </article> 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. 116 + </p> 137 137 138 - <aside class="product-info-card" aria-labelledby="quick-facts-title"> 139 - <h3 id="quick-facts-title">Quick facts</h3> 140 - <ul> 141 - <li>Works with the standard XWiki login flow</li> 142 - <li>Supports TOTP authenticator applications</li> 143 - <li>Can require MFA for all users</li> 144 - <li>Includes one-time recovery codes</li> 145 - <li>Can remember trusted browsers or devices</li> 146 - <li>Includes user self-service controls</li> 147 - <li>Includes an administration overview</li> 148 - </ul> 149 - </aside> 150 -</div> 151 -``` 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 + </article> 152 152 124 + <aside class="product-info-card" aria-labelledby="quick-facts-title"> 125 + <h3 id="quick-facts-title">Quick facts</h3> 126 + <ul> 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 code and email code together</li> 131 + <li>Includes recovery codes for backup access</li> 132 + <li>Can remember trusted browsers or devices</li> 133 + <li>Includes administration and user setup controls</li> 134 + </ul> 135 + </aside> 136 + </div> 153 153 </div> 154 154 </section> 155 155 156 -<section aria-labelledby=" capabilities-title">140 +<section aria-labelledby="features-title"> 157 157 <div class="container"> 158 - <h2 id=" capabilities-title">Main capabilities</h2>142 + <h2 id="features-title">Main capabilities</h2> 159 159 160 - ```161 - <pclass="section-intro">162 - AfocusedsetofMFA featuresforstronger XWikiaccount protection without replacing the familiar login experience.163 -</p> 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. 147 + </p> 164 164 165 -<div class="product-feature-grid"> 166 - #foreach ($entry in $mainCapabilityItems) 167 - <article class="product-feature"> 168 - <div class="card-heading"> 169 - <div class="feature-icon"> 170 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 171 - </div> 172 - <h3>$entry.title</h3> 173 - </div> 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> 174 174 175 - <p>$entry.content</p> 176 - </article> 177 - #end 178 -</div> 179 -``` 180 - 159 + <p>$entry.content</p> 160 + </article> 161 + #end 162 + </div> 181 181 </div> 182 182 </section> 183 183 ... ... @@ -185,224 +185,253 @@ 185 185 <div class="container"> 186 186 <div class="product-layout"> 187 187 <article class="product-summary-card"> 188 - <h2 id="security-title">Useful for XWiki security and accessprotection</h2>170 + <h2 id="security-title">Useful for XWiki security and NIS 2 readiness</h2> 189 189 190 -``` 191 - <p> 192 - Many organizations use XWiki to store internal documentation, procedures, operational 193 - knowledge and business-critical information. Adding a second authentication factor helps 194 - reduce the risk of account compromise when a password is exposed or reused. 195 - </p> 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. 176 + </p> 196 196 197 - <p> 198 - Theextensionisespeciallyuseful forprotecting administrator accounts,remoteusers,199 - pr ivateknowledgebasesandcustomerorpartnerportals.200 - </p>201 - </ article>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> 202 202 203 - <aside class="product-info-card" aria-labelledby="use-cases-title"> 204 - <h3 id="use-cases-title">Typical use cases</h3> 205 - <ul> 206 - <li>Administrator account protection</li> 207 - <li>Internal knowledge base security</li> 208 - <li>Private documentation platforms</li> 209 - <li>Remote user access protection</li> 210 - <li>Customer or partner portals</li> 211 - <li>Security review and NIS 2 readiness initiatives</li> 212 - </ul> 213 - </aside> 214 -</div> 215 -``` 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 + </article> 216 216 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> 217 217 </div> 218 218 </section> 219 219 220 -<section aria-labelledby="admin- experience-title">202 +<section aria-labelledby="admin-title"> 221 221 <div class="container"> 222 - <h2 id="admin-experience-title">Administrator configuration and monitoring</h2> 204 + <div class="product-layout"> 205 + <article class="product-summary-card"> 206 + <h2 id="admin-title">Administrator configuration</h2> 223 223 224 - ```225 - <pclass="section-intro">226 - AdministratorscanconfiguretheMFApolicy,definerecoveryoptionsandmonitoradoptionfromtheXWiki Administration section.227 -</p> 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> 228 228 229 -<div class="product-feature-grid"> 230 - #foreach ($entry in $adminExperienceItems) 231 - <article class="product-feature"> 232 - <div class="card-heading"> 233 - <div class="feature-icon"> 234 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 235 - </div> 236 - <h3>$entry.title</h3> 237 - </div> 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> 238 238 239 - <p> $entry.content</p>240 - </article>241 - #end242 -</ div>243 - ```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> 244 244 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 + 245 245 {{/html}} 246 246 247 247 {{gallery}} 248 248 [[image:mfa-admin-configuration.png]] 249 -[[image:mfa-admin-overview.png]] 250 -[[image:mfa-admin-full.png]] 251 251 {{/gallery}} 252 252 253 253 {{html clean="false"}} 254 254 255 - ```256 -< pclass="product-gallery-caption">257 - Administrationscreensforconfiguring MFA andreviewing MFA adoptionacrossusers.258 -< /p>259 - ```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> 260 260 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> 261 261 </div> 262 262 </section> 263 263 264 -<section class="product-section-muted" aria-labelledby="user-experience-title"> 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"> 265 265 <div class="container"> 266 - <h2 id="user-experience-title">User setup and login verification</h2> 283 + <div class="product-layout"> 284 + <article class="product-summary-card"> 285 + <h2 id="user-setup-title">User setup experience</h2> 267 267 268 - ```269 - <pclass="section-intro">270 - UserscanconfigureMFAfromtheirprofileorduringthe enforced setup flow, then verify future logins with theirauthenticator app.271 -</p> 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> 272 272 273 -<div class="product-feature-grid"> 274 - #foreach ($entry in $userExperienceItems) 275 - <article class="product-feature"> 276 - <div class="card-heading"> 277 - <div class="feature-icon"> 278 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 279 - </div> 280 - <h3>$entry.title</h3> 281 - </div> 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> 282 282 283 - <p>$entry.content</p> 284 - </article> 285 - #end 286 -</div> 287 -``` 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 + </div> 310 + </div> 311 +</section> 288 288 289 289 {{/html}} 290 290 291 291 {{gallery}} 292 292 [[image:mfa-user-setup-qr.png]] 293 -[[image:mfa-login-verification-setup.png]] 294 -[[image:mfa-login-verification-code.png]] 317 +[[image:mfa-login-verification.png]] 295 295 {{/gallery}} 296 296 297 297 {{html clean="false"}} 298 298 299 -``` 300 -<p class="product-gallery-caption"> 301 - User setup, enforced MFA configuration and login verification screens. 302 -</p> 303 -``` 304 - 305 - </div> 306 -</section> 307 - 308 -<section aria-labelledby="self-service-title"> 322 +<section aria-labelledby="recovery-title"> 309 309 <div class="container"> 310 - <h2 id="self-service-title">Recovery codes and trusted devices</h2> 324 + <div class="product-layout"> 325 + <article class="product-summary-card"> 326 + <h2 id="recovery-title">Recovery codes</h2> 311 311 312 - ```313 - <p class="section-intro">314 - Recoverycodesandtrusteddeviceshelpbalancestrongeraccess protection witha smootheruser experience.315 -</p> 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> 316 316 317 -<div class="product-feature-grid"> 318 - #foreach ($entry in $selfServiceItems) 319 - <article class="product-feature"> 320 - <div class="card-heading"> 321 - <div class="feature-icon"> 322 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 323 - </div> 324 - <h3>$entry.title</h3> 325 - </div> 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> 326 326 327 - <p> $entry.content</p>328 - </article>329 - #end330 -</ div>331 - ```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> 332 332 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> 354 + </div> 355 + </div> 356 +</section> 357 + 333 333 {{/html}} 334 334 335 335 {{gallery}} 336 -[[image:mfa-user-profile-overview.png]] 337 -[[image:mfa-recovery-codes-not-generated.png]] 338 -[[image:mfa-recovery-codes-generated.png]] 361 +[[image:mfa-recovery-codes.png]] 339 339 [[image:mfa-trusted-devices.png]] 340 -[[image:mfa-user-profile-full.png]] 341 341 {{/gallery}} 342 342 343 343 {{html clean="false"}} 344 344 345 -``` 346 -<p class="product-gallery-caption"> 347 - User profile screens for recovery codes, trusted devices and MFA self-service management. 348 -</p> 349 -``` 350 - 351 - </div> 352 -</section> 353 - 354 -<section class="product-section-muted" aria-labelledby="admin-support-title"> 367 +<section class="product-section-muted" aria-labelledby="profile-title"> 355 355 <div class="container"> 356 - <h2 id="admin-support-title">Administrator support and user recovery</h2> 369 + <div class="product-layout"> 370 + <article class="product-summary-card"> 371 + <h2 id="profile-title">User and administrator management</h2> 357 357 358 - ```359 - <p class="section-intro">360 - Administrators canhelpusers recoverfromlost devicesorrestart MFA setup when needed.361 -</p> 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> 362 362 363 -<div class="product-feature-grid"> 364 - #foreach ($entry in $adminSupportItems) 365 - <article class="product-feature"> 366 - <div class="card-heading"> 367 - <div class="feature-icon"> 368 - <i class="fa fa-$entry.icon" aria-hidden="true"></i> 369 - </div> 370 - <h3>$entry.title</h3> 371 - </div> 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> 372 372 373 - <p> $entry.content</p>374 - </article>375 - #end376 -</ div>377 - ```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> 378 378 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 + 379 379 {{/html}} 380 380 381 381 {{gallery}} 404 +[[image:mfa-user-profile-overview.png]] 382 382 [[image:mfa-admin-user-management.png]] 383 383 {{/gallery}} 384 384 385 385 {{html clean="false"}} 386 386 387 -``` 388 -<p class="product-gallery-caption"> 389 - Administrator view for checking and resetting a user MFA setup. 390 -</p> 391 -``` 392 - 393 - </div> 394 -</section> 395 - 396 396 <section aria-labelledby="rollout-title"> 397 397 <div class="container"> 398 - <div class="product-layout"> 399 - <article class="product-summary-card"> 400 - <h2 id="rollout-title">Rollout recommendations</h2> 412 + <h2 id="rollout-title">Rollout recommendations</h2> 401 401 402 -``` 403 - <p> 414 + <p class="section-intro"> 404 404 For a smooth rollout, start with a small administrator or pilot group before requiring MFA for everyone. 405 - Thishelps validate the configuration, prepareusercommunication and reduce support issues.416 + A gradual rollout helps validate the configuration, prepare communication and reduce support issues. 406 406 </p> 407 407 408 408 <ol class="process-list"> ... ... @@ -413,28 +413,39 @@ 413 413 </li> 414 414 #end 415 415 </ol> 416 - </article> 427 + </div> 428 +</section> 417 417 418 - <aside class="product-info-card" aria-labelledby="planning-title"> 419 - <h3 id="planning-title">Useful information before installation</h3> 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> 420 420 421 - <p class="product-card-note"> 422 - These details help evaluate compatibility, rollout scope and configuration options. 423 - </p> 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> 424 424 425 - <ul> 426 - <li>XWiki version</li> 427 - <li>Single wiki or wiki farm with subwikis</li> 428 - <li>Current authentication setup</li> 429 - <li>Optional or globally required MFA policy</li> 430 - <li>Trusted-device policy</li> 431 - <li>Recovery-code policy</li> 432 - <li>Rollout communication needs</li> 433 - </ul> 434 - </aside> 435 -</div> 436 -``` 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> 437 437 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> 438 438 </div> 439 439 </section> 440 440 ... ... @@ -443,15 +443,14 @@ 443 443 <div class="cta-panel"> 444 444 <h2 id="cta-title">Interested in using this extension?</h2> 445 445 446 -``` 447 - <p> 448 - Send a short message with your XWiki version, current authentication setup and MFA rollout goal. 449 - </p> 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. 472 + </p> 450 450 451 - <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a> 452 -</div> 453 -``` 454 - 474 + <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a> 475 + </div> 455 455 </div> 456 456 </section> 457 457
- 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