Απαιτήσεις για τη σύνδεση δικού σας παρόχου ταυτότητας σε λογαριασμούς πελατών

Προτού συνδέσετε τον δικό σας πάροχο ταυτότητας στους λογαριασμούς πελατών, βεβαιωθείτε ότι ο πάροχός σας πληροί όλες τις τεχνικές απαιτήσεις ελέγχοντας την τεκμηρίωση ή επικοινωνώντας με τον πάροχο ταυτότητας για υποστήριξη.

Απαιτήσεις για παρόχους ταυτότητας

Για την ενσωμάτωση με το κατάστημα Shopify σας, ο πάροχος ταυτότητας πρέπει να πληροί τις ακόλουθες απαιτήσεις:

  • Ο πάροχος ταυτότητας υποστηρίζει τη ροή κωδικού εξουσιοδότησης OAuth 2.0. Οι σιωπηρές (implicit) και οι υβριδικές ροές δεν υποστηρίζονται. Η client_secret_basic είναι η προεπιλεγμένη μέθοδος ελέγχου ταυτότητας τελικού σημείου για το διακριτικό.
  • Ο πάροχος ταυτότητας υποστηρίζει το Proof Key for Code Exchange (PKCE) για δημόσιους πελάτες.
  • Ο πάροχος ταυτότητας συμμορφώνεται με το πρότυπο OpenID Connect (OIDC) για τον έλεγχο ταυτότητας.
  • Ο πάροχος ταυτότητας υποστηρίζει το OpenID Connect RP-Initiated Logout 1.0 για την αποσύνδεση. Οι αποσυνδέσεις Back-Channel και Front-Channel δεν υποστηρίζονται.
  • Ο πάροχος ταυτότητας υποστηρίζει το email ως το μοναδικό αναγνωριστικό για τους χρήστες και η επαλήθευση email αποτελεί μέρος της διαδικασίας εγγραφής.

Απαιτήσεις τελικού σημείου

Ο πάροχος ταυτότητας στον οποίο συνδέεστε πρέπει να υποστηρίζει συγκεκριμένα τελικά σημεία. Ελέγξτε τον παρακάτω πίνακα για να μάθετε περισσότερα σχετικά με τα απαιτούμενα τελικά σημεία, τις προδιαγραφές τους και σχετικά παραδείγματα.

Απαιτούμενα τελικά σημεία παρόχου ταυτότητας
Απαιτούμενο τελικό σημείοΠαράδειγμα domain και διαδρομήςΠροδιαγραφές
Εξουσιοδότηση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
Εντοπισμόςhttps://auth.provider.com/.well-known/openid-configurationOpenID Discovery 1.0

Απαιτήσεις χρόνου απόκρισης τελικού σημείου

Τα αιτήματα από το Shopify στα τελικά σημεία διακριτικού (token), εντοπισμού (discovery) και πληροφοριών χρήστη (userinfo) του παρόχου ταυτότητας πρέπει να απαντώνται εντός 1 δευτερολέπτου. Εάν ένα τελικό σημείο χρειάζεται περισσότερο από 1 δευτερόλεπτο για να απαντήσει, το αίτημα θα λήξει και η ροή σύνδεσης θα αποτύχει. Για να αποφύγετε τη λήξη του χρονικού ορίου, βεβαιωθείτε ότι ο πάροχος ταυτότητας φιλοξενείται σε περιβάλλον με χαμηλό λανθάνοντα χρόνο και επαρκή χωρητικότητα.

Απαιτήσεις για κινητά

Εάν το κατάστημά σας διαθέτει εφαρμογή για κινητά, τότε το τελικό σημείο εξουσιοδότησης (Authorization) του παρόχου ταυτότητας πρέπει να υποστηρίζει τις ακόλουθες παραμέτρους:

  • code_challenge: Επαληθεύει ότι ο πελάτης που ζητά το διακριτικό είναι ο ίδιος πελάτης που ξεκίνησε το αίτημα.
  • code_challenge_method: Αυτό το τελικό σημείο πρέπει να οριστεί σε S256.

Απαιτήσεις διακριτικού αναγνωριστικού

Ένα διακριτικό αναγνωριστικού αποτελεί απόδειξη ελέγχου ταυτότητας, το οποίο εκδίδεται από τον πάροχο ταυτότητας μετά την επιτυχή σύνδεση ενός χρήστη. Ελέγξτε τις ακόλουθες απαιτήσεις ισχυρισμών (claims) και υπογραφής για τα διακριτικά αναγνωριστικού.

Απαιτούμενοι ισχυρισμοί

Οι ισχυρισμοί (claims) είναι δηλώσεις που κοινοποιεί ο πάροχος ταυτότητας σχετικά με έναν χρήστη, οι οποίες χρησιμοποιούνται για τον έλεγχο ταυτότητας. Κατά τη σύνδεση των λογαριασμών πελατών με τον δικό σας πάροχο ταυτότητας, απαιτούνται οι ακόλουθοι ισχυρισμοί στη ρύθμιση του διακριτικού αναγνωριστικού:

  • sub: Ένα μοναδικό αναγνωριστικό για τον χρήστη εντός του παρόχου ταυτότητας.
  • nonce: Μια μοναδική συμβολοσειρά που περιλαμβάνεται στο διακριτικό αναγνωριστικού για την αποτροπή επιθέσεων επανάληψης (replay attacks).
  • email: Η μοναδική διεύθυνση email του χρήστη που χρησιμοποιείται για την παροχή του λογαριασμού πελάτη. Για τις ενσωματώσεις Entra ID και Azure AD, χρησιμοποιείται ο ισχυρισμός upn αντί για το email και πρέπει να οδηγεί σε μια έγκυρη διεύθυνση email, η οποία μπορεί να λαμβάνει επικοινωνίες που σχετίζονται με παραγγελίες και πελάτες.
  • email_verified: Μια τιμή boolean που υποδεικνύει εάν το email έχει επαληθευτεί από τον πάροχο ταυτότητας. Η τιμή για το email_verified πρέπει να είναι true.
  • iss: Το αναγνωριστικό εκδότη για τον πάροχο ταυτότητας.
  • aud: Το κοινό για το οποίο προορίζεται το διακριτικό αναγνωριστικού, γνωστό και ως το αναγνωριστικό πελάτη σας.

Απαιτήσεις υπογραφής διακριτικού

Οι απαιτήσεις υπογραφής βοηθούν τον πάροχο ταυτότητας να επαληθεύσει την ταυτότητα ενός χρήστη κατά τη διαδικασία σύνδεσης. Ο πάροχος ταυτότητας πρέπει να υπογράφει τα διακριτικά αναγνωριστικού χρησιμοποιώντας έναν από τους ακόλουθους υποστηριζόμενους αλγόριθμους:

  • 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) και τις αντίστοιχες απαιτήσεις, ελέγξτε τους ακόλουθους πόρους τρίτων: