mcpField
I
identity-access

identity-access

github.com/dralgorhythmセキュリティ12867 回インストール14 週間前に更新
リポジトリ

identity-access について

アイデンティティおよびアクセス管理のリファレンススキルです。認証、認可、OAuth 2.0、OIDC、JWT、RBACに加え、パスワード、セッション、トークン、MFAの実践項目を扱います。

主な機能

  1. 01認証と認可の概念
  2. 02OAuth 2.0 フローのリファレンス
  3. 03OIDC と JWT の構造
  4. 04RBAC のロールと権限の例
  5. 05パスワードとセッションのセキュリティ指針
  6. 06トークンと MFA の実践項目

活用シーン

  1. 01Web、モバイル、マシン間で認証フローを選ぶ
  2. 02アプリケーションのロールとリソース権限を計画
  3. 03パスワード、セッション、トークンの安全性を確認

インストール

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

$npx skills add https://github.com/dralgorhythm/claude-agentic-framework --skill identity-access

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

詳細

アイデンティティとアクセス管理

認証と認可

  • 認証(AuthN):あなたは誰ですか?
  • 認可(AuthZ):何ができますか?

OAuth 2.0 フロー

認可コード(Web アプリ)
User -> App -> Auth Server -> User Login
User -> Auth Server -> App (code)
App -> Auth Server (code + secret) -> tokens
PKCE(モバイル/SPA)

認可コードと同様ですが、シークレットの代わりにコードベリファイア/チャレンジを使用します。

クライアントクレデンシャル(マシン間)
App -> Auth Server (client_id + secret) -> token

OpenID Connect(OIDC)

OAuth 2.0 にアイデンティティレイヤーを追加したものです。

主な追加要素:

  • ID トークン(ユーザー情報を含む JWT)
  • UserInfo エンドポイント
  • 標準クレーム(sub、email、name)

JWT の構造

header.payload.signature

Header: {"alg": "RS256", "typ": "JWT"}
Payload: {"sub": "123", "exp": 1234567890}
Signature: RSASHA256(header + payload, privateKey)

ロールベースアクセス制御(RBAC)

interface Role {
  name: string;
  permissions: Permission[];
}

interface Permission {
  resource: string;
  action: 'read' | 'write' | 'delete';
}

function hasPermission(user: User, resource: string, action: string): boolean {
  return user.roles.some(role =>
    role.permissions.some(p =>
      p.resource === resource && p.action === action
    )
  );
}

ベストプラクティス

パスワード
  • 12 文字以上にする
  • Argon2id または bcrypt でハッシュ化する
  • 平文で保存しない
  • レート制限を実装する
セッション
  • Secure 属性と HttpOnly 属性を設定した Cookie を使用する
  • CSRF 対策を実装する
  • 適切な有効期限を設定する
  • ログアウト時に無効化する
トークン
  • 有効期間の短いアクセストークン(15 分)
  • 有効期間の長いリフレッシュトークン(数日)
  • リフレッシュトークンをローテーションする
  • 安全に保存する(localStorage は使用しない)
MFA
  • TOTP(Google Authenticator)をサポートする
  • WebAuthn/パスキーを検討する
  • 復旧用のバックアップコードを用意する

コメント