Atlas App Services で認証されたチャートの埋め込み
項目一覧
Atlas App Services は、サーバーインフラストラクチャをセットアップすることなく、開発者がアプリケーションを迅速に構築できるサーバーレス プラットフォームです。App Services には、Google OAuth 、 Facebookログイン 、メール/パスワード など、いくつかの認証オプションが用意されています。アプリサービスの認証メカニズムを使用して、 埋め込みチャートのデータアクセスを制御できます。
このチュートリアルでは、次の方法を説明します。
チャートの認証済み埋め込みを有効にします。
埋め込み SDK を使用して、カスタムAtlas App Servicesプロバイダーによって認証されたチャートを埋め込みます。
アプリ サービスを使用して、埋め込みチャートのデータを制御します。
注意
このチュートリアルでは、認証を伴うアプリ サービスの作成については説明しません。 アプリ作成チュートリアルについては、 Atlas App Services のドキュメントを参照してください。
前提条件
リンクされた Charts インスタンスの埋め込み認証プロバイダを設定するには、Atlasプロジェクト オーナーである必要があります。
アプリのバッキング データベースをデータソースとして使用するチャートが必要です。 チャートの作成の詳細については、「 Chartsの構築 」を参照してください。
手順
チャートの認証済み埋め込みの有効化
認証済み埋め込みを有効にして、Charts ベース URL とチャート ID を生成します。 ウェブページにチャートを表示するには、Charts base URL とチャート ID が必要です。
カスタム Atlas App Services プロバイダーを使用するための Charts の設定
Authentication SettingsビューにGoします。
注意
Authentication Settingsページにアクセスするには、プロジェクト オーナーである必要があります。 管理者以外のユーザーでも埋め込みチャートは引き続き使用できますが、プロジェクト オーナーからキーを取得する必要があります。
[Authentication Settings] タブをクリックします。
[ Authentication Settings(認証設定) ] タブが表示されます。
データアクセスに Atlas App Services ルールを使用するための切り替えスイッチを設定します。
埋め込みチャートにアクセスするためのユーザーを認証するだけでなく、 アプリサービス ルールを使用して詳細なデータ アクセス制御を実行できます。 ルールの適用を有効にする場合は、トグル スイッチをOnに設定します。
このオプションを有効にすると、コレクションに定義された App Services ルールは、チャート データを検索するときに Charts によって監視されます。 You can use this feature to restrict access to the data shown on your chart, including showing different subsets of data to different users, depending on their role.
注意
このオプションでは、このチャートのデータソースが App Services と同じ MongoDB database とコレクションを使用することを前提としています。
このオプションを使用するとパフォーマンスに影響を与える可能性があるため、App Services ルールに基づいてデータアクセスを制限する必要がない場合は、このオプションをオフのままにする必要があります。
チャートを表示するためのウェブアプリの作成
チャートを表示するアプリがすでに存在する場合は、埋め込みチャートを追加する 準備ができています。 そうでない場合は、残りの手順に進み、新しいアプリを作成します。
MongoDB は、埋め込み SDK を使用して App Services 認証を使用して埋め込みチャートを表示する方法を示す事前構築済みのサンプルアプリを提供しています。
Githubリポジトリ のクローン Readme
アプリの使用を開始するには、 ファイルの指示に従ってください。アプリはそのまま使用することも、以前に作成したチャートを使用するようにカスタマイズすることもできます。
注意
このサンプルアプリでは、アプリサービスがメール/パスワード認証を使用することを前提としています。 アプリ サービスが別の認証メカニズムを使用する場合、サンプルアプリは追加のカスタマイズが必要になります。
Node.js アプリのカスタマイズ
編集する必要があるすべての行は、 ~REPLACE~
を含むコメントでマークされます。
テキスト エディターでファイルindex.js
を開きます。
ファイルindex.js
はsrc
ディレクトリにあります。
Charts ベース URL を入力します
既存の Charts base URL を、表示するチャートのベース URL に置き換えます。 Charts ベース URL は埋め込みオプション モーダル ウィンドウに表示されます。 チャートの埋め込みを有効にする方法の詳細な手順については、「 SDK の埋め込み」を参照してください。
const sdk = new ChartsEmbedSDK({ baseUrl: "https://charts-dev.mongodb.com/charts-test2-pebbp", // Optional: ~REPLACE~ with your Charts URL getUserToken: () => getRealmUserToken(client), });
getRealmUserToken()
上記のコードJSON web token Atlas App Servicesスニペットの 関数に注目してください。この関数は、既存の 認証セッションから を返します。サンプルアプリの 2 行目のimport
ステートメントにあるように、 getRealmUserToken()
は埋め込み SDK からインポートする必要があります。
import ChartsEmbedSDK, { getRealmUserToken } from "@mongodb-js/charts-embed-dom";
次のコード スニペットに示すように、埋め込み SDK とインラインJavaScriptを HTML ページに含めることもできます。
<script src="https://s3.amazonaws.com/stitch-sdks/js/bundles/4.6.0/stitch.js"></script> <script src="https://unpkg.com/@mongodb-js/charts-embed-dom"></script>
このシナリオでgetRealmUserToken()
関数を使用するには、SDK から関数をインポートします。
ChartsEmbedSDK.getRealmUserToken()
チャート ID を入力します
既存のチャート ID を、表示するチャートの ID に置き換えます。 チャート ID は、埋め込みオプションのモーダル ウィンドウに表示されます。 チャートの埋め込みを有効にする方法の詳細な手順については、「 SDK の埋め込み」を参照してください。
const chart = sdk.createChart({ chartId: "a2e775e6-f267-4c2c-a65d-fbf3fad4a4f2", // Optional: ~REPLACE~ with your Chart ID });
アプリをカスタマイズしたら、実行可能です。