inovie

DATA & KNOWLEDGE ・ Q&A

Q17.ロール別のアクセス制御(RBAC/ABAC)は、ナレッジ検索でどう実装しますか?

回答

認証(SSO)でユーザー属性を取得し、検索前にメタデータフィルタまたはインデックス分離で参照可能範囲を限定します。LLMに渡す前の段階で権限チェックを完了させるのが原則です。

検索後にLLMが権限外情報を要約してしまうと、フィルタが無意味になります。そのため、ベクトル検索のクエリに必ず tenant_id、department、clearance_level などの条件を付与するか、ロールごとに物理/論理分割したインデックスを使います。ABACでは、属性(雇用形態、拠点、プロジェクト参加)の組み合わせで動的にフィルタします。監査のため、誰がどの文書IDを取得したかのログを残し、権限変更時のキャッシュ無効化も設計します。SharePoint等の元ACLを尊重する場合は、取り込み時にACLをメタデータ化するか、検索時にソースAPIで再確認する方式を選びます。

  • 原則: 検索前フィルタ、LLM前に権限確定
  • 方式: メタデータフィルタ、インデックス分離、ACL同期
  • 監査: 取得ログ、権限変更の反映遅延対策