將您自己的身分識別提供者連接至顧客帳號的要求
在將您自己的身分識別提供者連接至顧客帳號前,請務必檢閱文件或聯絡您的身分識別提供者尋求支援,以確保您的提供者符合所有技術要求。
身分識別提供者的需求
若要與您的 Shopify 商店整合,身分識別提供者必須符合下列需求:
- 身分識別提供者支援 OAuth 2.0 授權碼流程 (authorization code flow)。不支援隱含和混合流程。
client_secret_basic是預設的權杖端點驗證方式。 - 身分識別提供者支援公用用戶端的 Proof Key for Code Exchange (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 |
端點回應時間需求
身分識別提供者的權杖、探索和使用者資訊 (userinfo) 端點必須在 1 秒內回應從 Shopify 發出的要求。如果端點的回應時間超過 1 秒,要求就會逾時且登入流程將會失敗。若要避免逾時,請確定您的身分識別提供者託管於低延遲且容量充足的環境中。
行動裝置需求
如果您的商店有行動應用程式,則身分識別提供者的授權端點必須支援下列參數:
code_challenge:驗證要求權杖的用戶端與起始要求的用戶端是否相同。code_challenge_method:此端點必須設為S256。
ID 權杖需求
ID 權杖為驗證的證明,在使用者成功登入後由您的身分識別提供者核發。請檢閱下列有關 ID 權杖的宣告和簽章需求。
必要宣告
宣告是身分識別提供者所分享關於使用者的陳述式,用於進行驗證。將顧客帳號連結至您自己的身分識別提供者時,在 ID 權杖設定中需要包含下列宣告:
sub:身分識別提供者中該使用者的唯一識別碼。nonce:包含在 ID 權杖中以防止重放攻擊 (replay attack) 的唯一字串。email:用於佈建顧客帳號的使用者唯一電子郵件地址。對於 Entra ID 和 Azure AD 整合,系統會使用upn宣告來取代email,且必須指向可接收訂單和顧客相關通訊之有效的電子郵件地址。email_verified:指出身分識別提供者是否已驗證電子郵件的布林值。email_verified的值必須為true。iss:身分識別提供者的簽發者識別碼。aud:ID 權杖目標的對象,也就是您的用戶端 ID。
權杖簽章需求
簽章需求有助於身分識別提供者在登入過程中驗證使用者身分。您的身分識別提供者必須使用下列其中一種支援的演算法來簽署 ID 權杖:
- RSA:RS256、RS384、RS512
- 橢圓曲線 (Elliptic Curve):ES256、ES384、ES512、ES256K
- RSA-PSS:PS256、PS384、PS512
- EdDSA:ED25519、EdDSA
不支援以 HS256 (使用共用密碼的 HMAC) 簽署的權杖。
工作階段與權杖需求
Shopify 使用重新整理權杖將顧客工作階段最多維持 90 天。如果沒有重新整理權杖,當來自您身分識別提供者的存取憑證到期 (通常為 1 小時) 時,工作階段就會結束。
為支援長期顧客工作階段,您的身分識別提供者必須符合下列需求:
- 身分識別提供者必須支援核發 RFC 6749 第 1.5 節定義的重新整理權杖。
- 身分識別提供者必須設定為在權杖回應中傳回重新整理權杖。
其他資源
若要深入瞭解符合 OpenID Connect (OIDC) 標準的身分識別提供者及相關需求,請檢閱下列第三方資源: