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_uriclient_id ごとに複数URIを管理
scope検証 scope_master + client_scope で要求可能scopeを管理
UserInfo返却 scope_data_key で scope と claim を対応付け
規約表示・同意 client_termterm_id / term_version / term_url / required を管理し、同意履歴は user_term_consent に保存
scope同意状態 user_client_scope_consent にクライアント単位で保存
IDトークン署名鍵 jwk_master で公開鍵と暗号化済み秘密鍵を管理し GET /jwks に公開

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

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 を基準としている。
  • 追加分として整理していたテーブルは現行DDLに実装済み。
  • ログインセッション、認可コード、アクセストークン、IDトークン失効管理は Redis.md の責務であり、本書ではRDB要素に限定して記載する。

ER図

results matching ""

    No results matching ""