Docs Menu
Docs Home
/
Atlas Charts
/ / /

Atlas App Services で認証されたチャートの埋め込み

項目一覧

  • 前提条件
  • 手順
  • チャートの認証済み埋め込みの有効化
  • カスタム Atlas App Services プロバイダーを使用するための Charts の設定
  • チャートを表示するためのウェブアプリの作成
  • Node.js アプリのカスタマイズ

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 が必要です。

1

ダッシュボード ページから、埋め込みるグラフを含むダッシュボードを選択します。

2

ダッシュボードから次をクリックします:埋め込み情報にアクセスするには、チャートの右上にある を参照してください。 ドロップダウン メニューから Embed chartを選択します。

注意

埋め込みが有効になっているダッシュボード上のグラフは、 Embed Chartオプションが自動的に有効になります。 したがって、埋め込みが有効になっている ダッシュボード内のグラフに対してEmbed chartオプションを選択することはできません。

3

このチャートが使用するデータソースで外部共有をすでに有効にしている場合は、この手順をスキップします。 データソースへの埋め込みをまだ有効にしていない場合は、これで有効にできます。 Configure external sharingリンクをクリックします。

4
埋め込み認証チャート
クリックして拡大します
5
6

チャートを表示する各ユーザーに対して MongoDB フィルター ドキュメントを挿入する関数を指定できます。 これは、ユーザー固有のグラフをレンダリングするのに便利です。

次のフィルター関数は、ドキュメントの ownerIdフィールドが埋め込み認証プロバイダのトークンのsubフィールドの値と一致するデータのみをレンダリングします。

function getFilter(context) {
return { ownerId: context.token.sub };
}

Tip

以下も参照してください。

ユーザーごとにフィルターを挿入する方法の詳細については、「ユーザー固有のフィルターを挿入 」を参照してください。

7

チャート ビューアがデータをフィルタリングできるフィールドを指定します。 デフォルトでは、フィールドは指定されていません。つまり、少なくとも 1 つのフィールドを明示的に許可するまでチャートをフィルタリングできません。

Tip

以下も参照してください。

フィルタ可能なフィールドの詳細については、「 フィルタ可能なフィールドの指定 」を参照してください。

8

これらの値をアプリケーション コードで 埋め込み認証プロバイダの属性 とともに使用して、チャートを埋め込みます。

1

Atlas Charts がまだ表示されていない場合は、Atlas UI の [ Charts ] タブをクリックします。

Atlas がプロジェクトにリンクされた Charts のインスタンスを起動します。

2

サイドバーの [ Development ] 見出しの下の [ Embeddingをクリックします。

埋め込みページが表示されます。

3

注意

Authentication Settingsページにアクセスするには、プロジェクト オーナーである必要があります。 管理者以外のユーザーでも埋め込みチャートは引き続き使用できますが、プロジェクト オーナーからキーを取得する必要があります。

[Authentication Settings] タブをクリックします。

[ Authentication Settings(認証設定) ] タブが表示されます。

4
  1. Authentication providersセクションから [ Add ] をクリックします。

  2. Nameフィールドに、プロバイダーのわかりやすい名前を入力します。

  3. Providerリストから、 Atlas App Servicesを選択します。

  4. Atlas Projectリストから、アプリ サービスを含む Cloud プロジェクトを選択します。

  5. App IDリストから、認証に使用するアプリサービスを選択します。

5

埋め込みチャートにアクセスするためのユーザーを認証するだけでなく、 アプリサービス ルールを使用して詳細なデータ アクセス制御を実行できます。 ルールの適用を有効にする場合は、トグル スイッチを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 ルールに基づいてデータアクセスを制限する必要がない場合は、このオプションをオフのままにする必要があります。

6

MongoDB からデータを取得するサービスの名前を入力します。 データ サービスの名前を見つけるには、次の手順に従います。

  1. アプリ サービスに移動します。

  2. サイドバー ナビゲーションで [ Clusters ] をクリックします。

  3. サービス名はApp Service Nameの下に表示されます。

7

チャートを表示するアプリがすでに存在する場合は、埋め込みチャートを追加する 準備ができています。 そうでない場合は、残りの手順に進み、新しいアプリを作成します。

MongoDB は、埋め込み SDK を使用して App Services 認証を使用して埋め込みチャートを表示する方法を示す事前構築済みのサンプルアプリを提供しています。

Githubリポジトリ のクローン Readmeアプリの使用を開始するには、 ファイルの指示に従ってください。アプリはそのまま使用することも、以前に作成したチャートを使用するようにカスタマイズすることもできます。

注意

このサンプルアプリでは、アプリサービスがメール/パスワード認証を使用することを前提としています。 アプリ サービスが別の認証メカニズムを使用する場合、サンプルアプリは追加のカスタマイズが必要になります。

編集する必要があるすべての行は、 ~REPLACE~を含むコメントでマークされます。

1

ファイルindex.jssrcディレクトリにあります。

2

既存のアプリ ID をアプリ ID に置き換えます。アプリ サービス UI の左側に表示されているアプリ ID は、

const client = Stitch.initializeAppClient(
'authentication-sample-eibkj', // Optional: ~REPLACE~ with your App ID
{
3

既存の 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()
4

既存のチャート ID を、表示するチャートの ID に置き換えます。 チャート ID は、埋め込みオプションのモーダル ウィンドウに表示されます。 チャートの埋め込みを有効にする方法の詳細な手順については、「 SDK の埋め込み」を参照してください。

const chart = sdk.createChart({
chartId: "a2e775e6-f267-4c2c-a65d-fbf3fad4a4f2", // Optional: ~REPLACE~ with your Chart ID
});

アプリをカスタマイズしたら、実行可能です。

戻る

Google ログインで認証されたチャートの埋め込み