Vereisten voor het koppelen van je eigen identiteitsprovider aan klantaccounts

Voordat je je eigen identiteitsprovider koppelt aan klantaccounts, moet je ervoor zorgen dat de provider aan alle technische vereisten voldoet door de documentatie te bekijken of contact op te nemen met je identiteitsprovider voor ondersteuning.

Vereisten voor identiteitsproviders

Om te kunnen integreren met je Shopify-winkel, moet de identiteitsprovider aan de volgende vereisten voldoen:

  • De identiteitsprovider ondersteunt de OAuth 2.0-stroom voor autorisatiecode. Impliciete en hybride stromen worden niet ondersteund. client_secret_basic is de standaard verificatiemethode voor het tokeneindpunt.
  • De identiteitsprovider ondersteunt de Proof Key for Code Exchange (PKCE) voor openbare clients.
  • De identiteitsprovider voldoet aan de OpenID Connect (OIDC)-standaard voor verificatie.
  • De identiteitsprovider ondersteunt OpenID Connect RP-Initiated Logout 1.0 om uit te loggen. Back-channel- en front-channel-uitloggen worden niet ondersteund.
  • De identiteitsprovider ondersteunt e-mail als de unieke ID voor gebruikers en e-mailverificatie maakt deel uit van het registratieproces.

Eindpuntvereisten

De identiteitsprovider waarmee je verbinding maakt, moet specifieke eindpunten ondersteunen. Bekijk de volgende tabel voor meer informatie over de vereiste eindpunten, de bijbehorende specificaties en voorbeelden.

Vereiste identiteitsprovider-eindpunten
Vereist eindpuntVoorbeelddomein en -padSpecificaties
Autorisatiehttps://auth.provider.com/authorizeRFC 6749 sectie 4.1
Tokenhttps://auth.provider.com/tokenRFC 6749 sectie 4.1.3 en RFC 6749 sectie 6
JWKShttps://auth.provider.com/.well-known/jwks.jsonRFC 7517 sectie 5
Discoveryhttps://auth.provider.com/.well-known/openid-configurationOpenID Discovery 1.0

Vereisten voor responstijd van eindpunten

Aanvragen vanuit Shopify aan de token-, discovery- en userinfo-eindpunten van je identiteitsprovider moeten binnen 1 seconde worden beantwoord. Als het langer dan 1 seconde duurt voordat een eindpunt reageert, treedt er een time-out op voor de aanvraag en mislukt de inlogstroom. Zorg ervoor dat je identiteitsprovider wordt gehost in een omgeving met een lage latentie en voldoende capaciteit, om time-outs te voorkomen.

Mobiele vereisten

Als je winkel een mobiele app heeft, moet het autorisatie-eindpunt van de identiteitsprovider de volgende parameters ondersteunen:

  • code_challenge: Verifieert of de client die het token aanvraagt, dezelfde client is als de client die de aanvraag heeft gestart.
  • code_challenge_method: Dit eindpunt moet zijn ingesteld op S256.

Vereisten voor ID-tokens

Een ID-token is een bewijs van verificatie dat wordt uitgegeven door je identiteitsprovider nadat een gebruiker succesvol is ingelogd. Bekijk de volgende vereisten voor claims en ondertekening voor ID-tokens.

Vereiste claims

Claims zijn verklaringen die je identiteitsprovider deelt over een gebruiker. Deze worden gebruikt voor verificatie. Wanneer je klantaccounts koppelt aan je eigen identiteitsprovider, zijn de volgende claims vereist in de configuratie van het ID-token:

  • sub: Een unieke ID voor de gebruiker binnen je identiteitsprovider.
  • nonce: Een unieke tekenreeks die in het ID-token is opgenomen om replay-aanvallen te voorkomen.
  • email: Het unieke e-mailadres van de gebruiker dat wordt gebruikt om het klantaccount te verstrekken. Voor integraties met Entra ID en Azure AD wordt de claim upn in plaats van email gebruikt. Deze claim moet verwijzen naar een geldig e-mailadres dat bestellingen en klantgerelateerde communicatie kan ontvangen.
  • email_verified: Een boolean die aangeeft of het e-mailadres is geverifieerd door de identiteitsprovider. De waarde voor email_verified moet true zijn.
  • iss: De ID van de uitgever van je identiteitsprovider.
  • aud: De doelgroep waarvoor het ID-token is bedoeld, ook bekend als je klant-ID.

Vereisten voor de handtekening van tokens

Ondertekeningsvereisten helpen je identiteitsprovider om de identiteit van een gebruiker te verifiëren tijdens het inlogproces. Je identiteitsprovider moet ID-tokens ondertekenen met een van de volgende ondersteunde algoritmen:

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

Tokens die zijn ondertekend met HS256 (HMAC met gedeeld geheim) worden niet ondersteund.

Sessie- en tokenvereisten

Shopify gebruikt refreshtokens om klantsessies tot maximaal 90 dagen te behouden. Zonder een refreshtoken eindigen sessies wanneer het toegangstoken van je identiteitsprovider verloopt. Meestal is dit na 1 uur.

Ter ondersteuning van langdurige klantsessies moet je identiteitsprovider aan de volgende vereisten voldoen:

  • De identiteitsprovider moet de afgifte van refreshtokens ondersteunen, zoals gedefinieerd in RFC 6749 sectie 1.5.
  • De identiteitsprovider moet zijn geconfigureerd om refreshtokens te retourneren in de tokenreactie.

Aanvullende bronnen

Lees de volgende bronnen van externe partijen voor meer informatie over compatibele identiteitsproviders en vereisten voor OpenID Connect (OIDC):