Conditions requises pour connecter votre propre fournisseur d’identité aux comptes clients

Avant de connecter votre propre fournisseur d’identité aux comptes clients, assurez-vous que votre fournisseur respecte toutes les conditions techniques requises en consultant sa documentation ou en contactant son service d’assistance.

Conditions requises pour les fournisseurs d’identité

Pour s’intégrer à votre boutique Shopify, le fournisseur d’identité doit respecter les conditions requises suivantes :

  • Le fournisseur d’identité prend en charge le flux de code d’autorisation OAuth 2.0. Les flux implicites et hybrides ne sont pas pris en charge. client_secret_basic est la méthode d’authentification du point de terminaison de jeton par défaut.
  • Le fournisseur d’identité prend en charge la PKCE (Proof Key for Code Exchange) pour les clients publics.
  • Le fournisseur d’identité est conforme à la norme OpenID Connect (OIDC) pour l’authentification.
  • Le fournisseur d’identité prend en charge la déconnexion OpenID Connect RP-Initiated Logout 1.0. Les déconnexions Back-Channel et Front-Channel ne sont pas prises en charge.
  • Le fournisseur d’identité prend en charge l’e-mail comme identifiant unique pour les utilisateurs, et la vérification de l’e-mail fait partie du processus d’inscription.

Conditions requises pour les points de terminaison

Le fournisseur d’identité que vous connectez doit prendre en charge des points de terminaison spécifiques. Consultez le tableau suivant pour en savoir plus sur les points de terminaison requis, leurs spécifications et des exemples.

Points de terminaison du fournisseur d’identité requis
Point de terminaison requisExemple de domaine et de chemin d’accèsSpécifications
Autorisationhttps://auth.provider.com/authorizeRFC 6749, section 4.1
Jetonhttps://auth.provider.com/tokenRFC 6749, section 4.1.3 et RFC 6749, section 6
JWKShttps://auth.provider.com/.well-known/jwks.jsonRFC 7517, section 5
Découvertehttps://auth.provider.com/.well-known/openid-configurationOpenID Discovery 1.0

Exigences de temps de réponse des points de terminaison

Les requêtes de Shopify vers les points de terminaison de jeton, de découverte et d’informations utilisateur de votre fournisseur d’identité doivent recevoir une réponse dans un délai de 1 seconde. Si un point de terminaison met plus de 1 seconde à répondre, la requête expirera et le flux de connexion échouera. Pour éviter les délais d’attente, assurez-vous que votre fournisseur d’identité est hébergé dans un environnement à faible latence et à capacité suffisante.

Conditions requises pour les appareils mobiles

Si votre boutique dispose d’une application mobile, le point de terminaison d’autorisation du fournisseur d’identité doit prendre en charge les paramètres suivants :

  • code_challenge : vérifie que le client qui demande le jeton est le même que celui qui a initié la requête.
  • code_challenge_method : ce point de terminaison doit être défini sur S256.

Conditions requises pour les jetons d’identité

Un jeton d’identité est une preuve d’authentification, émise par votre fournisseur d’identité après qu’un utilisateur s’est connecté. Consultez les exigences suivantes en matière de revendications et de signataires pour les jetons d’identité.

Revendications requises

Les revendications sont des déclarations que votre fournisseur d’identité partage au sujet d’un utilisateur, qui sont utilisées pour l’authentification. Lorsque vous connectez les comptes clients à votre propre fournisseur d’identité, les revendications suivantes sont requises dans la configuration du jeton d’identité :

  • sub : un identifiant unique pour l’utilisateur au sein de votre fournisseur d’identité.
  • nonce : une chaîne unique incluse dans le jeton d’identité pour empêcher les attaques par rejeu.
  • email : l’adresse e-mail unique de l’utilisateur utilisée pour configurer le compte client. Pour les intégrations Entra ID et Azure AD, la revendication upn est utilisée à la place de email et doit pointer vers une adresse e-mail valide pouvant recevoir des communications relatives aux commandes et aux clients.
  • email_verified : un booléen indiquant si l’e-mail a été vérifié par le fournisseur d’identité. La valeur de email_verified doit être true.
  • iss : l’identifiant de l’émetteur pour votre fournisseur d’identité.
  • aud : l’audience à laquelle le jeton d’identité est destiné, également appelée votre ID client.

Conditions requises pour la signature du jeton

Les conditions requises pour la signature aident votre fournisseur d’identité à vérifier l’identité d’un utilisateur lors du processus de connexion. Votre fournisseur d’identité doit signer les jetons d’identité à l’aide de l’un des algorithmes pris en charge suivants :

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

Les jetons signés avec HS256 (HMAC avec secret partagé) ne sont pas pris en charge.

Exigences en matière de sessions et de jetons

Shopify utilise des jetons d’actualisation pour maintenir les sessions client jusqu’à 90 jours. Sans jeton d’actualisation, les sessions prendront fin à l’expiration du jeton d’accès de votre fournisseur d’identité, généralement au bout d’une heure.

Pour prendre en charge les sessions client de longue durée, votre fournisseur d’identité doit répondre aux exigences suivantes :

  • Le fournisseur d’identité doit prendre en charge l’émission de jetons d’actualisation telle que définie dans le RFC 6749 Section 1.5.
  • Le fournisseur d’identité doit être configuré pour renvoyer des jetons d’actualisation dans la réponse de jeton.

Ressources supplémentaires

Pour en savoir plus sur les fournisseurs d’identité et les conditions requises conformes à OpenID Connect (OIDC), consultez les ressources tierces suivantes :