Вопрос: Можно ли при обновлении перенести уже обученные аутентификаторы Software TOTP в Secured TOTP без переобучения этих аутентификаторов.
Ответ: Да, для того, чтобы перенести обученные у пользователей аутентификаторы Software TOTP, можно воспользоваться Microsoft SQL Server Management Studio (если база в MS SQL).
Для этого: 1. Открываем Microsoft SQL Server Management Studio, 2. Подключаемся, 3. Первым шагом делаем BackUp базы a. Правой кнопкой по базе b. Tasks->Back Up...
c. В Source указываем: Database: указываем базу источник Backup type: ставим Full В Destination указываем: Backup to: ставим "Disk" В окне ниже указываем путь Жмем ОК
4. После того, как создался backup нашей БД,
Сверху нажимаем "New Query", вставляем следующий скрипт:
USE [НАЗВАНИЕ_БД]
GO
UPDATE [dbo].[DbUserAuthenticators]
SET [ModeId] = 'f15fd7ec-19ea-4384-846e-a2d0be149fa2', [ModeDeviceName] = 'Secured Software TOTP', [ModeTypeName] = 'Time-based One-time Password'
WHERE [ModeId] = '0fa7fdb4-3652-4b55-b0c0-469a1e9d31f0'
GO
5. [НАЗВАНИЕ_БД] меняем на имя своей базы, например [EA_Server] и жмем "Execute"
6. После успешного выполнения копируем вставляем в это окно следующий скрипт:
USE [НАЗВАНИЕ_БД]
GO
DECLARE @i INT
DECLARE @mode UNIQUEIDENTIFIER
SET @i = 0
WHILE (@i < 10000)
BEGIN
IF (@i % 2 = 0)
SET @mode = CONVERT(UNIQUEIDENTIFIER, '0FA7FDB4-3652-4B55-B0C0-469A1E9D31F0') -- Software TOTP GUID
ELSE SET @mode = NEWID()
INSERT INTO [dbo].[DbUserAuthenticators]
([Id]
,[UserId]
,[ModeId]
,[ModeTypeName]
,[ModeDeviceName]
,[ModeType]
,[CreatedOn]
,[TemplateRawData]
,[Description]
,[IsDisabled]
,[ExpirationDate]
,[AuthenticationCountLimitValue]
,[Flags]
,[IsLocked]
,[SerialNumber]
,[ArchivedDate]
,[CreatedBy])
VALUES
(NEWID(),
'UserId_' + CONVERT(VARCHAR(36), NEWID()),
@mode,
'One-time password',
'Software TOTP',
7,
'2023-02-13 14:27:42.5341246',
CONVERT(varbinary,'Random String'),
'comment',
0,
'2023-02-13 14:27:42.5341246',
0,
0,
0,
NULL,
NULL,
'UserId_' + CONVERT(VARCHAR(36), NEWID()))
SET @i = @i + 1
END
GO
7. Аналогично, [НАЗВАНИЕ_БД] меняем на имя своей базы, например [EA_Server] и жмем "Execute"
После этого у пользователей вместо обученных Software TOTP появятся обученные Secured TOTP.
|