独自のIDプロバイダーをお客様アカウントに接続するための要件
お客様アカウントに独自のIDプロバイダーを接続する前に、ドキュメントを確認するか、IDプロバイダーのサポートに問い合わせて、プロバイダーがすべての技術的要件を満たしていることを確認してください。
IDプロバイダーの要件
Shopifyストアと統合するには、IDプロバイダーが以下の要件を満たしている必要があります。
- IDプロバイダーが OAuth 2.0 認証コードフロー をサポートしていること。インプリシットフローとハイブリッドフローはサポートされていません。
client_secret_basicはデフォルトのトークンエンドポイント認証方法です。 - IDプロバイダーがパブリッククライアント向けに Proof Key for Code Exchange (PKCE) をサポートしていること。
- IDプロバイダーが認証において OpenID Connect (OIDC) 規格に準拠していること。
- IDプロバイダーがログアウト用に OpenID Connect RP-Initiated Logout 1.0 をサポートしていること。バックチャンネルログアウトとフロントチャンネルログアウトはサポートされていません。
- IDプロバイダーがユーザーの一意の ID としてメールをサポートしており、メールの認証が登録プロセスの一部となっていること。
エンドポイントの要件
接続するIDプロバイダーは、特定のエンドポイントをサポートしている必要があります。必須となるエンドポイント、その仕様、および例について詳しくは、以下の表を確認してください。
| 必須のエンドポイント | ドメインとパスの例 | 仕様 |
|---|---|---|
| 認可 | 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 からIDプロバイダーのトークン、ディスカバリ、userinfo エンドポイントへのリクエストは、1 秒以内に応答する必要があります。エンドポイントの応答に 1 秒以上かかると、リクエストはタイムアウトになり、ログインフローは失敗します。タイムアウトを回避するため、IDプロバイダーが低遅延で十分な容量のある環境でホストされていることを確認してください。
モバイルの要件
ストアに モバイルアプリ がある場合、IDプロバイダーの認可エンドポイントは以下のパラメーターをサポートしている必要があります。
code_challenge:トークンを要求しているクライアントが、リクエストを開始したクライアントと同じであることを検証します。code_challenge_method:このエンドポイントはS256に設定する必要があります。
IDトークンの要件
IDトークンは、ユーザーが正常にログインした後にIDプロバイダーによって発行される認証の証明です。IDトークンのクレームと署名に関する以下の要件を確認してください。
必須のクレーム
クレームとは、IDプロバイダーがユーザーについて共有する情報のことであり、認証に使用されます。お客様アカウントをご自身のIDプロバイダーに接続する場合、IDトークンの設定で以下のクレームが必要になります。
sub:IDプロバイダー内でのユーザーの一意の ID。nonce:リプレイ攻撃を防ぐためにIDトークンに含まれる一意の文字列。email:お客様アカウントのプロビジョニングに使用される、ユーザーの一意のメールアドレス。Entra ID および Azure AD の統合では、emailの代わりにupnクレームが使用されます。これは、注文やお客様に関連する通信を受信できる有効なメールアドレスを指している必要があります。email_verified:メールアドレスがIDプロバイダーによって認証されているかどうかを示すブール値。email_verifiedの値はtrueである必要があります。iss:IDプロバイダーの発行者 ID。aud:IDトークンの対象となるオーディエンス。クライアントID とも呼ばれます。
トークン署名の要件
署名に関する要件は、サインインプロセス中にIDプロバイダーがユーザーの身元を検証するのに役立ちます。IDプロバイダーは、サポートされている以下のいずれかのアルゴリズムを使用してIDトークンに署名する必要があります。
- RSA:RS256、RS384、RS512
- 楕円曲線:ES256、ES384、ES512、ES256K
- RSA-PSS:PS256、PS384、PS512
- EdDSA:ED25519、EdDSA
HS256 (共有シークレットを使用した HMAC) で署名されたトークンはサポートされていません。
セッションとトークンの要件
Shopify では、リフレッシュトークンを使用してお客様のセッションを最大 90 日間維持します。リフレッシュトークンがない場合、IDプロバイダーからのアクセストークンの有効期限 (通常は 1 時間) が切れると、セッションは終了します。
長期的なお客様のセッションをサポートするには、IDプロバイダーが以下の要件を満たしている必要があります。
- IDプロバイダーが、RFC 6749 セクション 1.5 で定義されているリフレッシュトークンの発行をサポートしていること。
- IDプロバイダーが、トークンレスポンスでリフレッシュトークンを返すように設定されていること。
関連リソース
OpenID Connect (OIDC) に準拠したIDプロバイダーと要件について詳しくは、以下の外部リソースを確認してください。