organization-best-practices
作成者 better-authBetter Authのorganizationスキルを使ってマルチテナント組織を設定し、メンバー、役割、権限、チームを管理し、RBACを実装します。堅牢な組織管理とアクセス制御機能が必要なバックエンド開発者に最適です。
概要
Better Authのorganizationスキルは、バックエンド開発者がマルチテナント組織、メンバー、チーム、ロールベースアクセス制御(RBAC)を効率的に管理できるよう設計されています。このスキルは、SaaSプラットフォームや社内ツール、ユーザーが組織に属し役割や権限を持つシステムなど、高度なユーザー管理が必要なプロジェクトに最適です。
organizationスキルでできること:
- 組織の作成やメンバー数にカスタム制限を設定
- 招待管理と新規メンバーのオンボーディング
- カスタム役割と権限の定義と割り当て
- 組織内のチーム設定
- 安全なアクセス制御のためのRBAC実装
このスキルは、スケーラブルで安全かつ柔軟な組織管理が求められるバックエンドシステムに適しています。組織構造がなく単一ユーザーアクセスのみのシンプルなアプリには向きません。
使い方
インストール手順
-
サーバー設定にorganizationプラグインを追加:
import { betterAuth } from "better-auth"; import { organization } from "better-auth/plugins"; export const auth = betterAuth({ plugins: [ organization({ allowUserToCreateOrganization: true, organizationLimit: 5, // ユーザーごとの最大組織数 membershipLimit: 100, // 組織ごとの最大メンバー数 }), ], }); -
クライアント設定にorganizationクライアントプラグインを追加:
import { createAuthClient } from "better-auth/client"; import { organizationClient } from "better-auth/client/plugins"; export const authClient = createAuthClient({ plugins: [organizationClient()], }); -
データベースマイグレーションを実行:
組織、メンバー、招待のテーブルを作成するために以下のコマンドを実行します。
npx @better-auth/cli migrate -
セットアップの確認:
データベースに組織、メンバー、招待テーブルが作成されていることを確認してください。
組織の作成と管理
-
組織を作成する:
組織を作成したユーザーは自動的に
ownerロールが割り当てられます。const createOrg = async () => { const { data, error } = await authClient.organization.create({ name: "My Company", slug: "my-company", logo: "https://example.com/logo.png", metadata: { plan: "pro" }, }); }; -
組織作成の制御:
ユーザー属性に基づいて組織作成を制限することも可能です。プラグインオプションでカスタマイズしてください。
役割と権限のカスタマイズ
アプリケーションの要件に合わせてカスタム役割と権限を定義できます。プラグイン設定でRBACを構成し、組織やチーム単位でアクセス管理を行いましょう。
ベストプラクティス
- 詳細な設定や高度な使い方は
SKILL.mdファイルを参照してください。 - 提供されているコード例はプロジェクト構造や要件に合わせて調整してください。
- ユーザーのグルーピング、チーム管理、細かなアクセス制御が必要なプロジェクトでの利用を推奨します。
よくある質問
organizationスキルは誰が使うべきですか?
マルチテナントアプリケーションやSaaS製品、強力な組織・アクセス制御機能が必要なシステムを開発するバックエンド開発者に最適です。
インストールの前提条件は?
Better Authを利用したプロジェクトで、プラグイン設定やマイグレーションのためにバックエンドとデータベースへのアクセスが必要です。
組織の制限や役割はカスタマイズできますか?
はい。ユーザーごとの組織数や組織ごとのメンバー数の制限、カスタム役割や権限の定義が可能です。
詳細はどこで確認できますか?
リポジトリ内のSKILL.mdファイルに高度な設定情報があり、Filesタブで関連スクリプトや参考資料もご覧いただけます。
