接続モデル
- 各ユーザーが自分の Google アカウントを接続します。 接続は Google の標準的な OAuth 同意画面を経由して行われ、接続を開始したユーザー専用となります。Profound の組織内の他のユーザーが同じ接続を使用することはできません。
- サービスアカウント、ドメイン全体の委任、管理者の同意は不要です。 Profound はサービスアカウントやドメイン全体の委任を使用しません。また、ユーザーが接続するために Workspace の管理者が権限を付与する必要もありません。Profound が接続したユーザー以外の ID で Drive にアクセスすることはなく、そのユーザーが開けないものにアクセスすることもできません。
- アクセス範囲はユーザー自身のアクセス権よりも狭くなります。 Profound は
drive.fileスコープをリクエストするため、読み取れるのは、ユーザーが Google Picker で選択したファイルと、Profound がユーザーに代わって作成したファイルのみです。ユーザーが開けるファイルであっても、それ以外のユーザーの Drive 内のファイルを Profound が一覧表示、検索、読み取りすることはできません。
OAuth スコープ
Profound の Google Drive インテグレーションは、制限付きの Drive スコープを一切リクエストしません。各 Drive スコープに対する Google の分類については、Google Drive API スコープの選択を参照してください。
ユーザーフロー
Knowledge Base のインポート
- Knowledge Base の編集権限を持つユーザーが、Google Picker でファイルを選択します。Profound は、選択された各ファイルの ID、名前、ファイル形式を受け取ります。
- Profound は、選択された各ファイルのメタデータを読み取り、コンテンツをダウンロードします。Google ドキュメントは
.docx、Google スプレッドシートは.xlsx、Google スライドと Google 図形描画は PDF としてエクスポートされます。PDF、Word、Excel、プレーンテキスト、Markdown、CSV ファイルはそのままダウンロードされます。100 MB を超えるファイルはインポートされません。 - Profound は、選択されたファイルの親フォルダ名を解決し、Knowledge Base 内でフォルダ構造を再現します。
Cache-Control: no-store が指定されています。
自動同期
インポートした Google Drive フォルダに対してユーザーが自動同期を有効にすると、Profound は Google の Changes API を使用して、選択された頻度で変更を確認します。各実行時に Profound は次の処理を行います。- コンテンツが変更されたインポート済みファイルを再ダウンロードし、コンテンツに変更のないファイルはスキップします
- Drive から削除されたファイル、または Profound がアクセスやダウンロードできなくなったファイルについて、Knowledge Base 内のコピーを削除します
Agent ノード
Agents の Google Docs、Google Sheets、Google Slides ノードは、同じ Google Drive 接続と同じdrive.file の許可を使用します。読み取りノードは、ユーザーが選択したファイルのみを読み取ります。作成ノードと書き込みノード (例: Google ドキュメントの作成や Google スプレッドシートへの行の書き込み) は、接続したユーザーの Drive に新しいファイルを作成するか、ユーザーが選択したファイルを変更します。
ファイル名でファイルを受け付けるノードは、drive.file の許可の対象となるファイルの中でのみ検索し、名前が複数のファイルに一致する場合はファイル ID または URL の入力を求めます。
Profound が Drive API で実行する操作
Google Drive 接続が実行する Drive API の操作は、これらのみです。Drive への書き込みは、Google Docs と Google Sheets の Agent ノードを通じてのみ行われます。
インポートしたコンテンツの保存場所
Profound が保存するのは、ユーザーが Knowledge Base にインポートしたファイルのみです。Agent の読み取りノードも、読み取るファイルのコンテンツをダウンロードしますが、それはその実行のためだけです。コンテンツはノードの出力となり、Profound は他のすべてのノードの出力と同様に、Agent の実行履歴に保持します。インポートされた各ファイルについて、Profound は次のものを保存します。- ファイルのコンテンツ: Profound の AWS アカウント内で論理的に分離された Amazon S3 バケットに保存
- 解析済みのテキスト: 同じ S3 バケットに保存。また、Knowledge Base の検索で見つけられるよう、その検索用埋め込みをマネージドのベクトル検索サービスに保存
- ファイルの名前、パス、サイズ、形式、ソースリンク、コンテンツハッシュ: Profound のデータベースに保存
削除と保持
Profound は、次のいずれかが発生するまで、インポートしたコンテンツを保持します。- ユーザーが Profound でドキュメント、フォルダ、または Knowledge Base を削除した
- 自動同期によって、ファイルが Drive から削除された、またはアクセスできなくなったことが検出された
トークンの保存と取り扱い
- 暗号化: Profound は、顧客データ専用の AWS Key Management Service (KMS) キーを使用して OAuth のアクセストークンとリフレッシュトークンをエンベロープ暗号化し、暗号文を Amazon DynamoDB に保存します。暗号化コンテキストにより各レコードは 1 つの組織、1 つのプロバイダー、1 人のユーザーに紐付けられるため、別の組織やユーザーの ID でレコードを復号することはできません。Profound のメインデータベースには、暗号化されたレコードへの参照のみが保持され、トークン自体が保持されることはありません。
- スコープ設定: 認証情報の読み取りのたびに、その接続がリクエスト元ユーザーの組織に属していること、また Google Drive のような個人用の接続の場合はリクエスト元ユーザー本人に属していることが確認されます。Profound は、すべての認証情報の読み取りを、インテグレーション、リクエスト元のエンドポイント、読み取りの対象となったユーザー、タイムスタンプとともに内部の監査テーブルに記録します。この記録はプラットフォーム上には表示されません。
- 更新: Profound は Google にオフラインアクセスをリクエストするため、リフレッシュトークンを受け取り、ユーザーに再度サインインを求めることなく Knowledge Base の自動同期を継続できます。アクセストークンの有効期限が切れると、Profound のバックエンドがリフレッシュトークンを新しいアクセストークンと交換します。複数のリクエストが同時にトークンを必要とする場合、Google に問い合わせるのはそのうち 1 つのみです。他のリクエストはその更新の完了を待ち、結果を再利用します。
- アカウントについて保存される情報: Profound は、Google アカウントのメールアドレスとサブジェクト識別子 (ID トークンのペイロード内の
subキー) を接続とともに保存します。サブジェクト識別子は、アカウントのメールアドレスが変わっても変化しないため、Profound はこれを使用して、ユーザーが同じアカウントを再接続したことを認識します。
アクセス権の取り消し
ユーザーは、Profound の Settings > Integrations > Google Drive で、接続済みアカウントの … アクションメニューから Revoke を選択して接続を取り消します。ユーザーが取り消すと、次のようになります。- Profound は暗号化されたトークンのレコードを削除し、接続を取り消し済みとしてマークします。この削除は元に戻せません。
- これが組織内でそのアカウントに残っている最後の Google 接続である場合、Profound はアクセストークンとリフレッシュトークンについて、Google のトークン取り消しエンドポイントも呼び出します。それ以外の場合は、以下で説明するように、この呼び出しを保留します。
- その接続を使用している Knowledge Base の自動同期と Agent ノードは、ユーザーが再接続するまで動作しなくなります。
ユーザーは、Google アカウントのサードパーティアクセスのページから Profound のアクセス権を取り消すこともできます。その場合、Profound に保存されているリフレッシュトークンは機能しなくなり、ユーザーはインテグレーションを再び使用する前に、Profound でアカウントを再接続する必要があります。
Google Workspace 管理者向けの制御
- アプリとして Profound を許可またはブロックする。 Google の「Google Workspace のデータにアクセスできるサードパーティ製アプリと社内アプリを管理する」に記載されている方法で、Profound のアクセスを管理します。この設定には Profound の OAuth クライアント ID が必要になる場合があります。Profound のアカウントチームが提供できます。
- Google Drive インテグレーションには「制限付きアクセス」で十分です。 Google の制限付きアクセスの設定では、アプリは制限のないスコープのみを使用できます。
drive.file、openid、userinfo.emailはいずれも制限のないスコープであるため、Google Drive インテグレーションは Limited の設定でも動作します。 - 1 つのクライアントで Profound の Google インテグレーションをカバーします。 Profound の Google Drive、Gmail、Google Search Console、Google Ads の各インテグレーションは 1 つの OAuth クライアントを共有しているため (Google Analytics は独自のクライアントを使用)、許可リストやブロックはそれらすべてに適用されます。