Миграция с Software TOTP на Secured TOTP без переобучения аутентификаторов
Автор Mikhail Nikitin, Last modified by Vladislav Fomichev на 10 апреля 2024 09:01 AM

Вопрос: Можно ли при обновлении перенести уже обученные аутентификаторы 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.

(1 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Добавить новый комментарий
 
 
Полное имя:
Email:
Комментарии: