Можно ли программно генерировать TOTP-токен Twilio "OneCode"?
Цель
У меня есть бэкэнд-сервис, который общается с AWS, и автоматизированный инструмент, который получает кредиты AWS. В получателе кредитов включен MFA (не мой выбор), но я не хочу вводить или копировать код. Вместо этого я хочу написать немного кода, который может программно генерировать или получать программный токен TOTP без текстовых сообщений или звонков кому-либо. Итак, сегодня наш рабочий процесс выглядит так:
call cred getter from cli => open authy app for totp code => paste into cli
но я хочу, чтобы это выглядело так:
call my custom cli => it makes a totp code and passes it to cred getter for me
Вопрос
Есть ли способ свернуть Authy или Twilio, чтобы программно получить один из этих программных токенов?
Существующие документы
Существует своего рода круговой лабиринт документации, которая имеет отношение к этому вопросу, но я не могу разорвать круг.
-----> Twilio has a page describing TOTP:
| | https://www.twilio.com/authy/features/totp
| |
| | It links to a page describing OTP API access:
| | https://www.twilio.com/authy/api#softtoken
| |
| | That explains you can "build your own SDK-supported mobile authentication application.":
| | https://www.twilio.com/docs/authy/api/one-time-passwords#other-authenticator-apps
^ v
| |
| | Which links to the quick start page:
| | https://www.twilio.com/docs/authy/twilioauth-sdk/quickstart
| |
<----- Which has a link about TOTP, which takes you back to the beginning
Я вижу, что родной мобильный SDK может генерировать токен TOTP: https://www.twilio.com/docs/authy/twilioauth-sdk/quick-reference
но я хочу сгенерировать токен на ноутбуке (или облачной функции или просто где-нибудь). Клиент Authy Desktop делает это, поэтому я знаю, что должен быть способ. Но я не знаю, что было публично разоблачено.
Этот вопрос актуален: как получить Google или Authy OTP по API
но единственный ответ зависит от звонков и текстовых сообщений twilio: как получить Google или Authy OTP по API, чтобы это было непомерно дорого
1 ответ
Twilio разработчик евангелист здесь.
Из того, что вы сказали, ваш получатель учетных данных предоставляет вам QR-код, с помощью которого вы затем настраиваете Authy для генерации OTP-кодов.
QR-код кодирует URL-адрес в следующем формате:
otpauth://TYPE/LABEL?PARAMETERS
Например:
otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example
Тип, скорее всего, "totp", как в примере, метка будет ссылаться на приложение, с которым вы аутентифицируетесь. Важной частью является секрет в параметрах. Секретом является кодированный ключ 32, который можно использовать для генерации кодов TOTP с использованием алгоритма TOTP. Вероятно, есть реализация алгоритма на предпочитаемом вами языке.
Найдите секрет, и вы сможете генерировать свои коды.