> For the complete documentation index, see [llms.txt](https://kb.pvhostvm.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.pvhostvm.ru/hostvm-vdi/hostvm-vdi-admin-guide/mfa/sms-via-http.md).

# SMS через HTTP

SMS через HTTP - метод двухфакторной аутентификации, при котором верификационный код приходит по SMS, с использованием HTTP-шлюза.

{% hint style="info" %}
Для работы данного метода аутентификации требуется настроенный HTTP шлюз с возможностью отправки sms.
{% endhint %}

Для создания МФА "SMS через HTTP" перейдите в раздел "Аутентификация" > "МФА", нажмите "Новый" и выберите тип "SMS через HTTP".

## Основные настройки <a href="#main" id="main"></a>

<figure><img src="https://raw.githubusercontent.com/hostco-ru/hostvm/master/.gitbook/assets/SMSMFA2.png" alt=""><figcaption></figcaption></figure>

**Имя** - наименование создаваемого МФА для отображения в системе.

**Кэширование устройства** - время кэширования устройства (в часах), в течение которого МФА повторно не требуется. Привязывается к пользователю.

**Срок действия кода МФА** - время в минутах, в течение которого можно использовать код МФА.

## HTTP сервер <a href="#http-server" id="http-server"></a>

<figure><img src="https://raw.githubusercontent.com/hostco-ru/hostvm/master/.gitbook/assets/SMSMFA3.png" alt=""><figcaption></figcaption></figure>

**Шаблон URL для отправки SMS** - шаблон URL адреса. Может содержать следующие переменные:

* **{code}** - код для отправки;
* **{phone/+phone}** - номер телефона;
* **{username}** - имя пользователя;
* **{justUsername}** - имя пользователя без @.

**Игнорировать ошибки сертификата** - если включено, игнорирует сертификат сервера. Полезно, если сервер использует самоподписанный сертификат.

**Способ отправки SMS** - метод, который будет использоваться для отправки SMS. Доступны:

* GET
* POST
* PUT

**Параметры для POST/PUT отправки SMS** - при выборе данных методов можно дополнительно выставить следующие параметры:

* **{code}** - код для отправки;
* **{phone/+phone}** - номер телефона;
* **{username}** - имя пользователя;
* **{justUsername}** - имя пользователя без @.

**Заголовки для SMS запросов** - могут содержать следующие параметры:

* **{code}** - код для отправки;
* **{phone/+phone}** - номер телефона;
* **{username}** - имя пользователя;
* **{justUsername}** - имя пользователя без @.

**Кодировка SMS** - метод кодировки отправляемых SMS. Доступны:

* utf-8
* utf-16
* iso-8859-1

## HTTP аутентификация <a href="#http-auth" id="http-auth"></a>

<figure><img src="https://raw.githubusercontent.com/hostco-ru/hostvm/master/.gitbook/assets/SMSMFA4.png" alt=""><figcaption></figcaption></figure>

**Метод аутентификации SMS** - выбор метода аутентификации, доступны следующие варианты:

* **None** - без аутентификации;
* **HTTP Basic auth** - стандартный метод аутентификации в протоколе HTTP, при котором логин и пароль передаются в заголовке запроса в base64;
* **HTTP Digest auth -** метод аутентификации, при котором клиент отправляет не пароль напрямую, а его хеш (MD5/SHA), вычисленный с учётом одноразового кода.

**Пользователь или токен для аутентификации SMS -** поле для ввода пользователя или токена для аутентификации SMS.

**Пароль для аутентификации SMS** - поле для ввода пароля пользователя для аутентификации SMS.

## HTTP ответ <a href="#http-reply" id="http-reply"></a>

<figure><img src="https://raw.githubusercontent.com/hostco-ru/hostvm/master/.gitbook/assets/SMSMFA5.png" alt=""><figcaption></figcaption></figure>

**Регулярное выражение для SMS ответа OK** - если пусто, ответ считается OK, когда код состояния равен 200.

## Конфигурация <a href="#config" id="config"></a>

<figure><img src="https://raw.githubusercontent.com/hostco-ru/hostvm/master/.gitbook/assets/SMSMFA6.png" alt=""><figcaption></figcaption></figure>

**Действия при ошибке ответа SMS** - выбор сценария действий при ошибке ответа SMS. Доступные варианты:

* **Allow user login** - разрешить доступ пользователю;
* **Deny user login** - отказать в доступе пользователю;
* **Allow user to login if their IP is in the network list** - разрешить доступ пользователей, если их IP есть в списке сетей;
* **Deny user to login if their IP is in the network list** - запретить доступ пользователей, если их IP есть в списке сетей.

**Сети SMS** - поле для выбора сетей, в которых будет использоваться данный метод МФА;

**Пользователь без политики МФА** - выбор сценария действий при отсутствии у пользователя политики МФА. Доступные варианты:

* **Allow user login** - разрешить доступ пользователю;
* **Deny user login** - отказать в доступе пользователю;
* **Allow user to login if their IP is in the network list** - разрешить доступ пользователей, если их IP есть в списке сетей;
* **Deny user to login if their IP is in the network list** - запретить доступ пользователей, если их IP есть в списке сетей.

После внесения необходимых настроек нажмите **"Сохранить"**.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://kb.pvhostvm.ru/hostvm-vdi/hostvm-vdi-admin-guide/mfa/sms-via-http.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
