Appearance
Are you an LLM? You can read better optimized documentation at /features/notebook/sharing/signed-embed/multi-tenant.md for this page in Markdown format
マルチテナント
署名付き埋め込みでは、サーバーサイドパラメータの 固定値 を使うと、埋め込み先のテナントごとに参照できるデータを分離できます。1つのノートブックを複数のテナント向けに再利用しつつ、各テナントは自身のデータのみを閲覧できます。
パラメータの種類は 署名付き埋め込み を参照してください。組み込み手順は 組み込み手順 を参照してください。具体的な設計例は ユースケース を参照してください。
パラメータの役割
| 種類 | 用途 |
|---|---|
| サーバーサイドパラメータの 固定値 | テナント ID など、閲覧者が変更してはいけない条件。入力フォームには表示されません |
| サーバーサイドパラメータの 初期値 | 初期表示用の店舗 ID など。初期値はサーバーで指定し、その後は入力フォームから変更できます |
| クライアントサイドパラメータ | 日付範囲やカテゴリなど、入力フォームまたは埋め込み先アプリから動的に指定する条件 |
SQL 側では、固定値のパラメータをフィルタ条件へ必ず含めます。店舗など下位の識別子だけを条件にすると、別テナントのデータへ到達できる場合があります。
構成例
入力フォームを署名付き埋め込み側で使う場合
- テナント ID を 固定値、初期表示の店舗 ID を 初期値、日付範囲などをクライアントサイドパラメータにします
- サーバー側でトークンを発行し、固定値と初期値を
paramsに含めます - 埋め込みの初期化時に、クライアントサイドパラメータを渡します
- 閲覧者は入力フォームから、初期値とクライアントサイドパラメータを変更できます
詳細は ユースケース: 設定例A を参照してください。
埋め込み先アプリ側でパラメータを管理する場合
- テナント ID を 固定値、それ以外をクライアントサイドパラメータにします
- サーバー側でトークンを発行し、固定値を
paramsに含めます - 埋め込みの初期化時に
hideParamsFormを有効にし、埋め込み先アプリが管理する値をクライアントサイドパラメータとして渡します - 条件を更新する場合は、同じトークンを再利用して、クライアントサイドパラメータの全件を再送します。差分送信はできません
- 同一の閲覧者が同一の固定値を使う場合、トークンは有効期限内なら再利用できます
詳細は ユースケース: 設定例B を参照してください。
固定値を更新する場合
店舗 ID なども 固定値 にする場合、対象店舗の変更にはトークンの再発行が必要です。
- サーバー側で、新しい固定値を指定してトークンを再発行します
- 新しいトークンと、クライアントサイドパラメータの全件を埋め込みへ送ります
- 再描画前に閲覧者が変更したクライアントサイドパラメータを保持したい場合は、埋め込みから送られる変更通知を記録しておき、再送時に含めます
詳細は ユースケース: 設定例C を参照してください。