Docs Menu
Docs Home
/ /
Atlas App Services
/

ユーザー メタデータの読み取り

項目一覧

  • Overview
  • スキーマ
  • ユーザーの検索
  • フィルターユーザー
  • ユーザー データの表示
  • ユーザーのデバイスの表示
  • ユーザーのプロバイダー データの表示
  • ユーザーのアクティビティ ログの表示
  • 概要

Atlas App Services は、一意の ID とユーザーを説明する追加のメタデータを含むユーザー オブジェクトを使用して、内部的に各アプリケーション ユーザーを表します。 ユーザー オブジェクトにはアクセスできます。

ユーザー オブジェクトの形式は次のとおりです。

{
"id": "<Unique User ID>",
"type": "<User Type>",
"data": {
"<Metadata Field>": <Value>,
...
},
"custom_data": {
"<Custom Data Field>": <Value>,
...
},
"identities": [
{
"id": <Unique Identity ID>,
"provider_type": "<Authentication Provider>",
"data": {
"<Metadata Field>": <Value>,
...
}
}
]
}
フィールド
タイプ
説明
id
string
ユーザーを一意に識別するObjectIdの string 表現。
type
string

ユーザーのタイプ。 次のタイプが利用可能です。

タイプ
説明
" Normal"
ユーザーは、 API キー プロバイダー以外の認証プロバイダーを介してログインする アプリケーション ユーザー です。
"server"
"system"
ユーザーは 、すべてのルールをバイパスするシステムユーザーです。
data
ドキュメント

ユーザーを説明するメタデータを含むドキュメント。 このフィールドは、ユーザーに関連付けられているすべてのidentitiesのデータを組み合わせたものであるため、正確なフィールド名と値は、ユーザーが認証された認証プロバイダによって異なります。

注意

システム関数にはユーザー データはありません

システム関数では、 user.dataオブジェクトは空です。 関数がシステムユーザーとして実行されているかどうかをテストするには、 context.runningAsSystem()を使用します。

custom_data
ドキュメント

アプリケーションのカスタム ユーザー データ コレクションからのドキュメントで、ユーザーの ID を指定します。 カスタム ユーザー データ コレクションを使用して、アプリケーションのユーザーに関する任意のデータを保存できます。 nameフィールドを設定すると、App Services はusernameメタデータ フィールドにnameの戻り値を入力します。 Atlas App Services は、ユーザーがログインする際などアクセス トークンを更新するたびに、データの新しいコピーを自動的に取得します。 基礎となるデータは通常の MongoDB ドキュメントであるため、 MongoDB Atlas サービスを通じて標準の CRUD 操作を使用して、ユーザーのカスタム データの定義および変更を行うことができます。

注意

大規模なカスタム ユーザー データの保存を避ける

カスタム ユーザー データは、MongoDB ドキュメントの最大サイズである16MBに制限されています。 この制限に達しないようにするには、ユーザーの希望言語やアトミックイメージの URL など、小規模で比較的静的なユーザー データを各カスタム ユーザー データ ドキュメントに保存することを検討してください。 大規模なデータ、境界のないデータ、または頻繁に更新されるデータの場合は、カスタム ユーザー ドキュメントにデータへの参照のみを保存するか、カスタム ユーザー ドキュメントではなくユーザーの ID を参照してデータを保存することを検討してください。

identities
配列

ユーザーに関連付けられた認証プロバイダ ID のリスト。 ユーザーが初めて特定のプロバイダーにログインすると、App Services はそのユーザーを、一意な識別子とプロバイダーからのユーザーに関する追加メタデータを含む ID オブジェクトに関連付けます。 後続のログインでは、App Services は既存の ID データを更新しますが、新しい ID は作成しません。 ID オブジェクトの形式は次のとおりです。

{
"id": "<Unique ID>",
"provider_type": "<Provider Name>",
"data": {
"<Metadata Field>": <Value>,
...
}
}
フィールド名
説明
id
この ID を一意に識別するプロバイダーが生成したstring
provider_type
この ID に関連付けられている認証プロバイダのタイプ。
data
ユーザーを説明する認証プロバイダーからの追加メタデータ。 具体的なフィールド名と値は、ユーザーがログインした認証プロバイダによって異なります。 ユーザー ID データのプロバイダー固有の内訳については、「ユーザー メタデータ 」を参照してください。

注意

一般に、App Services は、特定のユーザーが初めて認証するときに、そのユーザーのユーザー オブジェクトを作成します。 App Services UI を使用してテストのメール/パスワードユーザーを作成すると、App Services はそのユーザーのユーザー オブジェクトをすぐに作成します。

1 人以上のユーザーに関する情報を検索するには、左側のナビゲーション メニューで App Usersをクリックします。 ページには Atlas App Services アプリに関連付けられているユーザーのリストがあるUsersタブが開きます。

すべてのユーザーのフィルタリング可能なリストが表示される UI の [ユーザー] 画面
クリックして拡大します

Tip

検索するユーザーの ID がすでにわかっている場合は、 Usersテーブル検索バーでそのユーザーの ID を検索できます。

1 人以上のユーザーに関する情報を検索するには、 appservices users listを呼び出します。 CLI では、アプリ ID の入力を求められ、選択するアプリのユーザーが一覧表示されます。

appservices users list

プログラムを呼び出すときに引数を指定することもできます。

appservices users list --app=<Your App ID>

1 人以上のユーザーに関する情報を検索するには、次の形式でGETリクエストを作成します。 グループ ID とアプリ ID を指定する必要があります。

curl --request GET \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users

検索するユーザーの ID がすでにわかっている場合は、リクエスト URL にその ID を追加できます。

curl --request GET \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users/<userId>

Tip

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

フィルター条件を満たすユーザーのサブセットにユーザーのリストを制限するフィルターを指定できます。

フィルターを定義するには、 Usersテーブルの上部にあるfilter barを使用します。 次の方法でフィルタリングできます。

  • Provider type

    • 匿名

    • メール/パスワード

    • API キー

    • Facebook

    • Google

    • Apple

    • カスタム JWT

    • カスタム関数

  • Status

    • 確認済み

    • 支払い待ち

  • State

    • enabled

    • disabled

次のフラグと引数を使用してユーザー操作をフィルタリングできます。

  • --pending: 含めると保留中のユーザーのみが一覧表示されます。 それ以外の場合、 には確認済みのユーザーのみがリストされます。

  • --state: 指定された状態のユーザーのみを一覧表示

    • "enabled"

    • "disabled"

  • --provider:

    • "anon-user"

    • "local-userpass"

    • "api-key"

    • "oauth2-facebook"

    • "oauth2-google"

    • "oauth2-apple"

    • "custom-token"

    • "custom-function"

次のコマンドは、出力を保留中の(未確認)のメール/パスワード ユーザーのみに制限します。

appservices users list --pending --provider="local-userpass"

次のコマンドは、出力を無効なユーザーのみに制限します。

appservices users list --state="disabled"

次のクエリ パラメーターを使用してユーザー操作をフィルタリングできます。

Parameter
タイプ
説明
after
string
前回のページ分割リクエストによって返された最後のユーザーの id
sort
string
結果を並べ替えるフィールド名。有効な値はデフォルトの _id のみです。
desc
ブール値
trueの場合は、降順で並べ替えられた結果を返します。 指定されない場合、または false に設定されている場合、結果は昇順で返されます。

次の リクエストでは、 _idの降順でユーザーが返されます。

curl --request GET \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users?desc=true

また、保留中の(未確認)のメール/パスワード ユーザーのみに結果を制限することもできます。 次の形式でGETリクエストを作成します。

curl --request GET \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/user_registrations/pending_users

Tip

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

ユーザーがアプリケーションに接続すると、Atlas App Services は次のような情報をログに記録します。

アプリで使用したデバイスを列挙する特定のユーザーの詳細ビュー
クリックして拡大します

ログに記録される情報には、以下のものが含まれます。

  • デバイス プラットフォームは、 HTTPクライアント(「cloud」、「firefox」、「fhan名js」など)またはモバイル OS(「 iOS 」、「 Android 」など)のいずれかになります。

  • プラットフォームのバージョン。

  • デバイス上のアプリのバージョン。

  • 一意のデバイス ID。

この情報を表示するには、ユーザーのリストから次の情報を表示します。

  1. 表示するデバイスを持つユーザーを見つけます。

  2. ...をクリックしてオプション メニューを開き、 View Devicesを選択します。

ユーザーがアプリケーションに接続し、有効にした認証プロバイダのいずれかを使用して認証するたびに、App Services はプロバイダー データをログに記録します。

認証プロバイダからそのユーザーに関するメタデータを一覧表示する、特定のユーザーの詳細ビュー
クリックして拡大します

この情報を表示するには、ユーザーのリストから次の情報を表示します。

  1. プロバイダー データを表示するユーザーを見つけます。

  2. ...をクリックしてオプション メニューを開き、 View Provider Dataを選択します。

App Services は、実行された関数呼び出しを含め、各 App ユーザーによって行われたすべてのリクエストを記録します。 また、関数がconsole.logconsole.warn 、またはconsole.errorを使用してログに書き込む場合、これらのエントリは関数のログ出力に含まれます。

アプリとのインタラクションのログを表示する特定のユーザーの詳細ビュー
クリックして拡大します

この情報を表示するには、ユーザーのリストから次の情報を表示します。

  1. アクティビティ データを表示するユーザーを見つけます。

  2. [ View Activityをクリックします。 これにより、その特定のユーザーが行ったリクエストのログにリダイレクトされます。 エントリを展開すると、そのリクエストの詳細が表示されます。

  • ユーザー オブジェクトには、アプリ ロジックで使用できるユーザーに関する関連情報が含まれています。

  • ユーザー オブジェクトに含まれる正確な情報は、使用される認証プロバイダによって異なります。

  • App Services UI のUsersページでユーザーを検索できます。

  • App Services は、ユーザーの接続済みデバイス、プロバイダー データ、アクティビティ ログなどの情報を記録します。

戻る

ユーザー メタデータの定義