Yêu cầu để kết nối nhà cung cấp danh tính của riêng bạn với tài khoản khách hàng

Trước khi kết nối nhà cung cấp danh tính của riêng bạn với tài khoản khách hàng, hãy đảm bảo rằng nhà cung cấp đáp ứng mọi yêu cầu kỹ thuật bằng cách xem lại tài liệu hoặc liên hệ với nhà cung cấp danh tính để được hỗ trợ.

Yêu cầu đối với nhà cung cấp danh tính

Để tích hợp với cửa hàng Shopify, nhà cung cấp danh tính phải đáp ứng các yêu cầu sau:

  • Nhà cung cấp danh tính hỗ trợ luồng mã ủy quyền OAuth 2.0. Luồng ẩn và luồng kết hợp không được hỗ trợ. client_secret_basic là phương thức xác thực điểm cuối mã token mặc định.
  • Nhà cung cấp danh tính hỗ trợ Proof Key for Code Exchange (PKCE) cho các máy khách công khai.
  • Nhà cung cấp danh tính tuân thủ tiêu chuẩn OpenID Connect (OIDC) để xác thực.
  • Nhà cung cấp danh tính hỗ trợ OpenID Connect RP-Initiated Logout 1.0 để đăng xuất. Không hỗ trợ đăng xuất Back-Channel và Front-Channel.
  • Nhà cung cấp danh tính hỗ trợ email làm mã nhận dạng duy nhất cho người dùng và việc xác minh email là một phần của quy trình đăng ký.

Yêu cầu về điểm cuối

Nhà cung cấp danh tính mà bạn kết nối phải hỗ trợ các điểm cuối cụ thể. Hãy xem lại bảng sau để tìm hiểu thêm về các điểm cuối bắt buộc, thông số kỹ thuật cũng như ví dụ của các điểm cuối này.

Các điểm cuối của nhà cung cấp danh tính bắt buộc
Điểm cuối bắt buộcMiền và đường dẫn ví dụThông số kỹ thuật
Ủy quyềnhttps://auth.provider.com/authorizeRFC 6749 Mục 4.1
Mã tokenhttps://auth.provider.com/tokenRFC 6749 Mục 4.1.3RFC 6749 Mục 6
JWKShttps://auth.provider.com/.well-known/jwks.jsonRFC 7517 Mục 5
Khám pháhttps://auth.provider.com/.well-known/openid-configurationOpenID Discovery 1.0

Yêu cầu về thời gian phản hồi của điểm cuối

Các yêu cầu từ Shopify đến các điểm cuối về mã token, khám phá và thông tin người dùng (userinfo) của nhà cung cấp danh tính phải phản hồi trong vòng 1 giây. Nếu một điểm cuối mất nhiều hơn 1 giây để phản hồi, yêu cầu sẽ hết thời gian chờ và luồng đăng nhập sẽ thất bại. Để tránh hết thời gian chờ, hãy đảm bảo nhà cung cấp danh tính của bạn được lưu trữ trong môi trường có độ trễ thấp và đủ dung lượng.

Yêu cầu trên thiết bị di động

Nếu cửa hàng có ứng dụng di động, điểm cuối Ủy quyền của nhà cung cấp danh tính phải hỗ trợ các tham số sau:

  • code_challenge: Xác minh rằng máy khách yêu cầu mã token chính là máy khách đã khởi tạo yêu cầu.
  • code_challenge_method: Điểm cuối này phải được đặt thành S256.

Yêu cầu đối với ID token

ID token là bằng chứng xác thực do nhà cung cấp danh tính cấp sau khi người dùng đăng nhập thành công. Hãy xem lại các yêu cầu sau về thông tin xác nhận (claim) và chữ ký đối với ID token.

Thông tin xác nhận bắt buộc

Thông tin xác nhận là các câu lệnh mà nhà cung cấp danh tính chia sẻ về người dùng, được dùng để xác thực. Khi kết nối tài khoản khách hàng với nhà cung cấp danh tính của riêng bạn, phần thiết lập ID token bắt buộc phải có các thông tin xác nhận sau:

  • sub: Mã nhận dạng duy nhất của người dùng trong nhà cung cấp danh tính của bạn.
  • nonce: Một chuỗi duy nhất có trong ID token để ngăn chặn các cuộc tấn công phát lại.
  • email: Địa chỉ email duy nhất của người dùng được sử dụng để cung cấp tài khoản khách hàng. Đối với các tiện ích tích hợp Entra ID và Azure AD, thông tin xác nhận upn được sử dụng thay cho email và phải trỏ đến địa chỉ email hợp lệ có thể nhận đơn hàng và thông tin giao tiếp liên quan đến khách hàng.
  • email_verified: Một giá trị boolean cho biết nhà cung cấp danh tính đã xác minh email hay chưa. Giá trị của email_verified phải là true.
  • iss: Mã nhận dạng tổ chức phát hành dành cho nhà cung cấp danh tính của bạn.
  • aud: Đối tượng đích của ID token, còn được gọi là client ID của bạn.

Yêu cầu đối với chữ ký của mã token

Yêu cầu về chữ ký giúp nhà cung cấp danh tính xác minh danh tính của người dùng trong quy trình đăng nhập. Nhà cung cấp danh tính phải ký các ID token bằng một trong các thuật toán được hỗ trợ sau:

  • RSA: RS256, RS384, RS512
  • Elliptic Curve: ES256, ES384, ES512, ES256K
  • RSA-PSS: PS256, PS384, PS512
  • EdDSA: ED25519, EdDSA

Các mã token được ký bằng HS256 (HMAC với bí mật chia sẻ) không được hỗ trợ.

Yêu cầu về phiên và mã token

Shopify sử dụng mã token làm mới để duy trì phiên của khách hàng lên đến 90 ngày. Nếu không có mã token làm mới, phiên sẽ kết thúc khi mã token truy cập từ nhà cung cấp danh tính hết hạn, thường là trong vòng 1 giờ.

Để hỗ trợ các phiên khách hàng tồn tại lâu dài, nhà cung cấp danh tính phải đáp ứng những yêu cầu sau:

  • Nhà cung cấp danh tính phải hỗ trợ phát hành mã token làm mới như được định nghĩa trong RFC 6749 Mục 1.5.
  • Nhà cung cấp danh tính phải được cấu hình để trả về các mã token làm mới trong phản hồi mã token.

Tài nguyên bổ sung

Để tìm hiểu thêm về các yêu cầu cũng như nhà cung cấp danh tính tuân thủ tiêu chuẩn OpenID Connect (OIDC), hãy xem các tài nguyên của bên thứ ba sau đây: