🔑
Supabase Auth Admin を利用する際の注意点
背景
Supabaseを利用していると、管理者がユーザーを追加したり、招待リンクをメールで送信したりする場面が出てくると思います。
これらの操作を行うには、auth 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