以前のバンドル サービス用の Users API

リージョン ID

REGION_ID は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r が App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。

詳しくは、リージョン ID をご覧ください。

Users API をアプリケーションで使用すると、次のことができます。

  • 現在のユーザーがログイン済みかどうかを検出する。
  • 適切なログインページにユーザーをリダイレクトする。
  • Google アカウントを持っていないアプリケーション ユーザーに、アカウントを作成するように求める。

ユーザーがアプリケーションにログインしている場合、アプリからユーザーのメールアドレスにアクセスできます。アプリは現在のユーザーが管理者(「管理ユーザー」とも呼ばれます)かどうかを判断することもできるので、アプリの管理者専用ページを簡単に実装できます。

ユーザー認証

以下の例では、アプリケーションにログインしたユーザーに対し、パーソナライズされたメッセージとログアウト用のリンクを表示します。ユーザーがログインしていない場合は、Google アカウントのログインページへのリンクを表示します。

app.yaml を使用した強制ログインと管理者アクセス

ユーザーがアクセスするためにログインが必要なページがある場合は、app.yaml ファイルでこれを強制できます。

ハンドラ構成 で、ユーザーをアプリケーションの登録管理者に制限することもできます。つまり、ユーザーには閲覧者、編集者、オーナーまたは App Engine 管理者のロールが付与されている必要があります。この機能を使用すれば、サイト内に管理者専用のセクションを容易に実装できます。別の認可メカニズムを導入する必要はありません。

URL に対する認証を構成する方法については、app.yaml リファレンスのログインまたは管理者ステータスの要求方法に関する説明をご覧ください。

認証のオプション

アプリでユーザーの認証を行うには、次のオプションのいずれかを使用します。

  • Google アカウント
  • Google Workspace ドメインのアカウント

認証のオプションの選択

アプリを作成した後で、どの認証オプションを使用するかを選択できます。デフォルトでは、Google アカウントがアプリでの認証に使用されます。Google Workspace のドメインなど、別のオプションを選択するには、Google Cloud コンソールでプロジェクトの [設定] ページに移動して、[編集] をクリックします。[Google 認証] プルダウン メニューで認証のタイプを選択して [保存] をクリックします。

ログインとログアウト

選択した認証オプションを使用してユーザーがアプリにログイン済みかどうかをアプリで検出できます。ユーザーがログインしていない場合は、Google アカウントでのログインまたは新しい Google アカウント作成のページに移動させることができます。ログインページの URL をアプリで取得するには、Users API のメソッドを呼び出します。認証を必要とするページをユーザーが訪問した際、アプリでこの URL をリンクとして表示するか、URL への HTTP リダイレクトを発行します。

Google アカウントまたは Google Workspace を認証に使用するアプリの場合、ユーザーがログインするときに、そのアプリケーションの名前がログインページに表示されます。表示される名前は、アプリケーションの登録時に指定したアプリケーション名です。この名前は、Google Cloud コンソールの [認証情報] ページの [アプリケーション名] フィールドで変更できます。

ログインまたは Google アカウントの作成が完了すると、ユーザーは再びアプリケーションにリダイレクトされます。アプリは、ログイン URL を生成するメソッドにリダイレクトの URL を渡します。

Users API には、アプリからログアウトするための URL を生成するメソッドがあります。このログアウト URL は、アプリに対するユーザーの認証を解除してから、元のアプリの URL にリダイレクトしますが、特に何かを表示することはありません。

ユーザーがアプリにログインした状態になるのは、アプリの画面の指示に従ってユーザーが自分のアカウントのメールアドレスとパスワードを入力した場合のみです。これは、ユーザーが自分の Google アカウントを使用して別のアプリにログイン済みかどうかとは無関係です。

アカウント情報にアクセスする

ユーザーがアプリにログインした状態である間は、ユーザーがアプリに対してリクエストを行うたびにアプリからアカウントのメールアドレスにアクセスできます。アプリからユーザー ID にアクセスすることもできます。ユーザー ID はユーザーを一意に識別するものであり、これはユーザーがアカウントのメールアドレスを変更した場合であっても同様です。

アプリは現在のユーザーが管理者かどうかを特定することもできます。管理ユーザーとは、閲覧者、編集者、オーナー、App Engine アプリ管理者のロールが付与されているユーザーです。この機能を利用すると、アプリの管理用の機能を開発できます。他のユーザーは認証不要であってもかまいません。Go、Java、PHP、Python の API を利用して、URL を「管理者専用」に簡単に構成できます。

Google アカウントと開発用サーバー

開発用サーバーでは、Google アカウントのシステムをシミュレートするために架空のログイン画面が使用されます。アプリケーションが Users API を呼び出してログイン画面の URL を取得するときに、API からは特別な開発用サーバー URL が返されます。この URL ではメールアドレスの入力が要求されますが、パスワードは要求されません。この画面では任意のメールアドレスを入力でき、アプリはユーザーがそのアドレスのアカウントでログインしたものとして動作します。

この架空のログイン画面には、架空アカウントが管理者かどうかを指定するためのチェックボックスもあります。管理者のアカウントには、閲覧者、編集者、オーナー、App Engine アプリ管理者のロールが付与されています。このチェックボックスをオンにすると、アプリはユーザーが管理者アカウントでログインしたものとして動作します。

同様に、Users API からは架空のログインを取り消すためのログアウト URL も返されます。