inSales позволяет подключить авторизацию через сервис, который поддерживает протокол OpenID Connect. Для подключения данного способа авторизации необходимы услуги разработчика для установки OpenID провайдера на сервер.
OpenID Connect (OIDC) — это современный протокол аутентификации на основе OAuth 2.0, позволяющий пользователям входить в систему inSales, используя внешний провайдер идентификации (например, корпоративный SSO или индивидуальное решение).
Для успешной интеграции используемый OIDC-провайдер должен поддерживать стандартные endpoints и соответствовать нижеуказанным требованиям.
/.well-known/openid-configuration
/auth
authorization_code
./token
authorization_code
на access_token
и id_token
./.well-known/jwks.json
ID Token должен быть подписан алгоритмом RS256 (inSales не поддерживает alg: "none"
).
iss
issuer
из discovery)https://your-domain.com
sub
user_12345
aud
your-client-id
exp
1234567890
iat
1234567800
nonce
abc123xyz
email
user@example.com
name
Иван Иванов
picture
given_name
family_name
locale
ru-RU
, en-US
)1. Войдите в панель администратора inSales и перейдите в раздел Настройки → Авторизация и регистрация.
2. В блоке приложений для авторизации через соцсети выберите "Авторизация через OpenID Connect" и нажмите "Добавить":
Откроется окно с полями приложения:
Заполните по аналогии с примерами в таблице:
your-client-id
inSales будет использовать шаблон для callback URL:
https://SHOP_DOMAIN/o_auth_apps/OAUTH_APP_ID/open_id, где:
SHOP_DOMAIN - домен магазина (например, myperfectdomain.ru)
OAUTH_APP_ID - ID приложения из inSales
{
"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"]
}
{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 3600,
"id_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"scope": "openid profile email"
}
Инструменты для отладки:
Проверочный список:
Причина: InSales получил ID Token с alg: "none"
Решение: Использовать алгоритм RS256 для подписи JWT
Причина: Nonce в ID Token не совпадает с nonce из authorization request
Решение: Сохранять nonce из authorization request и использовать его в ID Token
Причина: JWKS endpoint возвращает некорректные RSA компоненты
Решение: Проверить правильность извлечения и кодирования RSA ключей
При возникновении вопросов по интеграции создайте обращение в техническую поддержку inSales и укажите: