將自有身分識別提供者連接至顧客帳號的必要條件
在您連接自有身分識別提供者至顧客帳號之前,請先檢閱文件,或聯絡您的身分識別提供者以取得支援,確認該提供者符合所有技術必要條件。
身分識別提供者的必要條件
若要與您的 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 登出。
- 身分識別提供者必須支援以電子郵件作為使用者的唯一識別碼,且電子郵件驗證必須是註冊流程的一部分。
端點必要條件
您所連接的身分識別提供者必須支援特定端點。請參閱下表,瞭解所需端點、其規格與範例。
| 必要端點 | 範例網域與路徑 | 規格 |
|---|---|---|
| 授權 | 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 對您的身分識別提供者的權杖、探索和使用者資訊端點發出的要求,必須在 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) 的身分識別提供者與相關要求,請參閱以下第三方資源: