🔑

Supabase Auth Admin を利用する際の注意点

2024/10/09に公開

背景

Supabaseを利用していると、管理者がユーザーを追加したり、招待リンクをメールで送信したりする場面が出てくると思います。

これらの操作を行うには、auth admin apiへのアクセスが必要です。
https://supabase.com/docs/reference/javascript/admin-api

Admin へアクセスするには、service_role key を利用してAdminクライアントを作成することができます。

import { createClient } from '@supabase/supabase-js'

const supabase = createClient(supabase_url, service_role_key, {
  auth: {
    autoRefreshToken: false,
    persistSession: false
  }
})

// Access auth admin api
const adminAuthClient = supabase.auth.admin

このAdminクライアントは、データベースの全ての操作(CRUD操作、ユーザー管理など)を行うための強力な権限を持ちます。
そのため、適切な利用が求められます。

Adminクライアントを利用する際の注意点

セキュリティ

service_role key は適切に管理する必要があります。これは信頼できるサーバー上で呼び出されるべきで、ブラウザで決して公開しないでください。
また、誤って公開しないように、環境変数や秘密管理システムを利用すべきです。

適切な場面での利用

Adminクライアントを利用する必要のあるユースケースでのみ使用し、通常の操作では利用しないようにします。

ログ

Adminクライアントによる操作は、適切にログを収集し、監査可能にしておくことが推奨されます。

Discussion