Google 認証
項目一覧
Overview
Google 認証プロバイダーは、ユーザーが Google ログイン を通じて既存の Google アカウントでログインすることを可能にします 。ユーザーがログインすると、Google は Atlas App Services に OAuth を使用して Atlas App Services を提供します。 20アクセス トークン ユーザーのApp Services はトークンを使用してユーザーを識別し、ユーザーに代わって Google API から承認されたデータにアクセスします。
次の図は、OAuth ロジック フローを示しています。
Google API Console でプロジェクトを設定する
Atlas App Services で Google 認証を構成する前に、Google API コンソール内でプロジェクトを設定する必要があります。SDK 固有の手順に従って、Google API コンソール内で Google 認証を設定します。
Google 認証プロバイダーは、認証とユーザー権限を管理するためにGoogle API コンソールのプロジェクト を必要とします。次の手順では、プロジェクトの作成、OAuth 資格情報の生成、プロジェクトに接続するためのプロバイダーの構成について説明します。
Google API Console でプロジェクトを作成する
Google の 公式ガイド に従い新しい GCP プロジェクトを作成します。
OAuth クライアント認証情報の生成
注意
iOS クライアント アプリケーションの場合は、Web OAuth クライアント ID と iOS OAuth クライアント ID の両方を作成する必要があります。前者はApp Servicesによって使用され、後者はアプリ本体によって使用されます。
Atlas App Services の Web アプリケーション クライアント ID を作成する手順については、このセクションの Web タブを参照してください。
プロジェクトに関して、OAuth2 0の設定に関する Google のサポート ガイドに従ってください。
iOS アプリケーションのClient IDを構成するときは、次の値を使用します。
Application Type | iOS |
Name | このClient IDに関連付ける名前。 |
Bundle ID | iOS アプリケーションのバンドル ID。この値は、XCode のアプリのプライマリ ターゲットのGeneralタブで確認できます。 |
Android アプリケーションClient IDを構成するときは、次の値を使用します。
Application Type | Android |
Name | このClient IDに関連付ける名前。 |
Signing-certificate Fingerprint | アプリケーション署名証明書の SHA- 1 フィンガープリント。この値を生成する手順については、「クライアントの認証」を参照してください。 |
Web アプリケーション Client ID を作成し、いくつかのアプリ サービス関連の値を提供する必要があります。
Authorized JavaScript Origins については、次の URL を入力します。
https://services.cloud.mongodb.com
Authorized Redirect URIs については、アプリケーションの配置リージョンに対応する Atlas App Services 認証コールバック URL を入力します。以下の表は、各リージョンのコールバック URL の一覧です。
リージョン | App Services 認証コールバック URL | |
---|---|---|
Global |
| |
Virginia ( us-east-1 ) |
| |
Oregon ( us-west-2 ) |
| |
Ireland ( eu-west-1 ) |
| |
Frankfurt ( eu-central-1 ) |
| |
Mumbai ( ap-south-1 ) |
| |
Singapore ( ap-southeast-1 ) |
| |
Sydney ( ap-southeast-2 ) |
|
Google 認証プロバイダの設定
GCP プロジェクトを App Services に接続するには、前の手順で生成した OAuth 2.0 Client ID 、およびClient Secretを認証プロバイダの構成に追加します。
注意
必ず Web アプリケーションの認証情報をプロバイダー設定に追加してください。iOS の認証情報を追加すると、Google 認証が失敗します。
App Services での構成
Authentication ページから Google を選択すると、App Services UI から Google 認証プロバイダを有効にして設定できます。
App Services CLI を使用して Google 認証プロバイダを有効化・設定するには、/auth/providers.json
で構成オブジェクトを定義します。
Google プロバイダーの構成は次の形式になります。
{ "oauth2-google": { "name": "oauth2-google", "type": "oauth2-google", "disabled": <boolean>, "config": { "clientId": <string>, "openId": <boolean> }, "secret_config": { "clientSecret": <string> }, "metadata_fields": [<document>, ...], "redirect_uris": [<string>, ...], "domain_restrictions": [<string>, ...] } }
Google 認証プロバイダには次の設定オプションがあります。
フィールド | 説明 | |
---|---|---|
Client ID config.clientId | 必須。Google API Console でプロジェクトに OAuth 2.0 Client ID を指定します。 GCP プロジェクトの OAuth 認証情報の設定については、「Google API コンソール内でのプロジェクト設定」を参照してください。 | |
Client Secret secret_config.clientSecret | 必須。Google API コンソールからプロジェクトのOAuth 2.0 Client Secretを保存するSecretの名前。 GCP プロジェクトの OAuth 認証情報の設定については、「Google API コンソール内でのプロジェクト設定」を参照してください。 | |
Metadata Fields metadata_fields | 任意。アプリケーションが Google Identity API に要求する認証済みユーザーを説明するフィールドのリスト。 すべてのメタデータ フィールドはデフォルトでは省略されており、フィールドごとに必須になる場合があります。ユーザーは、各必須フィールドにアクセスする権限をアプリに明示的に付与する必要があります。メタデータ フィールドが必須で、特定のユーザーに存在する場合、そのフィールドはユーザー オブジェクトに含まれます。 インポート/エクスポートした構成ファイルからのメタデータ フィールドを要求するには、フィールドのエントリを
| |
Redirect URIs redirect_uris | Web アプリケーションに必要です。許可されたリダイレクト URIのリスト。 ユーザーが Google での認証プロセスを完了すると、App Services は指定されたリダイレクト URI にリダイレクトし、リダイレクト URI が指定されていない場合は、認証リクエストを開始した URL にリダイレクトします。App Services は、プロトコルと後続のスラッシュを含め、このリストのエントリと完全に一致する URI にのみユーザーをリダイレクトします。 | |
Domain Restrictions domain_restrictions | 任意。ユーザーアカウント用に承認されたドメインのリスト。 指定した場合、プロバイダーは Google でユーザーのプライマリメールアドレスのドメインを確認し、ドメインがこのリストのエントリと一致する場合にのみ認証を許可します。 たとえば、 注意ドメイン制限を指定した場合は、 Metadata Fields設定でメール アドレス フィールドも必須にする必要があります。 | |
OpenID Connect config.openId | 任意。デフォルトは
重要OpenID Connect のサポートは SDK によって異なりますOpenID Connect のサポートについては、SDK 固有のドキュメントを参照してください。Google 認証のすべての SDK 実装が OpenID Connect をサポートしているわけではありませんが、他の SDK 実装では OpenID Connect が必要です。 注意OpenID Connect はメタデータ フィールドをサポートしていませんGoogle は OAuth 2.0 実装の一部として OpenID をサポートしていますが、OpenID 認証の制限付きスコープへのアクセスは提供していません。つまり、App Services は OpenID Connect で認証されたユーザーのメタデータ フィールドにアクセスできません。 |
例
Google 認証を使用して登録およびログインする方法を示す例については、Realm SDK のドキュメントを参照してください。