Gmail API の拡張により、 G Suite 管理者は Gmail の受任者を追加、確認、削除できるアプリを承認できるようになりました。
前回に引き続き、今回はOAuth 2.0 Playground を使用したテストの方法をご案内いたします。 ※API の新規実装ではありません。
ーーーーーーーーーーーーーーーーーーーーーーー
【第1回】 Gmail代理と委任について
【第2回】 2)APIを利用するための設定について プロジェクトの作成、Google OAuthの設定、APIの許可方法など
【第3回】 Gmail API を使ったGmail 委任設定: Users.settings.delegatesのOAuth 2.0 Playground を使用したテストの方法
< OAuth 2.0 Playground テスト手順 >
1. Google Cloud Console https://console.cloud.google.com を開きます。 ( デフォルトでは、ホームページに移動し、作成済みプロジェクトがあれば既存プロジェクトを開いた状態 )
2. ページの上部にあるドロップダウンで、プロジェクトを作成する組織を選択します。
3. [ 作成 ] か [ 新しいプロジェクト ] をクリックします 。
4. 表示された [ 新しいプロジェクト ] ウィンドウでプロジェクト名を入力し、必要に応じて請求先アカウントを選択します。
5. 新しいプロジェクトの詳細を入力したら、 [ 作成 ] をクリックすると、新しいプロジェクトのホームページにリダイレクトされます。
6. 画面の左上にある [ ≡ ] ( メニュー ) をクリックし、 [ API とサービス ] をクリックします。
7. 画面中央上部 [ + API とサービスの有効化 ] をクリックします。
8. 必要な API の名前 ( 今回は Gmail ) を検索して選択し、 [ 有効にする ] をクリックします。
9. [ API とサービス ] で [ 認証情報 ]をクリックします。
10. [ OAuth 同意画面 ] タブをクリックし、 [ アプリケーション名 ] に名前を追加し、 [ 保存 ] をクリックします。
12. [ Webアプリケーション ] を選択し、名前を追加します。各項目に次のように入力して Enter キーで確定します。
- 承認済みの JavaScript 生成元 : https://developers.google.com
- [ 承認されたリダイレクトURI ] : https://developers.google.com/oauthplayground
14. [ 認証情報 ] タブに戻り、 [ 認証情報の作成 ] をクリックし、 [ サービス アカウント キー ] をクリックし、 [ 新しいサービスアカウント ] を選択します。
アカウント名を追加し、役割から [ Project > オーナー ] を選択し、 [ JSON ] を選択したまま、 [ 作成 ] をクリックします。 ( JSON ファイルがダウンロードされますが、今回は使用しません )
※後で使用しますので、サービス アカウント キーのクライアント ID を保存してください。
15. [ 認証情報 ] にリダイレクトとされるので、 [ サービス アカウント キー ] 右側の [ サービスアカウントの管理 ] をクリックします。
16. サービスアカウントのアドレスの右側にある 3点メニューをクリック > [ 編集 ] > [ ドメイン全体の委任を表示 ] > [ G Suite ドメイン全体の委任を有効にする ] をオン > [ 保存 ] の順にクリックします。
- 17.1 手順 13 で保存したクライアント ID を [ クライアント名 ] と [ 1つ以上のAPIスコープ ] で使用するスコープ ( 今回必要なスコープ:https://www.googleapis.com/auth/gmail.settings.sharing ) を入力して、 [ 承認 ] をクリックします。)
17.2 ドメイン全体の委任を有効にするために、手順 14 で保存したクライアントIDを [ クライアント名 ] に入力し、次のスコープを入力します。 https://www.googleapis.com/auth/admin.directory.user, https://www.googleapis.com/auth/admin.directory.group 入力後 [ 承認 ] をクリックします。
※ ご不明な点がある場合は、https://developers.google.com/admin-sdk/directory/v1/guides/delegation をご覧ください。
18. https://developers.google.com/oauthplayground/ にアクセスし、 画面の右上にある [ 設定 ] ( 歯車アイコン ) をクリックします。
- 下記のとおり設定してください。
* OAuth flow: Server-side
* OAuth endpoints: Google
* Authorization endpoint: 変更不要
* Token endpoint: 変更不要
* Access token location: Authorization header w/ Bearer prefix
* Access type: Online
* Force prompt: No
* [ Use your own OAuth credentials ] のチェックをオン
* OAuth Client ID: 手順 13 で保存したクライアント ID
* OAuth Client secret: 手順 13 で保存したクライアント シーレット
* [ Close ] をクリック
19. [ Select & authorize APIs ] で、Input your own scopes にhttps://www.googleapis.com/auth/gmail.settings.sharing を挿入し、 [ Authorize APIs ] をクリックします。
20. [ Exchange authorization code for tokens ] をクリックします。
22. [ Enter request body ] をクリックし、以下を挿入します。
{ "delegateEmail": "user@yourdomain", "verificationStatus": "accepted" }
<新規実装について>
◆テスト環境にて正常に動作が確認できましたら、新規実装を行います。
新規実装についての注意としましては、
Create Method : 代理人の作成方法 (検証ステータスを受け付けた代理人を、検証メールを送信せずに直接追加します。 )
※条件:代理人ユーザーは、委任者ユーザーと同じG Suite組織のメンバーである必要があります。
Gmailは、G Suite組織の各ユーザが持つことができる代理人と委任者の数に制限を課しています。
制限は組織によって異なりますが、一般に各ユーザーは最大25人の代理人と最大10人の 委任者を持つことができます。
代理人であるユーザーは、電子メールエイリアスではなく、 基の電子メールアドレスで参照する必要があります。
また、新しい代理人が作成されてから、 その委任機能を使用できるようになるまでに1分ほどかかる場合があります。
また、この方法はドメイン全体の権限が委任されているサービスアカウントクライアントでのみ 使用可能です。
◆ API の新規実装をスプレッドシートで行う場合には、新規スプレッドシートを作成 > リソース > Googleの拡張サービスをクリックし、Google API 、V1、 GmailをONにします。
また、リソース >Cloud Platformプロジェクト をクリックし、プロジェクト番号を入力します。GCPのプロジェクト情報よりプロジェクト番号を参照できます。これでスクリプトにプロジェクトを関連付けできます。
<感想>
APIを利用してGmail管理の代理を委任することができますが、結局委任された代理人が「承認」を行わない限り、代理設定が完遂しません。また、この方法はドメイン全体の権限が委任されているサービスアカウントクライアントでのみ 使用可能の為、誤って操作した場合のリスクなども考えられます。委任設定を行う数が多くないのであれば、直接ユーザー間で代理設定を行う方がよいのかもしれません。
APIを利用してGmail管理の代理を委任することができますが、結局委任された代理人が「承認」を行わない限り、代理設定が完遂しません。また、この方法はドメイン全体の権限が委任されているサービスアカウントクライアントでのみ 使用可能の為、誤って操作した場合のリスクなども考えられます。委任設定を行う数が多くないのであれば、直接ユーザー間で代理設定を行う方がよいのかもしれません。