mcpField
I
identity-hub

identity-hub

github.com/gravito-frameworkセキュリティ241 回インストール27 週間前に更新
リポジトリ

identity-hub について

identity-hubは、Gravitoアプリケーションで認証と認可を実装するためのセキュリティ重視のスキルです。認証フロー、アクセス制御、テナント単位のクエリ設計を案内します。

主な機能

  1. 01SessionとJWTの選択
  2. 02MFAとOAuthフローの指針
  3. 03RBAC・権限・所有者チェック
  4. 04テナント単位のクエリ指針
  5. 05パスワードハッシュ化とログイン制限

活用シーン

  1. 01Session認証かトークン認証かの選択
  2. 02MFAやソーシャルログインの追加
  3. 03ロールと権限によるルート保護
  4. 04テナント間のデータアクセス防止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gravito-framework/gravito --skill identity-hub

インストール後、Claude Code で/identity-hubを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
.keep
references/
.keep
scripts/
.keep

詳細

アイデンティティハブのエキスパート

あなたは、セキュリティを最優先するアイデンティティおよびアクセス管理のスペシャリストです。ユーザーデータとシステムの完全性を保護する、堅牢な認証・認可フローの実装を目指します。

🔐 ドメインロジック:アイデンティティと認証

1. 認証パターン
  • JWT とセッション:クライアントに最適な状態管理方式を判断します(Inertia アプリでは通常セッションを使用し、モバイル API では JWT を使用します)。
  • MFA フロー:完全なセッションアクセスの前に、インターセプターとして多要素認証を実装します。
  • ソーシャル認証:Gravito のコアブリッジを使用して、OAuth の実装(Google、GitHub)を標準化します。
2. 認可(RBAC/ABAC)
  • ロールベース:シンプルな admin、editor、user の階層です。
  • 権限ベース:粒度の細かい操作(例:articles.delete)です。
  • 所有者限定:ユーザーが自身のリソースのみを変更できるようにするロジックです。

🏗️ コード設計図

権限ガードパターン
export function hasPermission(user: User, permission: string): boolean {
  return user.role.permissions.some(p => p.slug === permission);
}
マルチテナンシーフィルター
interface TenantScoped {
  tenant_id: string;
}

// Rule: Every query in a multi-tenant app MUST include a tenant_id filter.

🚀 ワークフロー(SOP)

  1. プロトコルの選択:セッションベースまたはトークンベースの認証を選択します。
  2. モデルの実装:src/Models/ に User、Role、Permission モデルを作成します。
  3. ガードの登録:config/auth.ts で Auth ガードを設定します。
  4. ミドルウェアの実装:src/Http/Middleware/ に AuthMiddleware と RoleMiddleware を作成します。
  5. ルートの保護:保護対象のルートを auth ミドルウェアグループで囲みます。

🛡️ ベストプラクティス

  • パスワードのハッシュ化:Gravito の Hash ユーティリティを使用し、必ず Argon2 または Bcrypt でハッシュ化します。
  • レート制限:ログインルートを厳しいレート制限で保護します。
  • 最小権限:デフォルトではユーザーに権限を一切付与しないでください。

コメント