将您自己的身份认证服务商连接到客户账户的要求
在连接您自己的身份认证服务商到客户账户之前,请通过查看文档或联系您的身份认证服务商寻求支持,确保服务商满足所有技术要求。
身份认证服务商要求
要与您的 Shopify 商店集成,身份认证服务商必须满足以下要求:
- 身份认证服务商支持 OAuth 2.0 授权代码流。不支持隐式和混合流。
client_secret_basic是默认的令牌端点身份验证方法。 - 身份认证服务商支持针对公有客户端的代码交换证明密钥 (PKCE)。
- 身份认证服务商符合用于身份验证的 OpenID Connect (OIDC) 标准。
- 身份认证服务商支持使用 OpenID Connect RP-Initiated Logout 1.0 进行注销。不支持 Back-Channel 和 Front-Channel 注销。
- 身份认证服务商支持将电子邮件地址作为用户的唯一识别码,且电子邮件地址验证是注册流程的一部分。
端点要求
您连接的身份认证服务商必须支持特定的端点。请查看下表,详细了解所需的端点、其规格以及示例。
| 必需的端点 | 示例域名和路径 | 规格 |
|---|---|---|
| 授权 | https://auth.provider.com/authorize | RFC 6749 第 4.1 节 |
| 令牌 | https://auth.provider.com/token | RFC 6749 第 4.1.3 节和RFC 6749 第 6 节 |
| JWKS | https://auth.provider.com/.well-known/jwks.json | RFC 7517 第 5 节 |
| 发现 | https://auth.provider.com/.well-known/openid-configuration | OpenID Discovery 1.0 |
端点响应时间要求
Shopify 向您的身份认证服务商的令牌、发现和 userinfo 端点发出的请求必须在 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 节中定义的刷新令牌。
- 必须将身份认证服务商配置为在令牌响应中返回刷新令牌。
其他资源
要详细了解符合 OpenID Connect (OIDC) 的身份认证服务商及要求,请查阅以下第三方资源: