Аутентификация и авторизация — это механизмы, используемые для подтверждения личности и доступа к ресурсам соответственно. В этом документе определены ключевые термины, которые следует знать перед внедрением аутентификации и авторизации в вашем приложении.
Аутентификация определяет, кто отправляет запрос. Авторизация определяет, к каким ресурсам может получить доступ запрашивающая сторона и какой уровень доступа у неё имеется. Аутентификация является обязательным условием авторизации. Вы не сможете определить, к каким ресурсам получить доступ, не идентифицировав сначала запрашивающую сторону. Более подробное определение см. в разделе «Важная терминология» .
Рассмотрим следующий упрощённый пример бронирования номера в отеле. Когда вы приедете в отель, сотрудник стойки регистрации попросит вас предъявить удостоверение личности для подтверждения бронирования. Ваше удостоверение личности подтверждает вашу личность в отеле. Сотрудник стойки регистрации выдаст вам ключ от отеля. Этот ключ даёт вам доступ к определённым ресурсам отеля, таким как ваш номер, тренажёрный зал и бизнес-центр. Ключ от отеля даёт вам право доступа к этим ресурсам.
Обзор процесса
На следующей диаграмме показаны основные этапы аутентификации и авторизации для API Google Workspace:

- Настройте свой проект и приложение Google Cloud: во время разработки вы регистрируете свое приложение в консоли Google Cloud, определяя области авторизации и учетные данные доступа для аутентификации вашего приложения с помощью ключа API, учетных данных конечного пользователя или учетных данных учетной записи службы. 
- Аутентифицируйте приложение для доступа: при запуске приложения проверяются зарегистрированные учётные данные для доступа. Если приложение аутентифицируется как конечный пользователь, может отображаться запрос на вход. 
- Запрос ресурсов: когда вашему приложению требуется доступ к ресурсам Google, оно запрашивает Google, используя соответствующие области доступа, которые вы ранее зарегистрировали. 
- Запрос согласия пользователя: если ваше приложение выполняет аутентификацию конечного пользователя, Google отображает экран согласия OAuth, чтобы пользователь мог решить, предоставлять ли вашему приложению доступ к запрашиваемым данным. 
- Отправка одобренного запроса на ресурсы: если пользователь соглашается с областями доступа, ваше приложение объединяет учётные данные и одобренные пользователем области доступа в запрос. Запрос отправляется на сервер авторизации Google для получения токена доступа. 
- Google возвращает токен доступа: токен доступа содержит список предоставленных областей доступа. Если возвращаемый список областей доступа ограниченнее запрошенных, ваше приложение отключает все функции, ограниченные токеном. 
- Доступ к запрошенным ресурсам: ваше приложение использует токен доступа от Google для вызова соответствующих API и доступа к ресурсам. 
- Получите токен обновления (необязательно): если вашему приложению требуется доступ к API Google по истечении срока действия одного токена доступа, оно может получить токен обновления. 
- Запрос дополнительных ресурсов: если требуется дополнительный доступ, ваше приложение просит пользователя предоставить новые области доступа, что приводит к новому запросу на получение токена доступа (шаги 3–6). 
Важная терминология
Ниже приведен список терминов, связанных с аутентификацией и авторизацией:
- Аутентификация
- Действие, гарантирующее, что субъект (который может быть пользователем или приложением, действующим от имени пользователя) является тем, за кого себя выдаёт. При разработке приложений Google Workspace следует учитывать следующие типы аутентификации: - Аутентификация пользователя
- Процесс аутентификации (входа) пользователя в ваше приложение. Аутентификация пользователя обычно осуществляется посредством входа в систему, при котором пользователь использует комбинацию имени пользователя и пароля для подтверждения своей личности в приложении. Аутентификацию пользователя можно интегрировать в приложение с помощью функции «Войти через Google» .
- Аутентификация приложения
- Процесс аутентификации приложения непосредственно в сервисах Google от имени пользователя, запустившего приложение. Аутентификация приложения обычно осуществляется с использованием заранее созданных учётных данных в коде приложения.
 
- Авторизация
- Разрешения или «полномочия», которыми обладает субъект для доступа к данным или выполнения операций. Авторизация осуществляется с помощью кода, который вы пишете в своём приложении. Этот код информирует пользователя о том, что приложение желает действовать от его имени, и, если приложение разрешено, использует уникальные учётные данные вашего приложения для получения токена доступа от Google, используемого для доступа к данным или выполнения операций. 
- Учетные данные
- Форма идентификации, используемая для обеспечения безопасности программного обеспечения. В контексте аутентификации учётные данные часто представляют собой комбинацию имени пользователя и пароля. В контексте авторизации для API Google Workspace учётные данные обычно представляют собой некую форму идентификации, например, уникальную секретную строку, известную только разработчику приложения и серверу аутентификации. Google поддерживает следующие учётные данные аутентификации: ключ API, идентификатор клиента OAuth 2.0 и учётные записи служб. - API-ключ
- Учетные данные, используемые для запроса доступа к общедоступным данным, например данным, предоставленным с помощью API Карт, или файлам Google Workspace, к которым предоставлен общий доступ с помощью параметра «Любой пользователь Интернета, у которого есть эта ссылка» в настройках общего доступа Google Workspace.
- Идентификатор клиента OAuth 2
- Учётные данные, используемые для запроса доступа к данным пользователя. Это основные учётные данные, используемые при запросе доступа к данным через API Google Workspace. Для этих учётных данных требуется согласие пользователя .
- Секрет клиента
- Строка символов, которая должна быть известна только вашему приложению и серверу авторизации. Секретный ключ клиента защищает данные пользователя, предоставляя токены только авторизованным запрашивающим сторонам. Никогда не используйте незашифрованный секретный ключ клиента в приложении. Мы рекомендуем хранить секретный ключ клиента в безопасном месте. Подробнее см. в разделе «Безопасная обработка учётных данных клиента» .
- Ключи учетной записи службы
- Используется учетными записями служб для получения авторизации в службе Google.
- Учетная запись службы
- Учётные данные, используемые для взаимодействия между серверами, например, безликое приложение, запускаемое как процесс для доступа к данным или выполнения какой-либо операции. Учётные записи служб обычно используются для доступа к облачным данным и операциям. Однако при использовании с делегированием полномочий на уровне домена они могут использоваться для доступа к пользовательским данным.
 
- Объем
- Строка URI OAuth 2.0, определяющая уровень доступа к ресурсам или действиям, предоставленным приложению. Для Google Workspace URI областей авторизации содержат название приложения Google Workspace, тип данных, к которым оно получает доступ, и уровень доступа. Пользователи вашего приложения могут просматривать запрошенные области и выбирать, какой доступ предоставить, после чего сервер аутентификации Google возвращает разрешенные области вашему приложению в токене доступа . Подробнее см. в статье «Как выбрать области действия для вашего приложения» . 
- Сервер авторизации
- Сервер Google для предоставления доступа с использованием токена доступа к запрашиваемым данным и операциям приложения. 
- Код авторизации
- Код, отправленный сервером авторизации, используется для получения токена доступа. Код необходим только в том случае, если ваше приложение — веб-серверное или установленное. 
- Токен доступа
- Токен, предоставляющий доступ к API Google Workspace. Один токен доступа может предоставлять различные уровни ( области действия ) доступа к нескольким API. Код авторизации вашего приложения запрашивает токены доступа и использует их для вызова API Google Workspace. 
- Сервер ресурсов
- Сервер, на котором размещается API, который ваше приложение хочет вызвать. 
- Фреймворк OAuth 2.0
- Стандарт, который ваше приложение может использовать для предоставления «безопасного делегированного доступа» или доступа к данным и операциям от имени пользователя приложения. Механизмы аутентификации и авторизации, используемые в вашем приложении, представляют собой вашу реализацию фреймворка OAuth 2.0 . 
- Главный
- Сущность, также известная как идентификатор, которой может быть предоставлен доступ к ресурсу. API Google Workspace поддерживают два типа субъектов: учётные записи пользователей и учётные записи служб. Подробнее см. в разделе «Субъекты» . 
- Тип данных
- В контексте аутентификации и авторизации тип данных относится к субъекту, которому принадлежат данные, к которым ваше приложение пытается получить доступ. Существует три типа данных: - Данные из общественного достояния
- Данные, доступные любому, например, некоторые данные Google Карт. Доступ к этим данным обычно осуществляется с помощью API-ключа.
- Данные конечного пользователя
- Данные, принадлежащие конкретному конечному пользователю или группе, например, файлы конкретного пользователя на Google Диске. Доступ к этим данным обычно осуществляется с помощью идентификатора клиента OAuth 2 или учётной записи сервиса.
- Облачные данные
- Данные, принадлежащие проекту Google Cloud. Доступ к этому типу данных обычно осуществляется через учетную запись сервиса.
 
- Согласие пользователя
- Шаг авторизации, требующий от пользователя вашего приложения разрешить приложению доступ к данным и выполнение операций от имени пользователя. 
- Тип приложения
- Тип создаваемого приложения. При создании учётных данных в консоли Google Cloud Console вам будет предложено выбрать тип приложения. Возможны следующие типы приложений: веб-приложение (JavaScript), Android, приложение Chrome, iOS, телевизоры и устройства с ограниченными возможностями ввода, настольное приложение (также называемое «установленным приложением») и универсальная платформа Windows (UWP). 
- Учетная запись службы
- Особый тип учётной записи Google, предназначенный для представления пользователя, не являющегося человеком, которому необходимо пройти аутентификацию и авторизацию для доступа к данным. Ваше приложение использует идентификатор учётной записи службы для вызова API Google, чтобы пользователи не участвовали в этом напрямую. Сами по себе учётные записи служб не могут использоваться для доступа к пользовательским данным; доступ к данным обычно осуществляется через API Workspace. Однако учётная запись службы может получать доступ к пользовательским данным, реализуя делегирование полномочий на уровне домена. Подробнее см. в разделе «Общие сведения об учётных записях служб» . 
- Делегирование полномочий в масштабе всего домена
- Функция администрирования, которая позволяет разрешить приложению доступ к пользовательским данным от имени пользователей в организации Google Workspace. Делегирование на уровне домена может использоваться для выполнения задач, связанных с администрированием пользовательских данных. Для такого делегирования полномочий администраторы Google Workspace используют сервисные учётные записи с OAuth 2.0. Благодаря возможностям этой функции только суперадминистраторы могут включить делегирование полномочий на уровне домена. Подробнее см. в статье Делегирование полномочий на уровне домена сервисной учётной записи . 
Следующий шаг
Настройте экран согласия OAuth вашего приложения, чтобы пользователи могли понимать и одобрять, какой доступ ваше приложение имеет к их данным.