Skip to content

マルチテナント

署名付き埋め込みでは、サーバーサイドパラメータの 固定値 を使うと、埋め込み先のテナントごとに参照できるデータを分離できます。1つのノートブックを複数のテナント向けに再利用しつつ、各テナントは自身のデータのみを閲覧できます。

パラメータの種類は 署名付き埋め込み を参照してください。組み込み手順は 組み込み手順 を参照してください。具体的な設計例は ユースケース を参照してください。

パラメータの役割

種類用途
サーバーサイドパラメータの 固定値テナント ID など、閲覧者が変更してはいけない条件。入力フォームには表示されません
サーバーサイドパラメータの 初期値初期表示用の店舗 ID など。初期値はサーバーで指定し、その後は入力フォームから変更できます
クライアントサイドパラメータ日付範囲やカテゴリなど、入力フォームまたは埋め込み先アプリから動的に指定する条件

SQL 側では、固定値のパラメータをフィルタ条件へ必ず含めます。店舗など下位の識別子だけを条件にすると、別テナントのデータへ到達できる場合があります。

構成例

入力フォームを署名付き埋め込み側で使う場合

  1. テナント ID を 固定値、初期表示の店舗 ID を 初期値、日付範囲などをクライアントサイドパラメータにします
  2. サーバー側でトークンを発行し、固定値と初期値を params に含めます
  3. 埋め込みの初期化時に、クライアントサイドパラメータを渡します
  4. 閲覧者は入力フォームから、初期値とクライアントサイドパラメータを変更できます

詳細は ユースケース: 設定例A を参照してください。

埋め込み先アプリ側でパラメータを管理する場合

  1. テナント ID を 固定値、それ以外をクライアントサイドパラメータにします
  2. サーバー側でトークンを発行し、固定値を params に含めます
  3. 埋め込みの初期化時に hideParamsForm を有効にし、埋め込み先アプリが管理する値をクライアントサイドパラメータとして渡します
  4. 条件を更新する場合は、同じトークンを再利用して、クライアントサイドパラメータの全件を再送します。差分送信はできません
  5. 同一の閲覧者が同一の固定値を使う場合、トークンは有効期限内なら再利用できます

詳細は ユースケース: 設定例B を参照してください。

固定値を更新する場合

店舗 ID なども 固定値 にする場合、対象店舗の変更にはトークンの再発行が必要です。

  1. サーバー側で、新しい固定値を指定してトークンを再発行します
  2. 新しいトークンと、クライアントサイドパラメータの全件を埋め込みへ送ります
  3. 再描画前に閲覧者が変更したクライアントサイドパラメータを保持したい場合は、埋め込みから送られる変更通知を記録しておき、再送時に含めます

詳細は ユースケース: 設定例C を参照してください。