Параметры настройки OAuth2
Специальное предложение: скидка 50% (115 200 рублей) на ODataDB Enterprise до 24 июня 2024

Параметры настройки OAuth2

Надстройка SaveToDB позволяет настраивать параметры поставщика OAuth2 при подключении к источникам веб-данных.

Мы уверены, что вы можете настроить его для любого поставщика.

Ниже приведен пример параметров настройки ZohoCRM:

Диалоговое окно настроек авторизации OAuth2

Страница содержит текстовое поле с именем поставщика и тремя разделами:

  1. Клиентское приложение
  2. Адреса службы
  3. Форматы URL и тела

Раздел Клиентское приложение содержит:

  • Client ID
  • Client secret
  • Redirect URI
  • Scope

Эти значения можно получить при регистрации приложения у поставщика OAuth2.

Мы планируем добавить встроенные зарегистрированные приложения для популярных провайдеров в следующих версиях.

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

В примере выше запрашиваются все разрешения для всех модулей и разрешения на чтение для параметров.

Раздел Адреса службы содержит:

  • URL-адрес авторизации
  • URL-адрес получения токена
  • URL-адрес обновления токена
  • URL-адрес отзыва токена

Эти URL-адреса можно найти в документации поставщика OAuth2.

URL-адреса можно указывать как есть или с помощью переменных.

Например, URL-адрес обновления токена содержит переменную {get_token_url}.
Соответственно, надстройка будет использовать значение поля URL-адреса получения токена.

Переменные позволяют реализовывать динамические URL-адреса с использованием значений из предыдущих шагов.

Например, ZohoCRM возвращает значение accounts-server в ответе авторизации, которое не является типичным для других поставщиков.

Надстройка позволяет использовать такие значения. Например, поле URL-адреса получения токена содержит переменную {accounts-server}.

Раздел Форматы URL и тела содержит форматы URL-адресов и тел запросов.

В OAuth2 определяются типовые форматы, и надстройка предлагает значения по умолчанию, построенные с использованием переменных.

Форматы можно изменить в соответствии с требованиями поставщика OAuth2.

Переменные

Значения полей диалогового окна можно использовать в форматах URL и body:

ПолеПеременная
Клиентское приложение
Client ID{client_id}
Client secret{client_secret}
Redirect URI{redirect_uri}
Scope{scope}
Адреса службы
URL-адрес авторизации{authorization_url}
URL-адрес получения токена{get_token_url}
URL-адрес обновления токена{refresh_token_url}
URL-адрес отзыва{revoke_token_url}
Форматы URL и тела
URL-адрес авторизации{authorization_url_format}
URL-адрес получения токена{get_token_url_format}
Тело запроса получения токена{get_token_body_format}
URL-адрес обновления токена{refresh_token_url_format}
Тело запроса обновления токена{refresh_token_body_format}
URL-адрес отзыва токена{revoke_token_url_format}
Тело запроса отзыва токена{revoke_token_body_format}

Таблица ниже содержит типичные значения, определенные в OAuth2:

ПолеТиповое значение
Адреса службы
URL-адрес обновления токена{get_token_url}
URL-адрес отзыва токена{get_token_url}/revoke
Форматы URL и тела
URL-адрес авторизации{authorization_url}?scope={scope}&client_id={client_id}&response_type={response_type}&redirect_uri={redirect_uri}
URL-адрес получения токена{get_token_url}
Тело запроса получения токенаgrant_type={grant_type}&client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}&code={code}
URL-адрес обновления токена{refresh_token_url}
Тело запрос обновления токенаrefresh_token={refresh_token}&client_id={client_id}&client_secret={client_secret}&grant_type={grant_type}
URL-адрес отзыва токена{revoke_url}
Тело отзыва токенаtoken={refresh_token}

Можно использовать следующие переменные, определенные в запросах на утверждение или полученные из ответов на утверждение:

ПеременнаяЗначение
{response_type}code
{grant_type}authorization_code для запросов авторизации и refresh_token для запросов обновления токена
{code}Значение code из ответа запроса авторизации
{access_token}Значение access_token из ответа запроса получения токена
{refresh_token}Значение refresh_token из ответа запросов получения или обновления токена
{token_type}Значение token_type из ответа запросов получения или обновления токена
{expires_in}Значение expires_in из ответа запросов получения или обновления токена