認可
前提知識
このドキュメントを理解するには、以下の基礎知識が役立ちます:
- OAuth 2.0の基本 - OAuth 2.0の認可の仕組み
- OpenID Connectの基本 - OIDCによる認証
- OAuth 2.0の役割 - 4つの役割
- 認可コードフロー - 認可フローの詳細
概要
idp-serverは、OAuth 2.0/OpenID Connect/CIBAに準拠した認可サーバー(Authorization Server) として動作します。
認可サーバーとは、リソースへのアクセス権限を管理し、トークンを発行する役割を担うサーバーです。
idp-serverでは以下のような用途に対応できます:
- Webアプリケーションでの「スコープ制限付きアクセス」
- SPAでの「安全なトークン管理(PKCE + Refresh Token Rotation)」
- マイクロサービスでの「サービス間認証(Client Credentials Grant)」
- IoTデバイスでの「非同期認証(CIBA Flow)」
OAuth 2.0における4つの役割
| 役割 | 説明 | idp-serverでの対応 |
|---|---|---|
| Resource Owner | リソースの所有者(エンドユーザー) | idp-serverで認証・同意 |
| Client | リソースにアクセスしたいアプリケーション | Management APIで登録・管理 |
| Authorization Server | 認可を管理し、トークンを発行 | idp-server本体 |
| Resource Server | 保護されたリソース(API)を提供 | Introspectionでトークン検証 |
idp-serverにおける認可の設計思想
1. テナント単位の認可サーバー
idp-serverでは、1つのテナント = 1つの独立した認可サーバー として動作します。
特徴:
- テナントごとに異なる認可ポリシー
- テナントごとに独立したクライアント管理
- テナントごとに異なるトークン設定
メリット:
- マルチテナント環境での完全な分離
- テナントごとのカスタマイズ可能
- セキュリティ境界の明確化
詳細は concept-01: マルチテナント を参照。