お客様アカウントに独自のIDプロバイダーを接続するための要件
お客様アカウントに独自のIDプロバイダーを接続する前に、ドキュメントを確認するか、IDプロバイダーにサポートを依頼して、ご利用のプロバイダーがすべての技術的要件を満たしていることを確認してください。
IDプロバイダーの要件
Shopifyストアと連携するには、IDプロバイダーが以下の要件を満たしている必要があります。
- IDプロバイダーは、OAuth 2.0認証コードフローをサポートしています。ImplicitフローおよびHybridフローはサポートされていません。`client_secret_basic` が、デフォルトのトークンエンドポイント認証方法です。
- IDプロバイダーは、publicクライアント向けのProof Key for Code Exchange (PKCE) をサポートしています。
- IDプロバイダーは、認証に関するOpenID Connect (OIDC)規格に準拠しています。
- IDプロバイダーはログアウト用に OpenID Connect RP-Initiated Logout 1.0 をサポートしています。Back-ChannelログアウトおよびFront-Channelログアウトはサポートされていません。
- 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プロバイダーのトークン、ディスカバリー、ユーザー情報エンドポイントへのリクエストには、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 Section 1.5 で定義されているリフレッシュトークンの発行をサポートしている必要があります。
- トークンレスポンスでリフレッシュトークンを返すように、IDプロバイダーが設定されている必要があります。
その他のリソース
OpenID Connect (OIDC) に準拠したIDプロバイダーとその要件についてさらに詳しく知るには、以下の外部サービスのリソースを確認してください。