つい先日、Supabase公式のLinkedIn投稿で、こんなお知らせがでていました。
[Now you can build "Sign in with Your App" using Supabase Auth]
あなたのアプリにSupabase Authでサインインできるよ!
"Sign in with Your App"?
つまり、GoogleやGitHubみたいに、自分のSupabaseアプリを使って、他のアプリにログインできるようにできるってこと?
なにそれすごい!
ということで、公式記事を確認してみました。公式記事はこちら。
読み進めていくと、そこには驚く一言が。
"The immediate catalyst? Model Context Protocol (MCP) authentication."
「今回の機能を作った直接的なきっかけ?それはモデルコンテキストプロトコル(MCP)認証のためです。」
Oatuh2.1とMCPという言葉が結びつかず、一瞬、「??」となりましたが、読み進めていくと納得がいきました。
そして思いました。
「Supabaseは、ますます安全性に磨きをかけてくれている!」
わたしのSupabase愛に、また磨きがかかりました^^
ただ今回の変更って、公式文書(しかも英語)をぱっと見ただけでは、分かりにくい気がしました。
せっかくの良いニュースなので、これで何が可能になるのか、わかりやすくお伝えしてみますね。
SupabaseにOAuth 2.1プロバイダー機能が追加されて可能になること
大きく分けて3つあります。
社内のアプリの認証を統一できる
社内(またはグループ)の複数Webアプリの認証を、Supabase ひとつに集約できます。
たとえば:
- WebアプリA を Supabase Auth で構築
- WebアプリB は、A のログイン機能を使ってサインイン可能(OAuth 2.1経由)
これにより、Google や GitHub の代わりに、自社アプリでログインできる世界を作れます。
社内アプリを自前でたくさん開発したい企業やグループには嬉しい機能ですね^^
外部アプリとのAPI連携がより安全に
外部アプリとAPI連携を行う際、従来の「APIキーの直接共有」ではなく、OAuth2.1で制限アクセスを付与できるようになります。
具体的には:
- ユーザーが明示的に「許可」した範囲だけアクセス
- 権限取り消し可能
- アクセストークンは有効期限付き
生成AI(MCP)での外部アプリ連携がより安全に
おそらくここが、今回の肝だと思います。
生成AIツール(Cursor、Claude Code など)を使って開発する際、AI が外部ツールやデータソースとやり取りするケースが増えています。
こうした連携のための標準規格が MCP(Model Context Protocol) です。
MCP連携は便利ですが、AIツールに強力な権限を与えることになるため、次のようなリスクがあります:
- 生成AIが誤ってデータベースを読み書きしてしまう
- APIキーを生成AIに渡すことによる「漏えいリスク」
- できることの範囲が広く、制限しづらい
OAuth2.1で制限付きアクセスにすれば、こういったリスクを避けられます。
生成AIに渡すのは「短命トークン」だけです。
またSupabaseには、RLS設定によってデータベースへのアクセス制限も可能なので、これを使って、外部ツールのデータベースアクセスも制限できます。
設定方法
Supabaseの設定画面をみると、⚙(歯車)マークの設定画面/Authenticationに、OAuth Server (BETA)メニューがあります。こちらを有効にします。
(他、細かい設定は必要となりますが今回は省略します。)
デモ見たい方はこちら
他、実際に動かすためには色々設定が必要そうですが、どんなふうになるのか、下記のGitHubライブラリで動画を見れます。(下記画像です)
このデモでは、2つのアプリを使って、OAuth 2.1の実際の動きを確認できます。
さいごに
お読みいただき、ありがとうございました♪
わたしは、これがQiita初記事になります。
今回、Supabaseのアドベントカレンダーに参加してみようと思い、記事を書いてみました。
Supabaseについては、自分のブログにも色々書いているので良かったら見てくださいね。
なお、今回のOAuth 2.1 ProviderはまだBETA版です。
マニュアルなども、まだこれから対応してくれると思われる部分があります。
引き続き、見守っていきたいと思います。


