Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    Proxmox API аутентификация для создания ВМ

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Proxmox API аутентификация для создания ВМ, Proxmox Виртуальная Среда
     
    silenzer
    Guest
    #1
    0
    31.05.2023 14:39:00
    Всем привет! В данный момент я разрабатываю веб-приложение с использованием Python requests для создания ВМ на Proxmox. В POST-запрос я включаю необходимые параметры, такие как vmid и node, а также некоторые необязательные параметры. Однако я получаю код состояния 401 при выполнении кода, что указывает на проблему с аутентификацией. Чтобы решить эту проблему, я попытался включить имя пользователя и пароль в данные запроса, а также CSRF-токен и билет в заголовки запроса. Несмотря на мои усилия, мне не удалось решить эту проблему. Я wondering, есть ли у кого-то конкретные знания о необходимых параметрах аутентификации для этой задачи. Любая помощь будет очень ценна. Спасибо за поддержку!
     
     
     
    silenzer
    Guest
    #2
    0
    20.06.2023 09:23:00
    Я получил только один токен API, который имеет следующий формат: api@pve!FZ917gBxpdpdji. Мне интересно, должен ли токен быть в другом формате или существует ли другой токен, например, секретный токен. К сожалению, я все еще сталкиваюсь с ошибкой 401. Я попробовал использовать команду curl, но она, похоже, не работает. Это наводит на мысль, что токен может быть чем-то другим, но я не уверен, каким именно. Когда я выполняю команду curl для домена, я получаю исходный код сайта. Однако когда я добавляю компоненты пути, такие как /api2/json/nodes, я сталкиваюсь со следующей ошибкой: Код: curl: (3) URL использует плохой/недопустимый формат или отсутствует URL.
     
     
     
    Chris
    Guest
    #3
    0
    20.06.2023 09:32:00
    Заголовок токена точно должен выглядеть приблизительно так, иначе вы скопировали неправильное секретное значение Код: Authorization: PVEAPIToken=testuser@pve!testtoken=xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxx
     
     
     
    silenzer
    Guest
    #4
    0
    20.06.2023 11:03:00
    Я нашел это, спасибо большое. Теперь ошибка 401 заменена на ошибку 501. Ты знаешь, в чем может быть причина?
     
     
     
    Chris
    Guest
    #5
    0
    20.06.2023 11:25:00
    501 может указывать на то, что вы используете неправильный тип метода для вашего запроса, например, POST вместо GET...
     
     
     
    silenzer
    Guest
    #6
    0
    20.06.2023 11:41:00
    Метод POST-запроса должен быть правильным, как показано на изображении в нашей истории.
     
     
     
    silenzer
    Guest
    #7
    0
    21.06.2023 11:02:00
    Я попробовал с помощью curl и GET-запроса — всё сработало, код 200, но когда я пытался выполнить POST-запрос, получаю ошибку 501. Я нашёл этот вопрос: https://github.com/swayf/proxmoxer/issues/23, где проблема была с путём/URL в запросе, но в моём случае всё точно так же, как в документации Proxmox API: https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/qemu. Код: response_post = requests.post("https://test.com:8006/api2/json/nodes/test/qemu", data=data_creation, headers=vm_create_headers, verify=False)
     
     
     
    silenzer
    Guest
    #8
    0
    19.06.2023 11:08:00
    Как я могу сгенерировать API токен? У меня только билет и CSRF токен. Я делаю POST запрос на https://xyz.com:8006/api2/json/nodes/test/qemu с параметрами data (конфигурации для ВМ), куками (билет) и заголовками (CSRF).
     
     
     
    Chris
    Guest
    #9
    0
    19.06.2023 11:20:00
    Вы можете создать API Token через WebUI, перейдя в Datacenter > Permissions > API Tokens > Add. Убедитесь, что вы предварительно настроили пользователя, с которым будет связан токен (если не хотите использовать root@pam).
     
     
     
    silenzer
    Guest
    #10
    0
    19.06.2023 15:39:00
    Спасибо, я его создал. Как должен выглядеть запрос POST? Я следовал этому запросу POST: https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/qemu и создал это: Как мне нужно добавить токен API?
     
     
     
    Chris
    Guest
    #11
    0
    21.06.2023 12:16:00
    Вы тестировали POST-запрос с помощью curl или через свой код? Может быть, параметры у вас не совсем правильные? Хотя я не ожидал бы увидеть код ошибки 501 в таком случае. Также убедитесь, что ваш payload — это корректный JSON.
     
     
     
    silenzer
    Guest
    #12
    0
    28.06.2023 11:01:00
    Я пробовал через curl и с помощью кода. Параметры запроса: data=payload и headers=header, verify=False. В payload я выбрал только параметры из документации. Когда я делаю GET вместо POST запроса, я получаю пустой json для этого пути: но если я добавляю vmid, я получаю данные:
     
     
     
    Chris
    Guest
    #13
    0
    19.06.2023 15:51:00
    вам нужно будет добавить заголовок Authorization в формате PVEAPIToken=USER@REALM!TOKENID=UUID вместо PVEAuthCookie и CSRFPreventionToken. Также ваш Content-Type должен быть application/json.
     
     
     
    silenzer
    Guest
    #14
    0
    19.06.2023 16:02:00
    Ах, понял, спасибо. Значит, должно выглядеть примерно так? (PVEAPIToken фейковый)
     
     
     
    Chris
    Guest
    #15
    0
    19.06.2023 16:05:00
    Нет, ключ заголовка — Authorization, значение — PVEAPIToken=USER@REALM!TOKENID=UUID, вот так: 'Authorization': 'PVEAPIToken=USER@REALM!TOKENID=UUID'
     
     
     
    silenzer
    Guest
    #16
    0
    19.06.2023 16:24:00
    Мне очень жаль вас беспокоить, но вы имели в виду это: (Это правильный формат для авторизации?)
     
     
     
    Chris
    Guest
    #17
    0
    19.06.2023 16:44:00
    Нет, как показано в примере выше, ваше значение должно содержать префикс PVEAPIToken=. Минимальный пример curl для перечисления всех узлов может выглядеть примерно так: Код: curl -k -H 'Content-Type: application/json' -H 'Authorization: PVEAPIToken=root@pam!testtoken=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx' https://localhost:8006/api2/json/nodes
     
     
     
    silenzer
    Guest
    #18
    0
    20.06.2023 08:33:00
    Я действительно благодарен за твою помощь. Я изменил это так, как понял, хотя оно всё ещё не работает.
     
     
     
    Chris
    Guest
    #19
    0
    20.06.2023 08:39:00
    Убедитесь, что идентификатор токена и значение токена правильные. Какой ответ вы получаете? Есть ли у пользователя/токена необходимые разрешения ACL для выполнения запрашиваемых API? Дополнительно: попробуйте использовать простой пример с curl, только когда будете уверены, что токен работает и может выполнять действия, реализуйте это на языке программирования по вашему выбору.
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры