Warning: The Notifications API is deprecated and will be shutdown soon.

Directory API: Authorize Requests

Every request your application sends to the Directory API must include an authorization token. The token also identifies your application to Google.

About authorization protocols

Your application must use OAuth 2.0 to authorize requests. No other authorization protocols are supported. If your application uses Google Sign-In, some aspects of authorization are handled for you.

Authorizing requests with OAuth 2.0

All requests to the Directory API must be authorized by an authenticated user.

The details of the authorization process, or "flow," for OAuth 2.0 vary somewhat depending on what kind of application you're writing. The following general process applies to all application types:

  1. When you create your application, you register it using the Google API Console. Google then provides information you'll need later, such as a client ID and a client secret.
  2. Activate the Directory API in the Google API Console. (If the API isn't listed in the API Console, then skip this step.)
  3. When your application needs access to user data, it asks Google for a particular scope of access.
  4. Google displays a consent screen to the user, asking them to authorize your application to request some of their data.
  5. If the user approves, then Google gives your application a short-lived access token.
  6. Your application requests user data, attaching the access token to the request.
  7. If Google determines that your request and the token are valid, it returns the requested data.

Some flows include additional steps, such as using refresh tokens to acquire new access tokens. For detailed information about flows for various types of applications, see Google's OAuth 2.0 documentation.

Here's the OAuth 2.0 scope information for the Directory API:

Scopes for devices Meaning
https://www.googleapis.com/auth/admin.directory.device.chromeos Global scope for access to all Chrome device operations.
https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly Scope for only retrieving Chrome devices.
https://www.googleapis.com/auth/admin.directory.device.mobile Global scope for access to all mobile device operations.
https://www.googleapis.com/auth/admin.directory.device.mobile.readonly Scope for only retrieving mobile device
https://www.googleapis.com/auth/admin.directory.device.mobile.action Scope for tasks that take an action on a mobile device.
Scopes for groups, group aliases, and group members Meaning
https://www.googleapis.com/auth/admin.directory.group.member Scope for access to all group member roles and information operations.
https://www.googleapis.com/auth/admin.directory.group.member.readonly Scope for only retrieving group member roles and information.
https://www.googleapis.com/auth/admin.directory.group Global scope for access to all group operations, including group aliases and members.
https://www.googleapis.com/auth/admin.directory.group.readonly Scope for only retrieving group, group alias, and member information.
Scopes for organizational units Meaning
https://www.googleapis.com/auth/admin.directory.orgunit Global scope for access to all organizational unit operations.
https://www.googleapis.com/auth/admin.directory.orgunit.readonly Scope for only retrieving organizational units.
Scopes for users and user aliases Meaning
https://www.googleapis.com/auth/admin.directory.user Global scope for access to all user and user alias operations.
https://www.googleapis.com/auth/admin.directory.user.readonly Scope for only retrieving users or user aliases.
https://www.googleapis.com/auth/admin.directory.user.alias Scope for access to all user alias operations.
https://www.googleapis.com/auth/admin.directory.user.alias.readonly Scope for only retrieving user aliases.
Scopes for user security features Meaning
https://www.googleapis.com/auth/admin.directory.user.security Scope for access to all application-specific password, OAuth token, and verification code operations.
Scopes for role management Meaning
https://www.googleapis.com/auth/admin.directory.rolemanagement Scope for all roles management operations, including creating roles and role assignments.
https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly Scope for getting and listing roles, privileges, and role assignments.
Scopes for custom user schemas Meaning
https://www.googleapis.com/auth/admin.directory.userschema Scope for access to all custom user schema operations.
https://www.googleapis.com/auth/admin.directory.userschema.readonly Scope for only retrieving custom user schemas.
Scopes for customers Meaning
https://www.googleapis.com/auth/admin.directory.customer Scope for access to all customer operations.
https://www.googleapis.com/auth/admin.directory.customer.readonly Scope for only retrieving customers.
Scopes for domains Meaning
https://www.googleapis.com/auth/admin.directory.domain Scope for access to all domain operations.
https://www.googleapis.com/auth/admin.directory.domain.readonly Scope for only retrieving domains.
Scopes for calendar resources Meaning
https://www.googleapis.com/auth/admin.directory.resource.calendar Scope for access to all calendar resources operations.
https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly Scope for only retrieving calendar resources.

To request access using OAuth 2.0, your application needs the scope information, as well as information that Google supplies when you register your application (such as the client ID and the client secret).

Tip: The Google APIs client libraries can handle some of the authorization process for you. They are available for a variety of programming languages; check the page with libraries and samples for more details.