将您自己的身份认证服务商连接到客户账户的要求

在将您自己的身份认证服务商连接到客户账户之前,请查看相关文档或联系您的身份认证服务商获取支持,以确保其满足所有技术要求。

对身份认证服务商的要求

为了与您的 Shopify 商店集成,该身份认证服务商必须满足以下要求:

  • 该身份认证服务商支持 OAuth 2.0 授权代码流。不支持隐式流和混合流。client_secret_basic 是默认的令牌端点身份验证方法。
  • 该身份认证服务商支持适用于公共客户端的代码交换证明密钥 (PKCE)
  • 该身份认证服务商符合 OpenID Connect (OIDC) 身份验证标准。
  • 该身份认证服务商支持使用 OpenID Connect RP-Initiated Logout 1.0 进行注销。不支持后端通道和前端通道注销。
  • 该身份认证服务商支持将电子邮件用作用户的唯一识别码,并且电子邮件验证是注册流程的一部分。

端点要求

您连接的身份认证服务商必须支持特定的端点。请查看下表,详细了解所需的端点、其技术规格和示例。

所需的身份认证服务商端点
所需端点域名和路径示例技术规格
授权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 节
Discoveryhttps://auth.provider.com/.well-known/openid-configurationOpenID Discovery 1.0

端点响应时间要求

Shopify 向您的身份认证服务商的令牌、发现和用户信息端点发送的请求必须在 1 秒内得到响应。如果端点响应时间超过 1 秒,请求会超时,导致登录流程失败。为避免超时,请确保您的身份认证服务商托管在低延迟且容量充足的环境中。

移动端要求

如果您的商店有移动应用,则该身份认证服务商的授权端点必须支持以下参数:

  • code_challenge:用于验证请求令牌的客户端与发起请求的客户端是否为同一个客户端。
  • code_challenge_method:此参数必须设置为 S256

ID 令牌要求

ID 令牌是在用户成功登录后由您的身份认证服务商颁发的身份验证证明。请查看以下针对 ID 令牌的声明和签名要求。

所需声明

声明是您的身份认证服务商分享的、用于身份验证的用户相关陈述。将客户账户连接到您自己的身份认证服务商时,ID 令牌设置中需要提供以下声明:

  • sub:用户在您的身份认证服务商内的唯一识别码。
  • nonce:包含在 ID 令牌中的唯一字符串,用于防止重放攻击。
  • email:用于预配客户账户的用户的唯一电子邮件地址。对于 Entra ID 和 Azure AD 集成,系统会使用 upn 声明而非 email,并且该声明必须指向一个可以接收订单和客户相关通信的有效电子邮件地址。
  • email_verified:一个布尔值,用于指示电子邮件是否已由身份认证服务商验证。email_verified 的值必须为 true
  • iss:您的身份认证服务商的颁发者识别码。
  • aud:ID 令牌的目标受众,也称为您的客户端 ID。

令牌签名要求

签名要求可帮助您的身份认证服务商在登录过程中验证用户身份。您的身份认证服务商必须使用以下受支持的算法之一为 ID 令牌签名:

  • RSA:RS256、RS384、RS512
  • 椭圆曲线:ES256、ES384、ES512、ES256K
  • RSA-PSS:PS256、PS384、PS512
  • EdDSA:ED25519、EdDSA

不支持使用 HS256(带共享密钥的 HMAC)签名的令牌。

访问和令牌要求

Shopify 使用刷新令牌将客户访问维持长达 90 天。如果没有刷新令牌,当您身份认证服务商的访问令牌过期(通常为 1 小时)时,访问将结束。

若要支持长期有效的客户访问,您的身份认证服务商必须满足以下要求:

  • 身份认证服务商必须支持签发 RFC 6749 第 1.5 节中定义的刷新令牌。
  • 必须将身份认证服务商配置为在令牌响应中返回刷新令牌。