Перейти к основному содержимому

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

«1С:Шина» может использовать аутентификацию OAuth2 для входа пользователей в приложение.

OAuth 2.0 — это протокол авторизации, который позволяет сторонним приложениям получать ограниченный доступ к ресурсам пользователя на сервере, не передавая при этом его учетные данные.

Чтобы подключить сервис аутентификации OAuth2, выполните следующие действия:

  1. В панели управления «Шины» перейдите на страницу добавления сервисов внешних учетных записей и нажмите + Добавить сервис.

  2. В списке сервисов выберите OAuth. В открывшемся окне скопируйте <Идентификатор сервиса>, он понадобится для настройки клиента.

    Скопируйте идентификатор сервиса

  3. Зарегистрируйте свое приложение в сервисе OAuth. Укажите следующие параметры:

    • OAuth App name = НазваниеПриложения;
    • Homepage URL = URLПриложения;
    • Callback URL = https://{ИмяХоста}/auth/v2/client/oauth2/code/<Идентификатор сервиса>, например http://localhost:9090/auth/v2/client/oauth2/code/0197548a-78df-74bf-b9f7-b87b3bdef16b.
  4. Получите идентификатор клиента Client id и секрет клиента Client secret. Они используются для аутентификации приложения во внешней системе.

  5. Вернитесь в форму добавления внешнего сервиса OAuth панели управления «Шины». Заполните следующие поля:

    • Название — название добавляемого сервиса.
    • Идентификатор сервиса — registration_id, заполняется автоматически.
    • Идентификатор информационной системы — client_id, идентификатор клиента.
    • Пароль информационной системы — client_secret, секрет клиента.
    • Метод аутентификации информационной системы — client_authentication_method. Выберите один из вариантов:
      • В HTTP-заголовке (по умолчанию) — client_secret_basic, пара client_id/client_secret передается через HTTP-заголовок Authorization;
      • В теле HTTP-запросаclient_secret_post, пара client_id/client_secret передается в теле запроса POST;
      • Без аутентификацииnone, аутентификация не используется.
    • Тип ответа от сервера — grant_type, тип ответа, который ожидает клиент аутентификации. Выберите один из вариантов:
      • Код авторизации (по умолчанию) — authorization_code, клиент ожидает код авторизации для дальнейшего обмена на токен;
      • Токен для обновленияrefresh_token, клиент ожидает получить токен после отправления ранее полученного токена для обновления;
      • Реквизитыclient_credentials, клиент ожидает получить токен после отправления своих данных;
      • Неявныйimplicit, не рекомендуется для использования, так как считается устаревшим и небезопасным.
    • Адрес сервера авторизации — authorization_uri, URI сервера аутентификации, на который происходит перенаправление.
    • Адрес получения токена системой — token_uri, URI получения токена из внешней системы.
    • Адрес получения информации о пользователе — user_info_uri, URI получения данных о пользователе из внешней системы.
    • Запрашиваемые данные о пользователе (через запятую) — scope, описание разрешений, которые требуются клиенту. Не должен содержать значение openid.
    • Имя атрибута в информации о пользователе, содержащее имя пользователя — user_name_attribute_name, имя атрибута в данных о пользователе, которое содержит имя пользователя (по умолчанию id).
    • Метод аутентификации для получения информации о пользователе — выберите один из вариантов:
      • В HTTP-заголовке,
      • В теле HTTP-запроса,
      • Без аутентификации.
  6. Нажмите кнопку Добавить, а затем Сохранить.

При входе в приложение пользователь увидит кнопку аутентификации через подключенный внешний сервис, если выполнены следующие условия:

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