Domo Embed(ベータ版)でプログラムによるフィルターを使用する
はじめに
Domo Embedでプログラムによるフィルターを使用すると、パーソナライズしたコンテンツをポータルとソフトウェアで大規模に配布できます。Domoのコンテンツを、Domoアカウントを所有していない閲覧ユーザーを含む、無制限の数の閲覧ユーザーと共有できます。
プログラムによるフィルターを使用すると、以下のことができます。
-
閲覧ユーザーには承認済みの関連コンテンツのみを表示する。
-
管理するPDPポリシー数を削減する。
-
Domoのフルユーザーでない閲覧ユーザーもエンベッドされたコンテンツの閲覧を可能にする。
-
閲覧ユーザーがフルインスタンスにログインするリスクを低減する。
フィルターは、Domo Data Permissionポリシーではなく、ご利用のシステムのログイン認証情報に基づき、コードで定義されます。これにより、アイデンティティプロバイダの統合やDomoユーザープロビジョニングの自動化を選択しなかった場合においても、閲覧ユーザーに対しては許可されたデータサブセットのみが表示されます。
以下に例を示します。ユーザーのマイクがユーザー名とパスワードを使用して自社のウェブサイトにログインすると、マイクのログイン認証情報に基づきフィルターされた自社データのビューが表示されます。
プログラムによるフィルターの例を設定する
プログラムによるフィルターの例を設定するには、以下のステップに従います。
-
https://github.com/domoinc/domo-node-embed-filtersからコードの例をダウンロードします。
-
以下を実行してAPIクライアントをアクティベートします。
-
https://developer.domo.comに移動してログインします(アカウントがない場合は作成します)。
-
[マイアカウント] > [新規クライアント] の順に選択します。
-
フィールドへの入力を行います。
-
-
README.mdファイルをテキストエディターで開きます。
-
ファイルの説明に従います。
readmeファイルでは、 以下のタスクについて説明しています。-
DataSetの例を作成する。
-
各カードにおいて特定のエンベッドIDを使用して.env fileをカスタマイズする。
-
お使いのマシンでこの例の設定をライブテストする。
-
お使いの環境でプログラムによるフィルターを設定し、構成する
以下の図では、どのようにサーバーがアクセストークン、エンベッドトークン、エンベッドIDをembed.jsファイルに収集するかを示しています。この図は、embed.jsファイルのサンプルコードの1~11行目に対応しています。図の最後に示しているように、プログラムによってカードをフィルターするページの実際のドメインで、customerserver.comのエントリーを更新する必要があります。
次の図では、自動送信フォームを使って、変更されたカードをリクエストする方法を示しています。コードで定義されたロジックに基づき、ApiGateway(public.domo.com)からフィルターされたカードが返されます。この図は、embed.jsファイルの100~113行目に対応しています。
最後の図では、express.jsファイルの20~26行目に対応する「カード情報のリクエスト」セクションを示しています。ここでは、プログラムによるフィルターの中核を成す基準が定義されます。
コードの開発者は、基盤となるDataSetのスキーマを理解することが不可欠です。理解していない場合、クエリは失敗に終わり、APIが「Bad request」を返す可能性があります。これは、サーバー側フィルターのセキュリティを確保するためです。