ユーザー アカウントの管理
Overview
App Services UI、App Services CLI、管理 API、Realm SDK のいずれかを使用して、アプリケーションのユーザー アカウントを管理できます。
ユーザーを削除する
メタデータや認証プロバイダの ID を含め、アプリケーションからユーザーを完全に削除できます。 ユーザーを削除すると、そのユーザーに関連付けられているセッションも直ちに終了します。
Tip
ユーザーのアカウントを削除したくない場合は、 がユーザーのアカウントを無効にして、アクセスを一時的に一時停止できます。
ユーザーの手動削除
App Services UI、CLI、または管理 API を使用して、ユーザーアカウントを手動で削除できます。
左側のナビゲーション メニューから [ App Usersを選択します。
削除するユーザーの現在の状態に応じて、 ConfirmedまたはPendingのいずれかを選択します。
[ Usersタブで、リスト内のユーザーを検索し、省略記号(
...
)をクリックします。[ Delete Userをクリックして選択を確定します。
ユーザーを削除するには、 appservices users delete
を呼び出します。 CLI では、アプリ ID の入力を求められ、選択するアプリのユーザーが一覧表示されます。
appservices users delete
プログラムを呼び出すときに引数を指定することもできます。
appservices users delete \ --app=<Your App ID> \ --user=<User ID>
Tip
id
値をカンマ区切りのリストとして指定することで、1 つのコマンドで複数のユーザーを削除できます。
appservices users delete --user=6099694d5debcbcc873ff413,60996996b78eca4a8d615d3a
ユーザーを削除するには、次の形式でDELETE
リクエストを作成します。 グループ、アプリ、ユーザー ID を指定する必要があります。
curl --request DELETE \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users/<userId>
保留中のメール/パスワード ユーザーを削除する場合は、次の形式でリクエストを作成します。
curl --request DELETE \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/user_registrations/by_email/<email>
注意
App Services は、リンクされた MongoDB Atlas クラスター内の削除されたユーザーに関連付けられたデータを自動的に削除しません。 たとえば、アプリケーションでユーザーがowner_id
フィールドに ID を含めてユーザーにリンクしたデータを作成できる場合、ユーザー オブジェクトを削除しても、ユーザーが作成したリンク データは削除されません。 削除されたユーザーのすべての追跡を排除するには、このようなドキュメントを手動で削除または変更する必要があります。
SDK でのユーザーの削除
Realm SDK を使用してユーザーを削除するときに、クライアント アプリケーションから自分のアカウントを削除するオプションをユーザーに付与できます。
カスタム関数を持つユーザーの削除
ユーザーを削除するカスタム関数を記述できます。 SDK がまだ削除 API をサポートしていない場合は、これを実行することをお勧めします。
Application Authenticationを使用する以下の例のような関数を作成します。 関数が正常に認証されない場合や、呼び出し元のユーザーを削除できない場合のエラー処理を組み込む必要がある場合があります。
このサンプル関数では、 adminApiPublicKey と adminApiPrivateKey の値とシークレットを作成しました。 次に、プロジェクト ID とアプリケーション IDをapiUrl
に追加します。
この関数は、 SDK から呼び出すことができます。 以下のサンプル関数は引数をとらず、関数を呼び出すユーザーを削除します。
Tip
アプリがメール/パスワード認証を使用する場合は、2 つ目のエンドポイントに関係する保留中のユーザーを削除することを検討してください。
const apiUrl = "https://services.cloud.mongodb.com/api/admin/v3.0/groups/{insert-your-project-id}/apps/{insert-your-app-id}"; exports = async function(){ // This function deletes the user who calls it. It gets this user's ID // from the user in the function context. This is safer than accepting // a passed-in user ID, as the user can never delete any other user's account. const callersUserId = context.user.id async function adminLogIn() { const username = context.values.get("adminApiPublicKey"); const apiKey = context.values.get("adminApiPrivateKey"); const response = await context.http.post({ url: "https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login", body: {username, apiKey}, encodeBodyAsJSON: true, }); const body = EJSON.parse(response.body.text()); return body.access_token; } const token = await adminLogIn(); async function deleteUser(_id) { await context.http.delete({ url: `${apiUrl}/users/${_id}`, headers: {"Authorization": [`Bearer ${token}`]} }); return _id; } return deleteUser(callersUserId); };
ユーザーを無効にする
ユーザーを一時的に無効にすると、ユーザーはログインできなくなり、ユーザーの既存のアクセス トークンとリフレッシュ トークンが無効になります。 無効にされたユーザーを有効にして、再度ログインできるようにすることができます。
左側のナビゲーション メニューからApp Usersを選択します。
無効にするユーザーの現在の状態に応じて、 ConfirmedまたはPendingのいずれかを選択します。
[ Usersタブで、リスト内のユーザーを検索し、省略記号(
...
)をクリックします。[ Disable Userをクリックして選択を確定します。
ユーザーを無効にするには、 appservices users disable
を呼び出します。 CLI では、アプリ ID の入力を求められ、選択するアプリのユーザーが一覧表示されます。
appservices users disable
プログラムを呼び出すときに引数を指定することもできます。
appservices users disable \ --app=<Your App ID> \ --user=<User ID>
Tip
これらのユーザーのid
値をカンマ区切りのリストとして指定することで、1 つのコマンドで複数のユーザーを無効にできます。
appservices users disable --user=6099694d5debcbcc873ff413,60996996b78eca4a8d615d3a
ユーザーを無効にするには、次の形式でPUT
リクエストを作成します。 グループ、アプリ、ユーザー ID を指定する必要があります。
curl --request PUT \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users/<userId>/disable
ユーザーを有効にする
無効にされたユーザーを有効にして、再度ログインできるようにすることができます。
左側のナビゲーション メニューからApp Usersを選択します。
有効にするユーザーの現在の状態に応じて、 ConfirmedまたはPendingのいずれかを選択します。
[ Usersタブで、リスト内のユーザーを検索し、省略記号(
...
)をクリックします。[ Enable Userをクリックして選択を確定します。
ユーザーを有効にするには、 appservices users enable
を呼び出します。 CLI では、アプリ ID の入力を求められ、選択するアプリのユーザーが一覧表示されます。
appservices users enable
プログラムを呼び出すときに引数を指定することもできます。
appservices users enable \ --app=<Your App ID> \ --user=<User ID>
Tip
これらのユーザーのid
値をカンマ区切りのリストとして指定することで、1 つの コマンドで複数のユーザーを有効にできます。
appservices users enable --user=6099694d5debcbcc873ff413,60996996b78eca4a8d615d3a
ユーザーを有効にするには、次の形式でPUT
リクエストを作成します。 グループ、アプリ、ユーザー ID を指定する必要があります。
curl --request PUT \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users/<userId>/enable