RDB総合
テーブル一覧
実装済みテーブル
| TableName | PhysicalName | Purpose |
|---|---|---|
| クライアントマスタ | client_master | 認証基盤を利用するクライアントアプリケーションを管理する |
| ユーザーテーブル | osolab_user | 認証基盤のユーザーアカウントを管理する |
| ユーザー属性テーブル | user_info | クライアントごとにユーザーへ紐づく属性値を管理する |
| 属性キー管理マスタ | data_key_master | UserInfoで利用する属性キー定義を管理する |
| クライアント属性許可テーブル | client_data_key | クライアントが利用可能な属性キーを管理する |
実装済みテーブル(拡張分)
| TableName | PhysicalName | Purpose |
|---|---|---|
| クライアントリダイレクトURI | client_redirect_uri | クライアントごとに許可する redirect_uri を複数管理する |
| Scope管理マスタ | scope_master | OpenID Connect / OAuth2 の要求可能 scope を管理する |
| クライアント許可Scope | client_scope | クライアントごとに要求可能な scope を管理する |
| Scope-Claimマッピング | scope_data_key | scope と返却可能 claim を対応付ける |
| クライアント適用規約 | client_term | クライアントごとに同意対象とする規約を管理する |
| ユーザー規約同意履歴 | user_term_consent | ユーザーの規約同意結果と対象バージョンを記録する |
| ユーザーScope同意履歴 | user_client_scope_consent | ユーザーがクライアントごとに同意した scope を記録する |
| JWK管理マスタ | jwk_master | IDトークン署名鍵の公開情報と暗号化済み秘密鍵を管理する |
実装反映ポイント
| 対象 | 実装内容 |
|---|---|
| リダイレクトURI管理 | client_redirect_uri で client_id ごとに複数URIを管理 |
| scope検証 | scope_master + client_scope で要求可能scopeを管理 |
| UserInfo返却 | scope_data_key で scope と claim を対応付け |
| 規約表示・同意 | client_term で term_id / term_version / term_url / required を管理し、同意履歴は user_term_consent に保存 |
| scope同意状態 | user_client_scope_consent にクライアント単位で保存 |
| IDトークン署名鍵 | jwk_master で公開鍵と暗号化済み秘密鍵を管理し GET /jwks に公開 |
既存テーブルの拡張ポイント
| Table | 現状 | 追加推奨項目 |
|---|---|---|
client_master |
クライアント識別子・名称・シークレットのみ | client_type、token_endpoint_auth_method、require_pkce など |
osolab_user |
ログイン用最小情報のみ | 表示名やプロフィール画像は user_info 運用でも可。必要ならメール検証日時の保持も検討 |
user_info |
属性値格納のみ | data_key_master へのFK追加、共通クライアント属性の扱い明文化 |
補足
- 実装済みDDLは
Auth/SQL/000_init_db.sqlを基準としている。 - 追加分として整理していたテーブルは現行DDLに実装済み。
- ログインセッション、認可コード、アクセストークン、IDトークン失効管理は Redis.md の責務であり、本書ではRDB要素に限定して記載する。