アプリケーションから Admin SDK API に送信するすべてのリクエストには、認証トークンを含める必要があります。このトークンは Google でアプリケーションを識別するためにも使用されます。
承認プロトコルについて
アプリケーションでは OAuth 2.0 を使用してリクエストを承認する必要があります。これ以外の承認プロトコルはサポートされていません。アプリケーションで Google ログインを使用している場合、承認手続きの一部が自動化されます。
OAuth 2.0 によるリクエストの承認
Admin SDK API へのすべてのリクエストは、認証済みのユーザーによって承認される必要があります。
OAuth 2.0 の承認プロセス(または「フロー」)の詳細は、開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスは、すべての種類のアプリケーションに適用されます。
- アプリケーションの作成時に、Google API コンソールを使用してアプリケーションを登録します。そうすると、後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
- Google API Console で Admin SDK API を有効にします(API が API コンソールに表示されない場合は、この手順をスキップしてください)。
- アプリケーションは、ユーザー データにアクセスする必要がある場合、特定のアクセス範囲を Google にリクエストします。
- データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
- ユーザーが承認すると、Google からアプリケーションに短期間有効なアクセス トークンが与えられます。
- アプリケーションは、そのアクセス トークンを付けてユーザーデータをリクエストします。
- リクエストとトークンが有効であると判断されると、リクエストされたデータが返されます。
プロセスによっては、更新トークンを使用して新しいアクセス トークンを取得するなど、追加の手順が必要になる場合もあります。各種アプリケーションに対するフローについて詳しくは、Google の OAuth 2.0 に関するドキュメントをご覧ください。
Admin SDK API で使用される OAuth 2.0 のスコープ情報は次のとおりです。
デバイス用のスコープ | 説明 |
---|---|
https://www.googleapis.com/auth/admin.directory.device.chromeos |
Chrome デバイスのすべてのオペレーションにアクセスするためのグローバル スコープ。 |
https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly |
Chrome デバイスの取得に限ったスコープ。 |
https://www.googleapis.com/auth/admin.directory.device.mobile |
モバイル デバイスのすべてのオペレーションにアクセスするためのグローバル スコープ。 |
https://www.googleapis.com/auth/admin.directory.device.mobile.readonly |
モバイル デバイスの取得に限ったスコープ。 |
https://www.googleapis.com/auth/admin.directory.device.mobile.action |
モバイル デバイスでアクションを起こすタスクのためのスコープ。 |
グループ、グループ エイリアス、グループ メンバー用のスコープ | 説明 |
https://www.googleapis.com/auth/admin.directory.group.member |
グループ メンバーのすべてのロールと情報オペレーションにアクセスするためのスコープ。 |
https://www.googleapis.com/auth/admin.directory.group.member.readonly |
グループ メンバーのロールと情報の取得に限ったスコープ。 |
https://www.googleapis.com/auth/admin.directory.group |
グループのエイリアスやメンバーを含め、すべてのグループ オペレーションにアクセスするためのグローバル スコープ。 |
https://www.googleapis.com/auth/admin.directory.group.readonly |
グループ、グループ エイリアス、メンバー情報の取得に限ったスコープ。 |
組織部門用のスコープ | 説明 |
https://www.googleapis.com/auth/admin.directory.orgunit |
組織部門のすべてのオペレーションにアクセスするためのグローバル スコープ。 |
https://www.googleapis.com/auth/admin.directory.orgunit.readonly |
組織部門の取得に限ったスコープ。 |
ユーザーとユーザー エイリアス用のスコープ | 説明 |
https://www.googleapis.com/auth/admin.directory.user |
ユーザーとユーザー エイリアスのすべてのオペレーションにアクセスするためのグローバル スコープ。 |
https://www.googleapis.com/auth/admin.directory.user.readonly |
ユーザーまたはユーザー エイリアスの取得に限ったスコープ。 |
https://www.googleapis.com/auth/admin.directory.user.alias |
ユーザー エイリアスのすべてのオペレーションにアクセスするためのスコープ。 |
https://www.googleapis.com/auth/admin.directory.user.alias.readonly |
ユーザー エイリアスの取得に限ったスコープ。 |
ユーザー セキュリティ機能用のスコープ | 説明 |
https://www.googleapis.com/auth/admin.directory.user.security |
すべてのアプリケーション固有のパスワード、OAuth トークン、確認コードのオペレーションにアクセスするためのスコープ。 |
ロール管理用のスコープ | 説明 |
https://www.googleapis.com/auth/admin.directory.rolemanagement |
ロールとロール割り当てを含め、すべてのロール管理オペレーションのためのスコープ。 |
https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly |
ロール、権限、ロール割り当てを取得、列挙するためのスコープ。 |
カスタム ユーザー スキーマ用のスコープ | 説明 |
https://www.googleapis.com/auth/admin.directory.userschema |
カスタム ユーザーのすべてのスキーマ オペレーションにアクセスするためのスコープ。 |
https://www.googleapis.com/auth/admin.directory.userschema.readonly |
カスタム ユーザーのスキーマの取得に限ったスコープ。 |
顧客用のスコープ | 説明 |
https://www.googleapis.com/auth/admin.directory.customer |
顧客のすべてのオペレーションにアクセスするためのスコープ。 |
https://www.googleapis.com/auth/admin.directory.customer.readonly |
顧客の取得に限ったスコープ。 |
ドメイン用のスコープ | 説明 |
https://www.googleapis.com/auth/admin.directory.domain |
ドメインのすべてのオペレーションにアクセスするためのスコープ。 |
https://www.googleapis.com/auth/admin.directory.domain.readonly |
ドメインの取得に限ったスコープ。 |
カレンダー リソース用のスコープ | 説明 |
https://www.googleapis.com/auth/admin.directory.resource.calendar |
カレンダー リソースのすべてのオペレーションにアクセスするためのスコープ。 |
https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly |
カレンダー リソースの取得に限ったスコープ。 |
OAuth 2.0 を使用してアクセスをリクエストするには、アプリケーションの登録時に Google から提供された情報(クライアント ID やクライアント シークレットなど)の他に、このスコープ情報が必要になります。
ヒント: Google API クライアント ライブラリで一部の承認プロセスを処理することもできます。これらのライブラリは、各種プログラミング言語で利用できます。詳しくは、ライブラリとサンプルのページをご覧ください。