アプリユーザーの作成
項目一覧
Overview
Atlas App Services は、ユーザーをアプリにログインするためのさまざまな認証プロバイダを提供します。 ほとんどのプロバイダーで、ユーザーがプロバイダーを介して初めて認証するときに、App Services は自動的にユーザー アカウントを作成します。 唯一の例外はメール/パスワード ユーザー認証です。この認証では、ユーザーが認証する前にユーザーを登録して確認する必要があります。
Tip
Appleアカウントの削除要件
Appleは、アカウントを作成したすべてのユーザーに、アカウントを削除するオプションを提供するよう、App Store を通じて配布されるアプリケーションに対して義務付けています。App Store を通じて配布されるアプリは、メールやパスワード認証などユーザーを手動で登録する認証方法を使用する場合でも、Apple でサインインなどのユーザーを自動的に作成する認証方法を使用する場合でも、ユーザー アカウントの削除機能を実装する必要があります。
ID
認証プロバイダーを使用して初めてログインすると、App Services によって、一意の ID ID とユーザーに関する プロバイダー固有のメタデータ を含む ユーザー オブジェクト が作成されます。
既存のアカウントへのリンク
1 つのユーザー オブジェクトに複数の ID を持つことができます。 Realm SDK を使用して、ID を既存のユーザー アカウントにリンクできます。 これにより、ユーザーは 1 つのアカウントで複数のプロバイダーにログインできます。 詳細については、ご希望の SDK の ID のリンクに関するドキュメントを参照してください。
メール/パスワード ユーザーの作成
メール/パスワードのユーザー認証を使用する場合は、まずユーザーを登録する必要があります。これにより、 ユーザー オブジェクトが作成されます。 希望する SDK を使用してクライアント アプリケーションでユーザーを登録することも、メール/パスワード ユーザーを手動で作成することもできます。
ユーザーを登録した後、認証する前にそのユーザーを確認する必要があります。
SDK でのメール/パスワード ユーザーの作成
各 SDK は、メール/パスワード ユーザーを登録できる API を提供しています。 ユーザーを登録した後、認証を行う前にそのユーザーを確認する必要があります。 クライアント アプリケーションでメール/パスワード ユーザーを管理する方法を示すコード例については、Realm SDK のドキュメントを参照してください。
メール/パスワードユーザーの手動作成
新しいメール/パスワードユーザーは、App Services UI、CLI、または管理 API から作成できます。 手動で作成されたユーザーは、構成されたユーザー確認フローをバイパスします。
Tip
ユーザーを手動で作成すると、開発環境のアプリケーションのテストやデバッグに役立ちます。
左側のナビゲーション メニューから [ App Usersを選択します。
Add New Userボタンをクリックします。
新しいユーザーのメールアドレスとパスワードを指定します。
注意
メール/パスワード認証プロバイダーでは、パスワードの長さは 6 文字から 128 文字の間である必要があります。
[Create] をクリックします。
注意
また、アプリケーションがアプリに接続するために使用する API キーを作成することもできます。 API キーは単一のユーザーには関連付けられていませんが、 Usersタブにはそれらが一覧表示されます。 API キーの詳細については、「 API キー認証 」を参照してください。
新しいメール/パスワード ユーザーを作成するには、 appservices users create
を呼び出し、 --type=email
を指定します。 CLI では、アプリ ID と新しいユーザーのメールとパスワードの入力を求められます。
appservices users create --type=email
プログラムを呼び出すときに引数を指定することもできます。
appservices users create --type=email \ --app=<Your App ID> \ --email=<User's Email Address> \ --password=<User's Password>
注意
メール/パスワード認証プロバイダーでは、パスワードの長さは 6 文字から 128 文字の間である必要があります。
新しいメール/パスワード ユーザーを作成するには、次の形式でPOST
リクエストを作成します。 リクエスト本文にユーザー認証情報を指定し、リクエスト URL にグループとアプリ ID を指定する必要があります。
curl --request POST \ --header 'Authorization: Bearer <access_token>' \ --data '{ "email": "<string>", "password": "<string>" }' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users
注意
メール/パスワード認証プロバイダーでは、パスワードの長さは 6 文字から 128 文字の間である必要があります。
ユーザーの確認
新しいメール/パスワード ユーザーは、App Services へのログインを許可される前に、そのメール アドレスを確認する必要があります。 確認の正確な方法はプロバイダーの構成によって異なりますが、通常は ハンドシェイク プロセス が含まれます。 ユーザーとアプリケーションの間で許可されます。メール/パスワード ユーザー確認の詳細については、「メール/パスワード確認 」を参照してください。
場合によっては、ユーザーが確認プロセスを完了できない場合があります。 例:
上限が超えると、App Services のメール確認メールがブロックされる可能性があります。
プロキシまたはウェブ ブロックにより、ユーザーがクライアント アプリケーション経由で
confirmUser
クライアント SDK 関数をアクティブ化できない可能性があります。実装エラーにより、特定のユースケースでクライアント アプリケーションのユーザー確認ページが失敗する可能性があります。
このような場合を回避するには、次のように App Services UI または Admin API を使用してユーザーを手動で確認します。
UI で保留中のメール/パスワード ユーザーを確認するには:
左側のナビゲーション メニューからApp Usersを選択します。
[ Usersタブで、 PENDINGボタンを選択します。
リスト内のユーザーを検索し、省略記号(
...
)をクリックします。表示されるコンテキスト メニューからConfirm Userオプションを選択します。
操作が成功すると、App Services 管理コンソールの上部のバナーに確認メッセージが表示されます。 ユーザーのUser StatusがPending ConfirmationからPending User Loginに変更されます。
手動確認されたユーザーは、アプリケーションに初めてログインするまでPENDINGユーザー リストに引き続き表示されます。この時点で App Services はそのユーザーを確認済みユーザーのリストに移動し、 User Statusをconfirmed
に移行します。 。
管理 API を使用して保留中のメール/パスワード ユーザーを確認するには、次の形式でPOST
リクエストを作成します。 グループ ID、アプリ ID、メールアドレスを指定する必要があります。
curl --request POST \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/user_registrations/by_email/<email>/confirm
ユーザー確認ワークフローを再実行する
いくつかの状況により、メール/パスワードのユーザー確認ワークフローが不完全になる可能性があります。
メールはスパーム フィルターによってキャッチされ、バグにより配信されない、または潜在的な App Services ユーザーによって誤って削除された場合にスローされます。
バグまたは無視のため、 カスタム確認関数は未確認のユーザーと通信できません。
未確認のユーザーがログイン トークンを受信してから 30 分以内に確認リンクにアクセスするのを忘れ、トークンは期限切れになりました。
この状況に追い込まれたユーザーは、未確認の状態のままになっています。 既存のアカウントにはメールが登録されているため、ユーザーは同じメールアドレスの新しいアカウントを作成できません。 また、確認されていないアカウントではログインできません。
App Services の組み込みメール確認サービスを使用するアプリケーションは、 resendConfirmationEmail
クライアント SDK メソッドを使用して、新しい確認リンクを含む新しいメールをユーザーに送信し、ユーザーがアカウントを確認してログインできるようにします。 このメソッドを呼び出すと、 send a
confirmation email
以外の確認フローを使用するアプリケーションでエラーが発生します。
カスタム確認関数を再実行するための具体的な方法はありません。 代わりに、App Services には、現在のメール/パスワード ユーザー確認ワークフローがどのように構成されているかにかかわらず、 の再実行をtriggerするメソッドがあります。 App Services UI またはApp Services Admin APIを使用して、現在選択されているユーザー確認フローを手動で再実行できます。
UI でユーザーの確認ワークフローを再実行するには、次のようにします。
左側のナビゲーション メニューからApp Usersを選択します。
[ Usersタブで、 PENDINGボタンを選択します。
リスト内のユーザーを検索し、省略記号(
...
)をクリックします。表示されるコンテキスト メニューからRun user confirmationオプションを選択します。
表示されるダイアログボックスでRun User Confirmation ] ボタンを選択します。
操作が成功すると、App Services 管理コンソールの上部のバナーに確認メッセージが表示されます。 ユーザーのUser StatusがPending ConfirmationからPending User Loginに変更されます。 ユーザーがログインすると、自動的に アクティブ ユーザー のリストに移動されます。
再実行が失敗した場合、またはユーザーのトークンが再度期限切れになった場合は、必要に応じて確認機能を再実行できます。
管理 API を使用してユーザーの確認ワークフローを再実行するには、次の形式でPOST
リクエストを作成します。 グループ ID、アプリ ID、メールアドレスを指定する必要があります。
curl --request POST \ --header 'Authorization: Bearer <access_token>' \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/user_registrations/by_email/<email>/run_confirm
概要
メール/パスワード認証を除くすべてのプロバイダーで、App Services はユーザーが初めて認証するときにユーザー オブジェクトを自動的に作成します。
Realm SDK を使用して ID をリンクすることで、1 つのアカウントで複数のプロバイダーにログインできます。
メール/パスワード認証プロバイダーは、ユーザーがアプリに初めて接続するときにアカウントを作成することを要求します。
メール/パスワード ユーザーは、App Services UI または Admin API を通じて手動で確認する必要があります。
不完全なメール/パスワード確認ワークフローに遭遇したユーザーは、App Services UI または管理 API を通じて確認を再実行する必要があります。