Получите продающий сайт «под ключ» за 20 дней: уникальный дизайн, подключение интеграций, удобный функционал
Реклама. ООО «Инсейлс Рус»‎ ИНН 771484376 erid: 2Ranyo5dJeU

Авторизация через OpenID Connect

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

OpenID Connect (OIDC) — это современный протокол аутентификации на основе OAuth 2.0, позволяющий пользователям входить в систему inSales, используя внешний провайдер идентификации (например, корпоративный SSO или индивидуальное решение).

Подробнее о протоколе

Для успешной интеграции используемый OIDC-провайдер должен поддерживать стандартные endpoints и соответствовать нижеуказанным требованиям.

  1. Обязательные endpoints
  2. Требования к ID Token
  3. Подключение к inSales
  4. Пример реализации
  5. Тестирование
  6. Возможные ошибки

Обязательные endpoints

Endpoint
Путь
Описание
Discovery Endpoint
/.well-known/openid-configuration
Возвращает метаданные провайдера в формате JSON.
Authorization Endpoint
/auth
Инициирует процесс аутентификации и возвращает authorization_code.
Token Endpoint
/token
Обменивает authorization_code на access_token и id_token.
JWKS Endpoint
/.well-known/jwks.json
Предоставляет публичные ключи (в формате JWK) для проверки подписи JWT.

Требования к ID Token

ID Token должен быть подписан алгоритмом RS256 (inSales не поддерживает alg: "none").

Обязательные claims

Claim
Описание
Пример
iss
Issuer (должен совпадать с issuer из discovery)
https://your-domain.com
sub
Уникальный идентификатор пользователя
user_12345
aud
Client ID, выданный inSales
your-client-id
exp
Время истечения токена (в секундах)
1234567890
iat
Время выдачи токена (в секундах)
1234567800
nonce
Должен совпадать с nonce из запроса авторизации
abc123xyz
email
Email пользователя
user@example.com
name
Полное имя пользователя
Иван Иванов

Опциональные claims

Claim
Описание
picture
URL аватара пользователя
given_name
Имя пользователя
family_name
Фамилия пользователя
locale
Локаль (например, ru-RU, en-US)

Подключение к inSales

  1. Создание OAuth-приложения
  2. Заполнение параметров приложения
  3. Создание Redirect URI

Создание OAuth-приложения

1. Войдите в панель администратора inSales и перейдите в раздел Настройки → Авторизация и регистрация.

2. В блоке приложений для авторизации через соцсети выберите "Авторизация через OpenID Connect" и нажмите "Добавить":

Заполнение параметров приложения

Откроется окно с полями приложения:

Заполните по аналогии с примерами в таблице:

Параметр
Значение
Комментарий
Имя приложения
Например, "Корпоративный вход"
Отображается пользователям при входе
ID приложения
your-client-id
Client ID вашего OIDC-провайдера
API токен приложения
your-client-secret
Client Secret вашего провайдера
Issuer
https://your-domain.com
Базовый URL вашего OIDC-провайдера

Создание Redirect URI

inSales будет использовать шаблон для callback URL:

https://SHOP_DOMAIN/o_auth_apps/OAUTH_APP_ID/open_id, где:

SHOP_DOMAIN - домен магазина (например, myperfectdomain.ru)
OAUTH_APP_ID - ID приложения из inSales

Пример реализации

Discovery Endpoint Response

{
"issuer": "https://your-domain.com",
"authorization_endpoint": "https://your-domain.com/auth",
"token_endpoint": "https://your-domain.com/token",
"jwks_uri": "https://your-domain.com/.well-known/jwks.json",
"response_types_supported": ["code"],
"subject_types_supported": ["public"],
"id_token_signing_alg_values_supported": ["RS256"],
"scopes_supported": ["openid", "profile", "email"],
"claims_supported": ["sub", "iss", "aud", "exp", "iat", "nonce", "email", "name", "picture"]
}

Token Endpoint Response

{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 3600,
"id_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"scope": "openid profile email"
}

Тестирование

Инструменты для отладки:

  • JWT.io - для декодирования и проверки JWT токенов
  • Postman - для тестирования endpoints
  • OpenID Connect Debugger - для полного тестирования flow

Проверочный список:

  • Discovery endpoint возвращает корректные метаданные
  • Authorization endpoint принимает все обязательные параметры
  • Token endpoint возвращает подписанные JWT токены
  • JWKS endpoint предоставляет корректные RSA ключи
  • ID Token содержит все обязательные claims
  • Nonce из authorization request совпадает с nonce в ID token
  • Подпись JWT проверяется через JWKS

Возможные ошибки

JSON::JWS::UnexpectedAlgorithm

Причина: InSales получил ID Token с alg: "none"

Решение: Использовать алгоритм RS256 для подписи JWT

Invalid nonce

Причина: Nonce в ID Token не совпадает с nonce из authorization request

Решение: Сохранять nonce из authorization request и использовать его в ID Token

Invalid signature

Причина: JWKS endpoint возвращает некорректные RSA компоненты

Решение: Проверить правильность извлечения и кодирования RSA ключей

При возникновении вопросов по интеграции создайте обращение в техническую поддержку inSales и укажите:

  • ID OAuth приложения
  • Логи OIDC провайдера
  • Примеры запросов и ответов

Оставить оценку

Оценка успешно отправлена.
Она будет проверена администратором перед публикацией.
Нажимая кнопку «Отправить оценку», я принимаю пользовательское соглашение и политику конфиденциальности
Перед публикацией все оценки проходят модерацию

Оценки: 0

Остались вопросы?
Отправь тикет в техподдержку!
Еще нет своего магазина?
Создайте интернет-магазин на платформе inSales
Всё для продаж уже внутри!
Недавно просмотренные статьи
Продолжая пользоваться сайтом,
вы соглашаетесь с использованием cookie