← inaro.devShopify学習ツール
17-03

埋め込みアプリの仕組み

管理画面に埋め込まれたアプリがどう認証され、どうアクセストークンを得るかを説明できる

最終確認: 2026-09

解説

受託の現場でなぜ必要か: この回では、管理画面に埋め込まれたアプリがどう認証され、どうアクセストークンを得るかを説明できるようになります。
受託では、テンプレートのauthenticate.adminが全部やってくれますが、仕組みを知らないと詰まったときに直せません。

埋め込みアプリとは、管理画面のiframeの中で動くアプリ

アプリのUIは、Shopify管理画面の中のiframe(ページの中に別のページを埋め込む枠)に表示されます。
外側の管理画面との連携はApp Bridge(<script src="https://cdn.shopify.com/shopifycloud/app-bridge.js">)が担います。
iframeの中ではサードパーティCookieが使えないので、Cookieでログイン状態を持てません。

IDトークンとは、「誰のリクエストか」を証明する短命の鍵

App Bridgeが発行する1分で失効するJWT(署名付きのトークン)です。
旧称はセッショントークンです。
アプリのサーバーへAuthorization: Bearerで送ると、サーバーは署名を検証して「どのストアの誰か」を知ります。
サードパーティのサービスには絶対に送りません。
Cookieが使えないiframeでは、この方式が標準です。

token exchangeとは、IDトークンをアクセストークンに換える手順

IDトークンは「誰か」の証明で、それだけではAdmin APIを呼べません。
そこでIDトークンをAdmin APIのアクセストークンに交換します。
スコープはTOMLで宣言済みなので、旧来のOAuthリダイレクトは不要です(Shopify管理インストール)。

発展:authenticate.admin(request)と後始末

@shopify/shopify-app-react-routerauthenticate.adminが、検証・交換・セッション保存を全部やってくれます。
loader / actionの先頭で呼び、返るadminでGraphQLを実行します。
アンインストール時はapp/uninstalled Webhookでセッションを削除します(テンプレートに最初から入っています)。
スコープを増やしたらdeployして、ストアで再承認してもらいます。

ステップ1 / 2

ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。