Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info
titleПредупреждение

При использовании мобильной версии могут быть недоступны некоторые элементы управления страницей. Вы можете переключиться на версию для компьютера или скачать приложение Confluence, чтобы получить доступ ко всем элементам управления страницей.

Аутентификация OAuth 2.0

Expand
titleНастройка

Для аутентификации запросов используется протокол OAuth 2.0.
OAuth 2.0 — протокол авторизации, позволяющий выдать одному сервису (приложению) права на доступ к ресурсам пользователя на другом сервисе. Протокол избавляет от необходимости доверять приложению логин и пароль, а также позволяет выдавать ограниченный набор прав, а не все сразу.

Порядок настройки и использования протокола следующий:

  1. Необходимо открыть страницу услуги Открытое API в ЛК МТТБ;
  2. Подключить услугу «Открытое API». При этом осуществляется проверка достаточности необходимых денежных средств, выполняются прочие юридические и административные процедуры, формируются документы для подписания;
  3. Нажать на кнопку Создать в разделе Мои интеграции. Необходимо указать наименование интеграции (цифра 1 на рисунке) и ссылку, на которой будет производиться обработка нотификации по протоколу https (Redirect URI, цифра 2 на рисунке.). Сервер должен иметь соответствующий доверенный сертификат;
  4. Нажать на кнопку Сгенерировать. Произойдёт генерация Секретного ключа и Уникального идентификатора (Id клиента, цифра 3 и 4 на рисунке), а также осуществится проверка доступности данного сервера со стороны решения. Сгенерированные данные, а так же адрес сервиса аутентификации решения (цифра 5 на рисунке) можно удобно скопировать в буфер обмена;
  5. Дальнейшие настройки необходимо провести на стороне стороннего приложения. Ввести в системе Уникальный идентификатор и Секретный ключ из предыдущего шага. Приложение должно произвести первичную авторизацию и отобразить окно ввода учётных данных от ЛК МТТ Бизнес. Если все данные введены верно, решение выдаст приложению два токена: токен доступа (access_token) и токен обновления (refresh_token);
  6. Срок годности токена доступа (access_token) – 2 часа, токена обновления (refresh_token) - 3 календарных дня. При истечении срока годности токена доступа (access_token) он должен быть обновлен с использованием токена обновления (refresh_token) и уникального идентификатора интеграции (Id клиента). В случае истечения срока действия токена доступа (access_token) решение будет отвечать кодом ответа HTTP 401 (Unauthorized).

Необходимо отметить, что для каждой новой интеграции будут сгенерированы свои уникальные ключи. Даже в рамках одного личного кабинета, каждая интеграция - уникальна.

...

Expand
titleПервичная регистрация

Описание:
Первичная регистрация производит запрос аккредитационных данных с проверкой регистрации в ЛК МТТ Бизнес.
Параметры:
GET/ https://\{{hostoauth}}oauth.mtt.ru/oauth/authorize

Параметр

Описание/значение

client_id

Значение получается из ЛК МТТ Бизнес

redirect_uri

URL для переадресации кода указанный на этапе настройки (например, {+}httphttps://localhost:9090+Image Removed/callbackoauth.myanycrm.ru/oauth2)

scope

Обязательно должен быть установлено значение https://mtt.ru/auth.tokens.readwrite

response_type

Обязательно должен быть установлено значение "code"

state

не обязательный параметр, но служит для защиты от CSRF, а также позволяет хранить состояние в процессе авторизации.

После выполнения запроса, будет выполнен редирект на страницу ввода логина и пароля в ЛК МТТ Бизнес. После успешного подтверждения логина и пароля, будет выполнен редирект на указанный redirect_uri с передачей кода (например: http://localhost:9090/callbackoauth2?code=Yzk5ZDczMzRlNDEwY&state=xyz).
Используя полученный код авторизации, приложение далее сможет выполнить генерацию access_token и refresh_token.

...

Expand
titleЗапрос токена доступа (access_token)

Описание:
Запрос производит генерацию токена доступа (access_token) и токена обновления (refresh_token).
Токен доступа (access_token) – токен, с которым клиентское приложение осуществляет запросы к разрешенным Открытому API, выдается на 2 часа.
Токен обновления (refresh_token) - используется для получения нового токена доступа без повторного ввода пароля. Выдается на 3 дня.
Параметры:
POST / https://\{{hostoauth}}oauth.mtt.ru/oauth/token

Параметр

Описание/значение

client_id

Значение генерируется и задается из ЛК МТТ Бизнес

client_secret

Значение генерируется и задается из ЛК МТТ Бизнес

code

Значение, которое было передано на redirect_uri при первичной регистрации

redirect_uri

URL для переадресации кода , указанный на этапе настройки (например, {+}httphttps://localhost:9090+Image Removed/callbackoauth.myanycrm.ru/oauth2)

scope

Обязательно должен быть установлено значение

https://mtt.ru/auth.tokens.readwrite

grant_type

Обязательно должен быть установлено значение "authorization_code"

Параметры ответа:

Параметр

Описание/значение

access_token

Токен доступа

expires_in

Длительность действия в секундах

refresh_token

Токен обновления

scope

Разрешения для токена (

https://mtt.ru/auth.tokens.readwrite

)

token_type

Bearer

Пример ответа:
{
"access_token": "MMRLZJU5NTETMTNHZI0ZNZIYLWJHOTGTNJY1M2ZMM2YZNMYX",
"expires_in": 7200,
"refresh_token": "YWFHNGFHYMQTMTUYMI01ZTM0LTKZM2QTYZU2YZIWNJQ0MJE0",
"scope": "https://mtt.ru/auth/openapi.readwrite",
"token_type": "Bearer"
}

...

Expand
titleОбновление токена доступа (access_token)

Описание:

Обменивает вышедший из употребления токен доступа (access_token) на новый путём использования токена обновления (refresh_token).
Параметры:
POST / https://\{{hostoauth}}oauth.mtt.ru/oauth/token

Параметр

Описание/значение

client_id

Значение генерируется и задается из ЛК МТТ Бизнес

client_secret

Значение генерируется и задается из ЛК МТТ Бизнес

refresh_tokenТокен обновления

grant_type

Обязательно должно быть установлено значение "refresh_token"

Параметры ответа:

Параметр

Описание/значение

access_token

Токен доступа

expires_in

Длительность действия в секундах

refresh_token

Токен обновления

scope

Разрешения для токена (

https://mtt.ru/auth.tokens.readwriteImage Modified

)

token_type

Bearer

Пример ответа:
{
"access_token": "MMRLZJU5NTETMTNHZI0ZNZIYLWJHOTGTNJY1M2ZMM2YZNMYX",
"expires_in": 7200,
"refresh_token": "YWFHNGFHYMQTMTUYMI01ZTM0LTKZM2QTYZU2YZIWNJQ0MJE0",
"scope": " https://mtt.ru/auth.tokens.readwrite ",
"token_type": "Bearer"
}

...