Требования для подключения собственного поставщика идентификационных данных к аккаунтам клиентов

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

Требования к поставщикам идентификационных данных

Для интеграции с вашим магазином Shopify поставщик идентификационных данных должен соответствовать следующим требованиям:

  • Поставщик идентификационных данных должен поддерживать поток кода авторизации OAuth 2.0. Неявные и гибридные потоки не поддерживаются. Способ аутентификации конечной точки токена по умолчанию — client_secret_basic.
  • Поставщик идентификационных данных должен поддерживать Proof Key for Code Exchange (PKCE) для общедоступных клиентов.
  • Поставщик идентификационных данных должен соответствовать стандарту аутентификации OpenID Connect (OIDC).
  • Поставщик идентификационных данных должен поддерживать выход из системы по протоколу OpenID Connect RP-Initiated Logout 1.0. Выход из системы по обратному (Back-Channel) и прямому (Front-Channel) каналам не поддерживается.
  • Поставщик идентификационных данных должен поддерживать адрес электронной почты в качестве уникального идентификатора пользователя, а проверка адреса электронной почты должна быть частью процесса регистрации.

Требования к конечным точкам API

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

Требуемые конечные точки поставщика идентификационных данных
Требуемая конечная точкаПример домена и путиСпецификации
Авторизацияhttps://auth.provider.com/authorizeRFC 6749, раздел 4.1
Токенhttps://auth.provider.com/tokenRFC 6749, раздел 4.1.3 и RFC 6749, раздел 6
JWKShttps://auth.provider.com/.well-known/jwks.jsonRFC 7517, раздел 5
Обнаружениеhttps://auth.provider.com/.well-known/openid-configurationOpenID Discovery 1.0

Требования к времени отклика конечной точки

Конечные точки токена, обнаружения и информации о пользователе вашего поставщика идентификационных данных должны отвечать на запросы от Shopify в течение 1 секунды. Если конечная точка отвечает дольше 1 секунды, время ожидания запроса истекает, и процесс входа завершается ошибкой. Чтобы избежать превышения времени ожидания, убедитесь, что ваш поставщик идентификационных данных размещен в среде с низкой задержкой и достаточной производительностью.

Требования для мобильных устройств

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

  • code_challenge: проверяет, что клиент, запрашивающий токен, — это тот же клиент, который инициировал запрос.
  • code_challenge_method: эта конечная точка должна иметь значение S256.

Требования к идентификационным токенам

Идентификационный токен — это подтверждение аутентификации, которое выдаёт ваш поставщик идентификационных данных после успешного входа пользователя в систему. Ознакомьтесь со следующими требованиями к утверждениям и подписям для идентификационных токенов.

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

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

  • sub: уникальный идентификатор пользователя у вашего поставщика идентификационных данных.
  • nonce: уникальная строка, включаемая в идентификационный токен для предотвращения атак повторного воспроизведения.
  • email: уникальный адрес электронной почты пользователя, используемый для создания аккаунта клиента. В интеграциях с Entra ID и Azure AD вместо утверждения email используется утверждение upn, которое должно указывать на действительный адрес электронной почты, способный получать сообщения о заказах и клиентах.
  • email_verified: логическое значение, указывающее, был ли адрес электронной почты проверен поставщиком идентификационных данных. Значение email_verified должно быть true.
  • iss: идентификатор издателя для вашего поставщика идентификационных данных.
  • aud: аудитория, для которой предназначен идентификационный токен, также известная как ваш ИД клиента.

Требования к подписи токена

Требования к подписи помогают вашему поставщику идентификационных данных проверять личность пользователя в процессе входа. Ваш поставщик идентификационных данных должен подписывать идентификационные токены с использованием одного из следующих поддерживаемых алгоритмов:

  • RSA: RS256, RS384, RS512
  • Эллиптическая кривая: ES256, ES384, ES512, ES256K
  • RSA-PSS: PS256, PS384, PS512
  • EdDSA: ED25519, EdDSA

Токены, подписанные с помощью HS256 (HMAC с общим секретом), не поддерживаются.

Требования к сессиям и токенам

Shopify использует токены обновления для поддержания сессий клиентов в течение до 90 дней. Без токена обновления сессии завершатся по истечении срока действия токена доступа от вашего поставщика идентификационных данных (обычно 1 час).

Для поддержки длительных сессий клиентов ваш поставщик идентификационных данных должен соответствовать следующим требованиям:

  • Поставщик идентификационных данных должен поддерживать выдачу токенов обновления, как определено в разделе 1.5 RFC 6749.
  • Поставщик идентификационных данных должен быть настроен на возврат токенов обновления в ответе с токеном.

Дополнительные ресурсы

Чтобы узнать больше о поставщиках идентификационных данных, совместимых с OpenID Connect (OIDC), и о требованиях, ознакомьтесь со следующими сторонними ресурсами: