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