@nauth-toolkit/core 0.1.107 → 0.1.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/dto/admin-remove-device.dto.d.ts +22 -0
- package/dist/dto/admin-remove-device.dto.d.ts.map +1 -0
- package/dist/dto/{admin-remove-devices.dto.js → admin-remove-device.dto.js} +21 -21
- package/dist/dto/admin-remove-device.dto.js.map +1 -0
- package/dist/dto/admin-set-preferred-device.dto.d.ts +32 -0
- package/dist/dto/admin-set-preferred-device.dto.d.ts.map +1 -0
- package/dist/dto/admin-set-preferred-device.dto.js +64 -0
- package/dist/dto/admin-set-preferred-device.dto.js.map +1 -0
- package/dist/dto/admin-signup-social.dto.d.ts +2 -2
- package/dist/dto/admin-signup.dto.d.ts +2 -2
- package/dist/dto/challenge-response.dto.d.ts +4 -0
- package/dist/dto/challenge-response.dto.d.ts.map +1 -1
- package/dist/dto/disable-user.dto.d.ts +2 -2
- package/dist/dto/enable-user.dto.d.ts +2 -2
- package/dist/dto/get-user-response.dto.d.ts +1 -1
- package/dist/dto/get-user-response.dto.js +1 -1
- package/dist/dto/get-users.dto.d.ts +2 -2
- package/dist/dto/index.d.ts +4 -4
- package/dist/dto/index.d.ts.map +1 -1
- package/dist/dto/index.js +4 -4
- package/dist/dto/index.js.map +1 -1
- package/dist/dto/remove-device.dto.d.ts +49 -0
- package/dist/dto/remove-device.dto.d.ts.map +1 -0
- package/dist/dto/remove-device.dto.js +76 -0
- package/dist/dto/remove-device.dto.js.map +1 -0
- package/dist/dto/respond-challenge.dto.d.ts +8 -0
- package/dist/dto/respond-challenge.dto.d.ts.map +1 -1
- package/dist/dto/respond-challenge.dto.js +14 -0
- package/dist/dto/respond-challenge.dto.js.map +1 -1
- package/dist/dto/set-preferred-device.dto.d.ts +45 -0
- package/dist/dto/set-preferred-device.dto.d.ts.map +1 -0
- package/dist/dto/set-preferred-device.dto.js +73 -0
- package/dist/dto/set-preferred-device.dto.js.map +1 -0
- package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
- package/dist/dto/setup-mfa.dto.js.map +1 -1
- package/dist/dto/user-response.dto.d.ts +3 -3
- package/dist/dto/user-response.dto.js +5 -5
- package/dist/handlers/client-info.handler.d.ts.map +1 -1
- package/dist/handlers/client-info.handler.js.map +1 -1
- package/dist/interfaces/provider.interface.d.ts.map +1 -1
- package/dist/openapi/components.schemas.json +78 -58
- package/dist/schemas/auth-config.schema.d.ts +16 -16
- package/dist/services/admin-auth.service.d.ts +5 -5
- package/dist/services/admin-auth.service.js +2 -2
- package/dist/services/auth-audit.service.d.ts.map +1 -1
- package/dist/services/auth-audit.service.js +33 -2
- package/dist/services/auth-audit.service.js.map +1 -1
- package/dist/services/auth-challenge-helper.service.d.ts.map +1 -1
- package/dist/services/auth-challenge-helper.service.js +52 -2
- package/dist/services/auth-challenge-helper.service.js.map +1 -1
- package/dist/services/auth-service-internal-helpers.d.ts.map +1 -1
- package/dist/services/auth-service-internal-helpers.js +35 -0
- package/dist/services/auth-service-internal-helpers.js.map +1 -1
- package/dist/services/auth.service.d.ts +2 -2
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +3 -2
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/email-verification.service.d.ts.map +1 -1
- package/dist/services/email-verification.service.js +17 -0
- package/dist/services/email-verification.service.js.map +1 -1
- package/dist/services/mfa-base.service.d.ts +23 -6
- package/dist/services/mfa-base.service.d.ts.map +1 -1
- package/dist/services/mfa-base.service.js +70 -18
- package/dist/services/mfa-base.service.js.map +1 -1
- package/dist/services/mfa.service.d.ts +54 -35
- package/dist/services/mfa.service.d.ts.map +1 -1
- package/dist/services/mfa.service.js +214 -165
- package/dist/services/mfa.service.js.map +1 -1
- package/dist/services/phone-verification.service.d.ts.map +1 -1
- package/dist/services/phone-verification.service.js +14 -2
- package/dist/services/phone-verification.service.js.map +1 -1
- package/dist/services/session.service.d.ts +1 -2
- package/dist/services/session.service.d.ts.map +1 -1
- package/dist/services/session.service.js.map +1 -1
- package/dist/services/user.service.d.ts +5 -5
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +16 -10
- package/dist/services/user.service.js.map +1 -1
- package/package.json +2 -2
- package/dist/dto/admin-remove-devices.dto.d.ts +0 -25
- package/dist/dto/admin-remove-devices.dto.d.ts.map +0 -1
- package/dist/dto/admin-remove-devices.dto.js.map +0 -1
- package/dist/dto/admin-set-preferred-method.dto.d.ts +0 -25
- package/dist/dto/admin-set-preferred-method.dto.d.ts.map +0 -1
- package/dist/dto/admin-set-preferred-method.dto.js +0 -50
- package/dist/dto/admin-set-preferred-method.dto.js.map +0 -1
- package/dist/dto/remove-devices.dto.d.ts +0 -48
- package/dist/dto/remove-devices.dto.d.ts.map +0 -1
- package/dist/dto/remove-devices.dto.js +0 -79
- package/dist/dto/remove-devices.dto.js.map +0 -1
- package/dist/dto/set-preferred-method.dto.d.ts +0 -44
- package/dist/dto/set-preferred-method.dto.d.ts.map +0 -1
- package/dist/dto/set-preferred-method.dto.js +0 -75
- package/dist/dto/set-preferred-method.dto.js.map +0 -1
|
@@ -150,24 +150,28 @@ class MFAService {
|
|
|
150
150
|
* @param methodType - MFA method to remove (normalized)
|
|
151
151
|
* @param removedBy - Actor performing the removal
|
|
152
152
|
*/
|
|
153
|
-
|
|
153
|
+
/**
|
|
154
|
+
* Shared implementation for removing a single MFA device by device ID.
|
|
155
|
+
*
|
|
156
|
+
* @param targetUser - Target user (self-service or admin target)
|
|
157
|
+
* @param deviceId - MFA device ID to remove
|
|
158
|
+
* @param removedBy - Actor performing the removal
|
|
159
|
+
* @returns Removal result
|
|
160
|
+
* @throws {NAuthException} NOT_FOUND when device is not found for the user
|
|
161
|
+
*/
|
|
162
|
+
async removeDeviceInternal(targetUser, deviceId, removedBy) {
|
|
154
163
|
const userId = targetUser.id;
|
|
155
|
-
|
|
156
|
-
const isPreferredMethod = preferredMethod === methodType;
|
|
157
|
-
// Get all active devices for this user
|
|
164
|
+
// Get all active devices for this user and find the target device
|
|
158
165
|
const activeDevices = await this.getActiveDevicesForUserId(userId);
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, `No active ${methodType} MFA devices found for this user`);
|
|
163
|
-
}
|
|
164
|
-
// Delete all devices of this method type
|
|
165
|
-
let deletedCount = 0;
|
|
166
|
-
for (const device of devicesToRemove) {
|
|
167
|
-
const result = await this.mfaDeviceRepository.delete(device.id);
|
|
168
|
-
deletedCount += result.affected || 0;
|
|
166
|
+
const deviceToRemove = activeDevices.find((d) => d.id === deviceId);
|
|
167
|
+
if (!deviceToRemove) {
|
|
168
|
+
throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.NOT_FOUND, 'MFA device not found', { deviceId });
|
|
169
169
|
}
|
|
170
|
-
|
|
170
|
+
const removedMethod = deviceToRemove.type;
|
|
171
|
+
// Delete the specific device
|
|
172
|
+
const result = await this.mfaDeviceRepository.delete(deviceId);
|
|
173
|
+
const deletedCount = result.affected || 0;
|
|
174
|
+
// Re-load remaining devices after deletion
|
|
171
175
|
const remainingActiveDevices = await this.getActiveDevicesForUserId(userId);
|
|
172
176
|
let mfaDisabled = false;
|
|
173
177
|
// If no active devices remain, disable MFA for user
|
|
@@ -179,23 +183,30 @@ class MFAService {
|
|
|
179
183
|
});
|
|
180
184
|
mfaDisabled = true;
|
|
181
185
|
// ============================================================================
|
|
182
|
-
// Audit: Record MFA disabled (
|
|
186
|
+
// Audit: Record MFA disabled (last device removed)
|
|
183
187
|
// ============================================================================
|
|
184
188
|
if (this.auditService && this.clientInfoService) {
|
|
185
189
|
try {
|
|
190
|
+
const actor = removedBy === 'admin' ? context_storage_1.ContextStorage.get('CURRENT_USER') : null;
|
|
191
|
+
const actorNameCandidate = actor
|
|
192
|
+
? `${actor.firstName || ''} ${actor.lastName || ''}`.trim()
|
|
193
|
+
: '';
|
|
194
|
+
const performedByName = actorNameCandidate.length > 0 ? actorNameCandidate : actor?.email || undefined;
|
|
186
195
|
await this.auditService?.recordEvent({
|
|
187
196
|
userId,
|
|
188
197
|
eventType: auth_audit_event_type_enum_1.AuthAuditEventType.MFA_DISABLED,
|
|
189
198
|
eventStatus: 'INFO',
|
|
190
|
-
|
|
199
|
+
authMethod: removedBy === 'admin' ? 'admin' : undefined,
|
|
200
|
+
performedBy: removedBy === 'admin' && actor ? actor.sub : undefined,
|
|
201
|
+
reason: removedBy === 'admin' ? 'admin_action' : 'last_device_removed',
|
|
191
202
|
description: removedBy === 'admin'
|
|
192
|
-
? 'MFA disabled by admin -
|
|
193
|
-
: 'MFA disabled -
|
|
194
|
-
// Client info automatically included from context
|
|
203
|
+
? 'MFA disabled by admin - last device removed'
|
|
204
|
+
: 'MFA disabled - last device removed',
|
|
195
205
|
metadata: {
|
|
196
|
-
|
|
197
|
-
|
|
206
|
+
removedDeviceId: deviceId,
|
|
207
|
+
removedMethod,
|
|
198
208
|
removedBy,
|
|
209
|
+
...(performedByName ? { performedByName } : {}),
|
|
199
210
|
},
|
|
200
211
|
});
|
|
201
212
|
}
|
|
@@ -216,11 +227,11 @@ class MFAService {
|
|
|
216
227
|
allowedMethods: this.config.mfa.allowedMethods || [],
|
|
217
228
|
requiresSetup: true,
|
|
218
229
|
});
|
|
219
|
-
this.logger?.log?.(`Created MFA_SETUP_REQUIRED challenge for user ${targetUser.sub} after
|
|
230
|
+
this.logger?.log?.(`Created MFA_SETUP_REQUIRED challenge for user ${targetUser.sub} after device removal`);
|
|
220
231
|
}
|
|
221
232
|
catch (error) {
|
|
222
233
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
223
|
-
this.logger?.warn?.(`Failed to create MFA_SETUP_REQUIRED challenge after
|
|
234
|
+
this.logger?.warn?.(`Failed to create MFA_SETUP_REQUIRED challenge after device removal: ${errorMessage}`);
|
|
224
235
|
}
|
|
225
236
|
}
|
|
226
237
|
}
|
|
@@ -228,30 +239,19 @@ class MFAService {
|
|
|
228
239
|
else {
|
|
229
240
|
// Update mfaMethods array with remaining methods
|
|
230
241
|
const remainingMethods = [...new Set(remainingActiveDevices.map((d) => d.type))];
|
|
231
|
-
//
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
if (remainingActiveDevices[i].id) {
|
|
245
|
-
await this.mfaDeviceRepository.update({ id: remainingActiveDevices[i].id }, { isPrimary: false });
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
this.logger?.log?.(`Updated preferred MFA method to ${newPreferredMethod} after removing ${methodType}`);
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
// No preferred method change needed, just update mfaMethods
|
|
252
|
-
await this.userRepository.update({ id: userId }, {
|
|
253
|
-
mfaMethods: remainingMethods,
|
|
254
|
-
});
|
|
242
|
+
// Determine preferred method: keep if still configured, otherwise pick a new one.
|
|
243
|
+
const preferredMethod = targetUser.preferredMfaMethod;
|
|
244
|
+
const preferredStillConfigured = !!preferredMethod && remainingActiveDevices.some((d) => d.type === preferredMethod);
|
|
245
|
+
const finalPreferredMethod = preferredStillConfigured ? preferredMethod : remainingActiveDevices[0].type;
|
|
246
|
+
await this.userRepository.update({ id: userId }, {
|
|
247
|
+
mfaMethods: remainingMethods,
|
|
248
|
+
preferredMfaMethod: finalPreferredMethod,
|
|
249
|
+
});
|
|
250
|
+
// Normalize primary device flags: ensure exactly one active device is primary.
|
|
251
|
+
// Prefer a device of the preferred method (best UX).
|
|
252
|
+
const primaryDevice = remainingActiveDevices.find((d) => d.type === finalPreferredMethod) || remainingActiveDevices[0];
|
|
253
|
+
for (const device of remainingActiveDevices) {
|
|
254
|
+
await this.mfaDeviceRepository.update({ id: device.id }, { isPrimary: device.id === primaryDevice.id });
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
// ============================================================================
|
|
@@ -259,18 +259,26 @@ class MFAService {
|
|
|
259
259
|
// ============================================================================
|
|
260
260
|
if (deletedCount > 0 && this.auditService && this.clientInfoService) {
|
|
261
261
|
try {
|
|
262
|
+
const actor = removedBy === 'admin' ? context_storage_1.ContextStorage.get('CURRENT_USER') : null;
|
|
263
|
+
const actorNameCandidate = actor
|
|
264
|
+
? `${actor.firstName || ''} ${actor.lastName || ''}`.trim()
|
|
265
|
+
: '';
|
|
266
|
+
const performedByName = actorNameCandidate.length > 0 ? actorNameCandidate : actor?.email || undefined;
|
|
262
267
|
await this.auditService?.recordEvent({
|
|
263
268
|
userId,
|
|
264
269
|
eventType: auth_audit_event_type_enum_1.AuthAuditEventType.MFA_DEVICE_REMOVED,
|
|
265
270
|
eventStatus: 'INFO',
|
|
271
|
+
authMethod: removedBy === 'admin' ? 'admin' : undefined,
|
|
272
|
+
performedBy: removedBy === 'admin' && actor ? actor.sub : undefined,
|
|
266
273
|
metadata: {
|
|
267
|
-
|
|
274
|
+
removedDeviceId: deviceId,
|
|
275
|
+
removedMethod,
|
|
268
276
|
deletedCount,
|
|
269
277
|
remainingDevices: remainingActiveDevices.length,
|
|
270
278
|
mfaDisabled,
|
|
271
279
|
removedBy,
|
|
280
|
+
...(performedByName ? { performedByName } : {}),
|
|
272
281
|
},
|
|
273
|
-
// Client info automatically included from context
|
|
274
282
|
});
|
|
275
283
|
}
|
|
276
284
|
catch (auditError) {
|
|
@@ -278,7 +286,7 @@ class MFAService {
|
|
|
278
286
|
this.logger?.error?.(`Failed to record MFA_DEVICE_REMOVED audit event: ${errorMessage}`, {
|
|
279
287
|
error: auditError,
|
|
280
288
|
userId,
|
|
281
|
-
|
|
289
|
+
removedDeviceId: deviceId,
|
|
282
290
|
});
|
|
283
291
|
}
|
|
284
292
|
}
|
|
@@ -290,7 +298,7 @@ class MFAService {
|
|
|
290
298
|
const clientInfo = this.clientInfoService.get();
|
|
291
299
|
await this.hookRegistry.executeMFADeviceRemoved({
|
|
292
300
|
user: targetUser,
|
|
293
|
-
deviceType:
|
|
301
|
+
deviceType: removedMethod,
|
|
294
302
|
removedBy,
|
|
295
303
|
remainingDeviceCount: remainingActiveDevices.length,
|
|
296
304
|
clientInfo: {
|
|
@@ -306,64 +314,14 @@ class MFAService {
|
|
|
306
314
|
this.logger?.error?.(`Failed to execute mfaDeviceRemoved hooks: ${errorMessage}`, {
|
|
307
315
|
error: hookError,
|
|
308
316
|
userId,
|
|
309
|
-
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
return { deletedCount, mfaDisabled };
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Shared implementation for setting preferred MFA method.
|
|
317
|
-
*
|
|
318
|
-
* @param targetUser - Target user (self-service or admin target)
|
|
319
|
-
* @param methodType - Preferred method (normalized)
|
|
320
|
-
* @param updatedBy - Actor performing the update
|
|
321
|
-
*/
|
|
322
|
-
async setPreferredMethodInternal(targetUser, methodType, updatedBy) {
|
|
323
|
-
// Verify user has this method configured
|
|
324
|
-
const activeDevices = await this.getActiveDevicesForUserId(targetUser.id);
|
|
325
|
-
const preferredDevice = activeDevices.find((d) => d.type.toLowerCase() === methodType && d.isActive);
|
|
326
|
-
if (!preferredDevice) {
|
|
327
|
-
throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, `MFA method '${methodType}' is not configured for this user`);
|
|
328
|
-
}
|
|
329
|
-
// Update user's preferred method
|
|
330
|
-
await this.userRepository.update({ id: targetUser.id }, {
|
|
331
|
-
preferredMfaMethod: methodType,
|
|
332
|
-
});
|
|
333
|
-
// Update device isPrimary flags: set preferred device as primary, unset others
|
|
334
|
-
for (const device of activeDevices) {
|
|
335
|
-
await this.mfaDeviceRepository.update({ id: device.id }, { isPrimary: device.id === preferredDevice.id });
|
|
336
|
-
}
|
|
337
|
-
this.logger?.log?.(`Device ${preferredDevice.id} set as primary for user ${targetUser.sub} (by ${updatedBy})`);
|
|
338
|
-
// ============================================================================
|
|
339
|
-
// Audit: Record preferred MFA method update
|
|
340
|
-
// ============================================================================
|
|
341
|
-
if (this.auditService && this.clientInfoService) {
|
|
342
|
-
try {
|
|
343
|
-
const previousMethod = targetUser.preferredMfaMethod;
|
|
344
|
-
await this.auditService?.recordEvent({
|
|
345
|
-
userId: targetUser.id,
|
|
346
|
-
eventType: auth_audit_event_type_enum_1.AuthAuditEventType.MFA_PREFERRED_METHOD_UPDATED,
|
|
347
|
-
eventStatus: 'INFO',
|
|
348
|
-
metadata: {
|
|
349
|
-
previousMethod: previousMethod || null,
|
|
350
|
-
newMethod: methodType,
|
|
351
|
-
deviceId: preferredDevice.id,
|
|
352
|
-
updatedBy,
|
|
353
|
-
},
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
catch (auditError) {
|
|
357
|
-
const errorMessage = auditError instanceof Error ? auditError.message : 'Unknown error';
|
|
358
|
-
this.logger?.error?.(`Failed to record MFA_PREFERRED_METHOD_UPDATED audit event: ${errorMessage}`, {
|
|
359
|
-
error: auditError,
|
|
360
|
-
userId: targetUser.id,
|
|
361
|
-
method: methodType,
|
|
317
|
+
removedDeviceId: deviceId,
|
|
362
318
|
});
|
|
363
319
|
}
|
|
364
320
|
}
|
|
365
321
|
return {
|
|
366
|
-
|
|
322
|
+
removedDeviceId: deviceId,
|
|
323
|
+
removedMethod,
|
|
324
|
+
mfaDisabled,
|
|
367
325
|
};
|
|
368
326
|
}
|
|
369
327
|
/**
|
|
@@ -724,94 +682,179 @@ class MFAService {
|
|
|
724
682
|
* }
|
|
725
683
|
* ```
|
|
726
684
|
*/
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
685
|
+
/**
|
|
686
|
+
* Remove a single MFA device by device ID (self-service).
|
|
687
|
+
*
|
|
688
|
+
* WHY: Users can register multiple devices per method (e.g., multiple passkeys, multiple TOTP apps),
|
|
689
|
+
* so deleting by method alone is often too destructive.
|
|
690
|
+
*
|
|
691
|
+
* @param dto - Request DTO with deviceId
|
|
692
|
+
* @returns Removal response (removed device id/method and whether MFA was disabled)
|
|
693
|
+
* @throws {NAuthException} NOT_FOUND when device does not exist or does not belong to the user
|
|
694
|
+
*
|
|
695
|
+
* @example
|
|
696
|
+
* ```typescript
|
|
697
|
+
* const result = await mfaService.removeDevice({ deviceId: 123 });
|
|
698
|
+
* ```
|
|
699
|
+
*/
|
|
700
|
+
async removeDevice(dto) {
|
|
701
|
+
dto = await (0, dto_validator_1.ensureValidatedDto)(dto_1.RemoveDeviceDTO, dto);
|
|
734
702
|
const currentUser = this.getCurrentUserOrThrow();
|
|
735
|
-
return await this.
|
|
703
|
+
return await this.removeDeviceInternal(currentUser, dto.deviceId, 'user');
|
|
736
704
|
}
|
|
737
705
|
/**
|
|
738
|
-
* Admin: Remove
|
|
706
|
+
* Admin: Remove a single MFA device by device ID.
|
|
739
707
|
*
|
|
740
|
-
*
|
|
741
|
-
*
|
|
742
|
-
*
|
|
743
|
-
* @
|
|
708
|
+
* Admin APIs are allowed to target any user's device. The owning user is resolved
|
|
709
|
+
* from the device record and the same internal removal logic is reused.
|
|
710
|
+
*
|
|
711
|
+
* @param dto - Admin request DTO with deviceId
|
|
712
|
+
* @returns Removal response
|
|
713
|
+
* @throws {NAuthException} NOT_FOUND when device or owning user is not found
|
|
744
714
|
*
|
|
745
715
|
* @example
|
|
746
716
|
* ```typescript
|
|
747
|
-
* await mfaService.
|
|
717
|
+
* const result = await mfaService.adminRemoveDevice({ deviceId: 123 });
|
|
748
718
|
* ```
|
|
749
719
|
*/
|
|
750
|
-
async
|
|
751
|
-
dto = await (0, dto_validator_1.ensureValidatedDto)(dto_1.
|
|
752
|
-
const
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
720
|
+
async adminRemoveDevice(dto) {
|
|
721
|
+
dto = await (0, dto_validator_1.ensureValidatedDto)(dto_1.AdminRemoveDeviceDTO, dto);
|
|
722
|
+
const deviceEntity = await this.mfaDeviceRepository.findOne({
|
|
723
|
+
where: { id: dto.deviceId },
|
|
724
|
+
});
|
|
725
|
+
if (!deviceEntity) {
|
|
726
|
+
throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.NOT_FOUND, 'MFA device not found', { deviceId: dto.deviceId });
|
|
756
727
|
}
|
|
757
|
-
const
|
|
758
|
-
|
|
728
|
+
const device = deviceEntity;
|
|
729
|
+
const userEntity = await this.userRepository.findOne({
|
|
730
|
+
where: { id: device.userId },
|
|
731
|
+
});
|
|
732
|
+
if (!userEntity) {
|
|
733
|
+
throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.NOT_FOUND, 'User not found', {
|
|
734
|
+
userId: device.userId,
|
|
735
|
+
deviceId: dto.deviceId,
|
|
736
|
+
});
|
|
737
|
+
}
|
|
738
|
+
const targetUser = userEntity;
|
|
739
|
+
return await this.removeDeviceInternal(targetUser, dto.deviceId, 'admin');
|
|
759
740
|
}
|
|
760
741
|
/**
|
|
761
|
-
* Set preferred MFA
|
|
742
|
+
* Admin: Set a user's preferred MFA device.
|
|
762
743
|
*
|
|
763
|
-
* Updates the
|
|
764
|
-
*
|
|
744
|
+
* Updates the preferred device for a specified user by device ID.
|
|
745
|
+
* This is an admin-only operation that allows administrators to manage
|
|
746
|
+
* user MFA preferences.
|
|
765
747
|
*
|
|
766
|
-
*
|
|
767
|
-
*
|
|
768
|
-
*
|
|
769
|
-
* @param dto - Request DTO with method type
|
|
770
|
-
* @returns Response DTO with success message
|
|
771
|
-
* @throws {NAuthException} If user not found, invalid method type, or method not configured
|
|
748
|
+
* @param dto - DTO containing user sub and device ID
|
|
749
|
+
* @returns Success message
|
|
750
|
+
* @throws {NAuthException} NOT_FOUND | VALIDATION_FAILED
|
|
772
751
|
*
|
|
773
752
|
* @example
|
|
774
753
|
* ```typescript
|
|
775
|
-
*
|
|
776
|
-
*
|
|
777
|
-
*
|
|
778
|
-
*
|
|
779
|
-
* }
|
|
754
|
+
* const result = await mfaService.adminSetPreferredDevice({
|
|
755
|
+
* sub: 'user-uuid',
|
|
756
|
+
* deviceId: 123
|
|
757
|
+
* });
|
|
758
|
+
* // Returns: { message: "Preferred MFA device updated" }
|
|
780
759
|
* ```
|
|
781
760
|
*/
|
|
782
|
-
async
|
|
783
|
-
dto = await (0, dto_validator_1.ensureValidatedDto)(dto_1.
|
|
784
|
-
//
|
|
785
|
-
const
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
761
|
+
async adminSetPreferredDevice(dto) {
|
|
762
|
+
dto = await (0, dto_validator_1.ensureValidatedDto)(dto_1.AdminSetPreferredDeviceDTO, dto);
|
|
763
|
+
// Get target user
|
|
764
|
+
const user = await this.userRepository.findOne({ where: { sub: dto.sub } });
|
|
765
|
+
if (!user) {
|
|
766
|
+
throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.NOT_FOUND, 'User not found');
|
|
767
|
+
}
|
|
768
|
+
// Delegate to the regular setPreferredDevice logic
|
|
769
|
+
// but use SetPreferredDeviceDTO format
|
|
770
|
+
const deviceDto = Object.assign(new dto_1.SetPreferredDeviceDTO(), { deviceId: dto.deviceId });
|
|
771
|
+
// Temporarily set context user for the operation
|
|
772
|
+
// Keep admin user in context for audit trails
|
|
773
|
+
const originalUser = context_storage_1.ContextStorage.get('CURRENT_USER');
|
|
774
|
+
const adminUser = originalUser; // Admin user is already in context
|
|
775
|
+
// Set target user as current user for the operation
|
|
776
|
+
context_storage_1.ContextStorage.set('CURRENT_USER', user);
|
|
777
|
+
try {
|
|
778
|
+
// Pass 'admin' flag to setPreferredDevice for proper audit trails
|
|
779
|
+
const result = await this.setPreferredDevice(deviceDto, 'admin');
|
|
780
|
+
return { message: result.message };
|
|
781
|
+
}
|
|
782
|
+
finally {
|
|
783
|
+
// Restore original context (admin user)
|
|
784
|
+
if (originalUser) {
|
|
785
|
+
context_storage_1.ContextStorage.set('CURRENT_USER', originalUser);
|
|
786
|
+
}
|
|
787
|
+
else {
|
|
788
|
+
context_storage_1.ContextStorage.set('CURRENT_USER', undefined);
|
|
789
|
+
}
|
|
789
790
|
}
|
|
790
|
-
const currentUser = this.getCurrentUserOrThrow();
|
|
791
|
-
return await this.setPreferredMethodInternal(currentUser, normalizedMethod, 'user');
|
|
792
791
|
}
|
|
793
792
|
/**
|
|
794
|
-
*
|
|
793
|
+
* Set a specific MFA device as the user's preferred device (self-service).
|
|
795
794
|
*
|
|
796
|
-
*
|
|
797
|
-
*
|
|
798
|
-
*
|
|
799
|
-
*
|
|
795
|
+
* This updates:
|
|
796
|
+
* - The user's preferred MFA method (set to the device's method)
|
|
797
|
+
* - Device `isPrimary` flags (exactly one active device becomes primary/preferred)
|
|
798
|
+
*
|
|
799
|
+
* @param dto - Request DTO with deviceId
|
|
800
|
+
* @returns Success message
|
|
801
|
+
* @throws {NAuthException} NOT_FOUND when device does not exist or does not belong to the user
|
|
800
802
|
*
|
|
801
803
|
* @example
|
|
802
804
|
* ```typescript
|
|
803
|
-
* await mfaService.
|
|
805
|
+
* await mfaService.setPreferredDevice({ deviceId: 123 });
|
|
804
806
|
* ```
|
|
805
807
|
*/
|
|
806
|
-
async
|
|
807
|
-
dto = await (0, dto_validator_1.ensureValidatedDto)(dto_1.
|
|
808
|
-
const
|
|
809
|
-
const
|
|
810
|
-
|
|
811
|
-
|
|
808
|
+
async setPreferredDevice(dto, updatedBy = 'user') {
|
|
809
|
+
dto = await (0, dto_validator_1.ensureValidatedDto)(dto_1.SetPreferredDeviceDTO, dto);
|
|
810
|
+
const currentUser = this.getCurrentUserOrThrow();
|
|
811
|
+
const activeDevices = await this.getActiveDevicesForUserId(currentUser.id);
|
|
812
|
+
const targetDevice = activeDevices.find((d) => d.id === dto.deviceId);
|
|
813
|
+
if (!targetDevice) {
|
|
814
|
+
throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.NOT_FOUND, 'MFA device not found', { deviceId: dto.deviceId });
|
|
815
|
+
}
|
|
816
|
+
// Update user's preferred method to match the preferred device's method.
|
|
817
|
+
await this.userRepository.update({ id: currentUser.id }, {
|
|
818
|
+
preferredMfaMethod: targetDevice.type,
|
|
819
|
+
});
|
|
820
|
+
// Ensure exactly one active device is primary (marks it as preferred).
|
|
821
|
+
for (const device of activeDevices) {
|
|
822
|
+
await this.mfaDeviceRepository.update({ id: device.id }, { isPrimary: device.id === targetDevice.id });
|
|
823
|
+
}
|
|
824
|
+
// ============================================================================
|
|
825
|
+
// Audit: Record preferred MFA device update
|
|
826
|
+
// ============================================================================
|
|
827
|
+
if (this.auditService && this.clientInfoService) {
|
|
828
|
+
try {
|
|
829
|
+
const actor = updatedBy === 'admin' ? context_storage_1.ContextStorage.get('CURRENT_USER') : currentUser;
|
|
830
|
+
const actorNameCandidate = actor && updatedBy === 'admin'
|
|
831
|
+
? `${actor.firstName || ''} ${actor.lastName || ''}`.trim()
|
|
832
|
+
: '';
|
|
833
|
+
const performedByName = actorNameCandidate.length > 0 ? actorNameCandidate : actor?.email || undefined;
|
|
834
|
+
await this.auditService?.recordEvent({
|
|
835
|
+
userId: currentUser.id,
|
|
836
|
+
eventType: auth_audit_event_type_enum_1.AuthAuditEventType.MFA_PREFERRED_METHOD_UPDATED,
|
|
837
|
+
eventStatus: 'INFO',
|
|
838
|
+
authMethod: updatedBy === 'admin' ? 'admin' : undefined,
|
|
839
|
+
performedBy: updatedBy === 'admin' && actor && actor.sub !== currentUser.sub ? actor.sub : undefined,
|
|
840
|
+
metadata: {
|
|
841
|
+
newMethod: targetDevice.type,
|
|
842
|
+
deviceId: targetDevice.id,
|
|
843
|
+
updatedBy,
|
|
844
|
+
...(performedByName && updatedBy === 'admin' ? { performedByName } : {}),
|
|
845
|
+
},
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
catch (auditError) {
|
|
849
|
+
const errorMessage = auditError instanceof Error ? auditError.message : 'Unknown error';
|
|
850
|
+
this.logger?.error?.(`Failed to record MFA_PREFERRED_METHOD_UPDATED audit event: ${errorMessage}`, {
|
|
851
|
+
error: auditError,
|
|
852
|
+
userId: currentUser.id,
|
|
853
|
+
deviceId: targetDevice.id,
|
|
854
|
+
});
|
|
855
|
+
}
|
|
812
856
|
}
|
|
813
|
-
|
|
814
|
-
return await this.setPreferredMethodInternal(targetUser, normalizedMethod, 'admin');
|
|
857
|
+
return { message: 'Preferred MFA device updated' };
|
|
815
858
|
}
|
|
816
859
|
/**
|
|
817
860
|
* Grant or revoke a user's exemption from multi-factor authentication (MFA) requirements.
|
|
@@ -879,8 +922,13 @@ class MFAService {
|
|
|
879
922
|
// ============================================================================
|
|
880
923
|
// Audit: Record MFA exemption grant/revoke
|
|
881
924
|
// ============================================================================
|
|
925
|
+
// Note: We also attach performedByName when possible so downstream systems
|
|
926
|
+
// have a stable snapshot even if admin profile changes later.
|
|
882
927
|
if (this.auditService && this.clientInfoService) {
|
|
883
928
|
try {
|
|
929
|
+
const actor = context_storage_1.ContextStorage.get('CURRENT_USER');
|
|
930
|
+
const actorNameCandidate = `${actor?.firstName || ''} ${actor?.lastName || ''}`.trim();
|
|
931
|
+
const performedByName = actorNameCandidate.length > 0 ? actorNameCandidate : actor?.email || undefined;
|
|
884
932
|
await this.auditService.recordEvent({
|
|
885
933
|
userId: user.id,
|
|
886
934
|
eventType: dto.exempt ? auth_audit_event_type_enum_1.AuthAuditEventType.MFA_EXEMPTION_GRANTED : auth_audit_event_type_enum_1.AuthAuditEventType.MFA_EXEMPTION_REVOKED,
|
|
@@ -891,6 +939,7 @@ class MFAService {
|
|
|
891
939
|
metadata: {
|
|
892
940
|
previousExemptStatus: userEntity.mfaExempt,
|
|
893
941
|
newExemptStatus: dto.exempt,
|
|
942
|
+
...(performedByName ? { performedByName } : {}),
|
|
894
943
|
},
|
|
895
944
|
});
|
|
896
945
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mfa.service.js","sourceRoot":"","sources":["../../src/services/mfa.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mfa.service.js","sourceRoot":"","sources":["../../src/services/mfa.service.ts"],"names":[],"mappings":"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"}
|