Q17.ロール別のアクセス制御(RBAC/ABAC)は、ナレッジ検索でどう実装しますか?
回答
認証(SSO)でユーザー属性を取得し、検索前にメタデータフィルタまたはインデックス分離で参照可能範囲を限定します。LLMに渡す前の段階で権限チェックを完了させるのが原則です。
検索後にLLMが権限外情報を要約してしまうと、フィルタが無意味になります。そのため、ベクトル検索のクエリに必ず tenant_id、department、clearance_level などの条件を付与するか、ロールごとに物理/論理分割したインデックスを使います。ABACでは、属性(雇用形態、拠点、プロジェクト参加)の組み合わせで動的にフィルタします。監査のため、誰がどの文書IDを取得したかのログを残し、権限変更時のキャッシュ無効化も設計します。SharePoint等の元ACLを尊重する場合は、取り込み時にACLをメタデータ化するか、検索時にソースAPIで再確認する方式を選びます。
- ●原則: 検索前フィルタ、LLM前に権限確定
- ●方式: メタデータフィルタ、インデックス分離、ACL同期
- ●監査: 取得ログ、権限変更の反映遅延対策