AI・テクノロジー

社内AIチャットボットの権限管理を解決するRAGアプリを試してみた

「社内文書を使ったAIチャットボットを作りたいけど、誰にどこまで見せるかが決められない」——DX推進や情シスの担当者からよく聞く悩みです。

営業部の資料を経理部が見られてしまったり、逆に全社共有すべき情報が特定部署にしか届かなかったり。RAG(検索拡張生成)でAIチャットボットを作ろうとすると、この「権限管理」の壁に必ずぶつかります。

この記事でわかること

  • 社内AIチャットボットで権限管理が難しい理由
  • テナント・部署単位でアクセス範囲を分離するRAGの仕組み
  • ログイン不要で試せる公開デモの使い方

実際に動くデモを用意したので、読みながら触ってみてください。


社内AIチャットボットで権限管理がつまずきやすい理由

「全員に同じ回答」では困る

一般的なRAGチャットボットは、登録した文書をすべての利用者に対して検索対象にします。しかし実際の企業では、閲覧できる情報は役割によって異なります。

  • 経営層:全部署の資料を横断して見たい
  • 一般社員:自分の部署の資料だけ見られればいい
  • 社外の問い合わせ窓口:公開してよい情報だけに絞りたい

この前提を無視してAIチャットボットを作ると、情報漏洩のリスクを抱えたまま運用することになります。

「後から権限を絞る」のは大変

多くのRAGツールは、まず全文書をまとめて検索インデックス化してから、アプリ側の表示で絞り込む設計になりがちです。この場合、検索ロジックのどこかにバグがあれば、権限のない文書がAIの回答に紛れ込む危険が残ります。

権限は「後から絞る」のではなく「検索する前にサーバー側で強制する」必要があります。


テナント・部署単位でアクセス範囲を分離するRAGの仕組み

今回試したのは、会社(テナント)ごと・データセットごとにアクセス範囲を分離できるRAG学習アプリ「CompanyBrain」です。ポイントは3つあります。

ポイント1:検索前に権限を強制する

ログインしているユーザーの役割に応じて、検索対象のデータセットをサーバー側で絞り込んでから回答を生成します。UI側の表示切り替えだけに頼らないため、権限外のデータが回答に混ざりません。

ポイント2:回答に引用元が付く

AIの回答には、どの文書のどの部分を参照したかが表示されます。「AIが勝手に作った情報ではないか」という不安に対して、根拠を確認できる形で応えられます。

ポイント3:ログイン不要の公開チャットURLを即発行できる

社外向けのFAQ対応など、ログインなしで使わせたい場面もあります。このアプリでは管理者が「公開チャットURL」を発行するだけで、参照させるデータセットや回答スタイルを固定した状態で外部公開できます。


実際に触れるデモで確認する

言葉だけでは伝わりにくいので、実際に触れるデモを用意しました。

ログインして権限の違いを見る

ユーザーメールパスワード役割
Acme ownerowner@acme.testdemo123owner(全データセット閲覧可)
Acme viewerstudent@acme.testdemo123viewer(閲覧範囲が限定)
Mirai adminteacher@mirai.testdemo123admin

同じ質問をしても、ログインするユーザーによって参照できるデータセットが変わることを確認できます。

ログイン不要で公開チャットを試す

社外向け公開チャットは、ログインなしで試せます。参照するデータセット・回答スタイルはあらかじめ固定されているため、社外の人が誤って社内限定情報にアクセスすることはありません。

公開チャットデモ(Acme社の問い合わせ対応デモ)を試す


よくある質問

Q. 社外のLLMやベクトルDBに接続していますか?

現時点のプロトタイプでは外部LLM・Vector DBは呼び出していません。登録済みの文書チャンクをローカルで検索し、決定的な回答文を生成する仕組みです。本番運用では、この検索・生成の境界にembedding、pgvector、rerank、LLMを接続する設計にしています。

Q. 使用量や課金はどう管理されていますか?

容量ベースの使用量管理を組み込んでいます。現在のプラン、無料枠、保存上限、超過見積、日次の使用量履歴を管理画面から確認できます。保存上限を超える文書登録はAPI側で止まる仕組みです。

Q. 部署ごとにアクセス範囲を後から変更できますか?

管理者・編集者権限を持つユーザーが、ユーザーの招待、ロール変更、権限削除を行えます。組織構成の変化に合わせて権限を調整できます。

Q. 本番導入する場合、何が変わりますか?

このプロトタイプはNode.jsのみで動作し、Vercelのサーバーレス環境では投稿・ログを一時保存する構成です。本番運用ではSupabase(PostgreSQL + pgvector)に接続し、永続化と本格的なベクトル検索を行う移行方針を用意しています。


まとめ

  1. 社内AIチャットボットの権限管理は「検索前にサーバー側で強制する」ことが重要
  2. テナント・データセット単位でアクセス範囲を分離すれば、部署ごとの閲覧制限を安全に実現できる
  3. 回答には引用元が付き、AIの根拠を確認できる
  4. ログイン不要の公開チャットURLを発行すれば、社外向けFAQも即日公開できる
  5. 容量ベースの使用量・課金も可視化されており、導入後の運用イメージが掴みやすい

まずはデモにログインして、役割による見え方の違いを実際に確認してみてください。