Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Скрипт для обновления Azure DNS

    Скрипт для обновления Azure DNS

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Скрипт для обновления Azure DNS, RouterOS
     
    hkusulja
    Guest
    #1
    0
    08.09.2021 06:08:00
    Кто-нибудь создавал скрипт для MikroTik, чтобы обновлять запись в Azure DNS? Нужно сделать curl-запрос: HTTPS POST, чтобы получить /token через OAuth Client credentials grant с app id и app secret. Потом обновить запись в Azure DNS по инструкции https://docs.microsoft.com/en-us/rest/api/dns/record-sets/create-or-update.

    И ещё вопрос: как обнаружить смену публичного IP-адреса и тогда запустить скрипт, а не использовать расписание? Я пытаюсь сделать альтернативу /ip cloud.
     
     
     
    Amm0
    Guest
    #2
    0
    10.02.2022 19:11:00
    Да, в V7 поддерживаются сертификаты (аутентификация x509) с помощью /tool/fetch. Но обычно это отличается от OAuth2... Однако, если бы у Azure была возможность выдать вам X.509 сертификат для Mikrotik (и сертификат был бы авторизован для доступа к DNS), то вы бы были вполне готовы для этого. Но, возможно, сначала придётся использовать OAuth2 на Windows/PowerShell, чтобы сгенерировать сертификат. Просто я недостаточно хорошо знаю Azure, чтобы помочь дальше.
     
     
     
    hkusulja
    Guest
    #3
    0
    08.01.2022 23:05:00
    Извините, но я не вижу, чтобы DynDNS и другие использовали такой метод аутентификации OAuth2 с кодовым потоком. Можете привести ссылку? Спасибо.
     
     
     
    Amm0
    Guest
    #4
    0
    09.01.2022 00:42:00
    Не уверен, что кто-то использует /tool/fetch с OAuth2, возможно, это возможно, но довольно сложно, так как обычно требуется браузер. Если у вас версия 7, клиентские сертификаты могут быть вариантом. В V7 есть возможность разрешить клиентский сертификат на /tool/fetch. Это позволяет Mikrotik взаимодействовать с облачными сервисами, такими как Azure или AWS. По сути, вы используете сертификат на Mikrotik для доступа к Azure вместо OAuth2. Технически IoT extra-package не обязателен, но вы можете следовать инструкциям Mikrotik по получению сертификата Azure: https://help.mikrotik.com/docs/display/UM/MQTT+and+Azure+configuration. Использовать MQTT и пакет IoT необязательно. После установки сертификата и регистрации IoT-устройства в Azure, вы можете вызывать их API (при условии, что ACL на стороне Azure это разрешает) через /tool/fetch. Пример AWS IoT содержит хороший скрипт HTTP /tool/fetch, показывающий использование клиентского сертификата (аналогично Azure): https://help.mikrotik.com/docs/pages/viewpage.action?pageId=63045633#heading-HTTPSpostwithascript. Хотя это и не обязательно, можно просто установить IoT extra-package, представьте, что в Azure есть правила, которые могут принимать MQTT-сообщения для создания DNS-записи. Mikrotik IoT MQTT очень упрощает отправку сообщений в Azure — а уже на стороне Azure сможете создавать или обновлять DNS-записи. И HTTP, и MQTT с сертификатом не требуют повторной аутентификации... Проблема с OAuth2 в том, что в плановом скрипте Mikrotik вы не всегда можете быть рядом, чтобы ввести необходимый пароль при прохождении OAuth2, ведь выданные токены имеют срок действия.
     
     
     
    hkusulja
    Guest
    #5
    0
    10.01.2022 09:50:00
    Обновление службы Azure DNS — это простой HTTP-запрос, но в заголовках обязательно должен быть Authorization bearer token. Чтобы получить этот токен, нужно использовать client id и secret. Вместо секретного ключа также можно применить клиентский сертификат. Этот процесс называется OAuth2 code flow. Мне не нужно задействовать IOT / MQTT и подобное. Так что, может кто-то уже написал скрипт для аутентификации в Azure и последующего внесения изменений в Azure (например, в Azure DNS) с помощью /tool/fetch? Спасибо!
     
     
     
    Amm0
    Guest
    #6
    0
    10.01.2022 17:55:00
    Я не эксперт по Azure, использую MS только для Office365. И пока не видел, чтобы кто-то на форумах пользовался Azure REST… Я хорошо знаком с AWS, поэтому думал, что можно обойтись подходом с сертификатами. Но с Azure дело в том, что они хотят использовать OAuth2 и, кажется, не поддерживают X509 сертификаты.

    Теперь понятно, почему у Mikrotik нет примера HTTP для Azure, но есть для AWS: OAuth2 через /tool/fetch — это довольно сложно. Но на самом деле всё сводится к тому, как именно Microsoft реализует OAuth2. В теории, можно использовать ПК для получения OAuth-токена. Но проблема в том, что токены OAuth2 обычно истекают, иногда через несколько часов, чаще через дни или месяцы. По той же причине раньше было сложно использовать Let’s Encrypt на Mikrotik до версии V7, где добавили прямую поддержку.

    Я не нашёл, когда именно истекают токены OAuth в Azure… Но есть документация, как сгенерировать токен через curl, что должно быть примерно похоже на fetch, можно попробовать: https://docs.microsoft.com/en-us/rest/api/azure/#how-to-call-azure-rest-apis-with-curl Нужно учесть, что контент — JSON, а заголовки идут в HTTP-формате с двоеточиями. Более подробная инструкция здесь: https://mauridb.medium.com/calling-azure-rest-api-via-curl-eb10a06127

    Понятно, что у тебя есть свои причины использовать Azure, но хочу заметить: в AWS Route53 подход с клиентскими X509 сертификатами на V7 довольно простой. В основном, следуешь инструкции Mikrotik по IoT. Неважно, используешь ли MQTT — главное, что AWS выдает IoT Core сертификат для Mikrotik. Нужно просто корректно назначить ACL в AWS IAM для IoT сертификата, чтобы разрешить вызовы DNS REST API AWS Route53.

    В Mikrotik команда /tool/fetch тоже очень простая — достаточно указать “certificate=” в /tool/fetch. Хотя сертификаты истекают, в AWS ты сам контролируешь срок их действия. Взять X509 сертификат — не всегда просто, но использовать их — очень легко. Раньше на Mikrotik до V7.1 клиентская аутентификация через X509 вообще была невозможна.

    Но да, подход AWS вряд ли подойдет для Azure. В Google Cloud, похоже, такая же проблема, и решения тоже нет: http://forum.mikrotik.com/t/any-way-to-connect-mts-iot-mqtt-to-google-iot-core-like-its-done-for-aws-azure/154037/1
     
     
     
    hkusulja
    Guest
    #7
    0
    10.02.2022 06:29:00
    Azure AD поддерживает OAuth2 с использованием секретного ключа или сертификата. Значит, ты говоришь, что теперь RouterOS тоже поддерживает отправку сертификата, что замечательно.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры