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 を対応付ける
規約マスタ term_master 規約本文・版数・有効期間を管理する
クライアント適用規約 client_term クライアントごとに同意対象とする規約を管理する
ユーザー規約同意履歴 user_term_consent ユーザーの規約同意結果と対象バージョンを記録する
ユーザーScope同意履歴 user_client_scope_consent ユーザーがクライアントごとに同意した scope を記録する

仕様実装に対する不足整理

対象 不足している内容 必要な対応
認可エンドポイント redirect_uri の事前登録先がない client_redirect_uri を追加し、client_id ごとに複数管理する
トークンエンドポイント 認可時と同一 redirect_uri の照合元がない client_redirect_uri と認可コード保存値の両方で完全一致検証する
規約表示・同意 規約マスタ、クライアント別適用設定、同意履歴がない term_masterclient_termuser_term_consent を追加する
scope検証 要求可能scopeのマスタとクライアント別許可設定がない scope_masterclient_scope を追加する
UserInfo返却 scope と claim の対応表がない scope_data_key を追加する
scope同意状態 ユーザーがクライアントごとに何に同意したか保持できない user_client_scope_consent を追加する
クライアント認証方式 client_master だけでは public/confidential や認証方式を表現できない client_master に種別列を追加するか別設定テーブルで管理する
同意監査 最新状態しか持てない設計だと同意履歴が追えない 規約・scopeともに履歴テーブルとして保存する

既存テーブルの拡張ポイント

Table 現状 追加推奨項目
client_master クライアント識別子・名称・シークレットのみ client_typetoken_endpoint_auth_methodrequire_pkce など
osolab_user ログイン用最小情報のみ 表示名やプロフィール画像は user_info 運用でも可。必要ならメール検証日時の保持も検討
user_info 属性値格納のみ data_key_master へのFK追加、共通クライアント属性の扱い明文化

補足

  • 実装済みDDLは Auth/SQL/000_init_db.sql を基準としている。
  • 追加テーブルは現行ソースコード未実装だが、authfoundation-docs/API および authfoundation-docs/Architecture の仕様を成立させるために必要な設計として整理した。
  • ログインセッション、認可コード、アクセストークン、IDトークン失効管理は Redis.md の責務であり、本書ではRDB要素に限定して記載する。

ER図

results matching ""

    No results matching ""