Аутентификация и авторизация — это механизмы, используемые для проверки личности и доступа к ресурсам соответственно. В этом документе определены ключевые термины, которые следует знать перед внедрением аутентификации и авторизации в ваше приложение.
Аутентификация определяет, кто отправляет запрос. Авторизация определяет, к каким ресурсам может получить доступ запрашивающий и какой у него уровень доступа. Аутентификация является необходимым условием для авторизации. Вы не можете определить, к каким ресурсам получить доступ, не установив предварительно личность запрашивающего. Более подробное определение см. в разделе «Важная терминология» .
Рассмотрим следующий упрощенный пример бронирования номера в отеле. По прибытии в отель сотрудник стойки регистрации запрашивает у вас удостоверение личности для подтверждения бронирования. Ваше удостоверение личности подтверждает вашу личность в отеле. Сотрудник стойки регистрации выдает вам ключ от отеля. Этот ключ предоставляет вам доступ к определенным ресурсам отеля, таким как ваш номер, тренажерный зал и бизнес-центр. Ключ от отеля дает вам право доступа к этим ресурсам.
Обзор процесса
На следующей диаграмме показаны основные этапы аутентификации и авторизации для 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.0.
- Идентификатор клиента OAuth 2
- Учетные данные, используемые для запроса доступа к данным, принадлежащим пользователю. Это основные учетные данные, используемые при запросе доступа к данным с помощью API Google Workspace. Для использования этих учетных данных требуется согласие пользователя .
- Секрет клиента
- Строка символов, которая должна быть известна только вашему приложению и серверу авторизации. Секрет клиента защищает данные пользователя, предоставляя токены только авторизованным запрашивающим лицам. Никогда не включайте незашифрованный секрет клиента в ваше приложение. Мы рекомендуем хранить секрет клиента в безопасном месте. Для получения дополнительной информации см. раздел «Безопасная обработка учетных данных клиента» .
- Ключи учетных записей служб
- Используется служебными учетными записями для получения авторизации в сервисе Google.
- Служебный аккаунт
- Учетные данные, используемые для взаимодействия между серверами, например, в приложениях без пользовательского интерфейса, которые запускаются как процессы для доступа к данным или выполнения операций. Служебные учетные записи обычно используются для доступа к облачным данным и операциям. Однако при использовании с делегированием полномочий в масштабе домена они могут использоваться для доступа к пользовательским данным.
- Объем
URI-строка OAuth 2.0, определяющая уровень доступа к ресурсам или действиям, предоставляемый приложению. Для Google Workspace URI-области авторизации содержат имя приложения Google Workspace, тип данных, к которым оно получает доступ, и уровень доступа. Пользователи вашего приложения могут просмотреть запрошенные области доступа и выбрать, какой доступ предоставить, после чего сервер аутентификации Google вернет разрешенные области доступа вашему приложению в виде токена доступа . Для получения более подробной информации см. раздел «Как выбрать области доступа для вашего приложения» .
- Сервер авторизации
Сервер Google, предоставляющий доступ к запрашиваемым данным и операциям приложения с помощью токена доступа .
- Код авторизации
Код, отправляемый сервером авторизации, используется для получения токена доступа. Код требуется только в том случае, если тип вашего приложения — веб-серверное приложение или установленное приложение.
- токен доступа
Токен, предоставляющий доступ к API Google Workspace. Один токен доступа может предоставлять различные степени доступа, известные как области действия (scopes) , к нескольким API. Код авторизации вашего приложения запрашивает токены доступа и использует их для вызова API Google Workspace.
- Сервер ресурсов
Сервер, на котором размещен API, к которому ваше приложение хочет обращаться.
- фреймворк OAuth 2.0
Стандарт, который ваше приложение может использовать для обеспечения «безопасного делегированного доступа» или доступа к данным и операциям от имени пользователя приложения. Механизмы аутентификации и авторизации, используемые в вашем приложении, представляют собой вашу реализацию фреймворка OAuth 2.0 .
- Главный
Сущность, также известная как идентификатор, которой может быть предоставлен доступ к ресурсу. API Google Workspace поддерживают два типа субъектов: учетные записи пользователей и учетные записи служб. Для получения более подробной информации см. раздел «Субъекты» .
- Тип данных
В контексте аутентификации и авторизации тип данных относится к сущности, которой принадлежат данные, к которым ваше приложение пытается получить доступ. Существует три типа данных:
- Данные, находящиеся в общественном достоянии
- Данные, доступные любому пользователю, например, некоторые данные Google Maps. Обычно доступ к этим данным осуществляется с помощью ключа API.
- Данные конечного пользователя
- Данные, принадлежащие конкретному пользователю или группе, например, файлы Google Drive конкретного пользователя. Доступ к этому типу данных обычно осуществляется с помощью идентификатора клиента OAuth 2 или учетной записи службы.
- Облачные данные
- Данные, принадлежащие проекту Google Cloud. Доступ к этому типу данных обычно осуществляется через служебную учетную запись.
- Согласие пользователя
Этап авторизации, требующий от пользователя вашего приложения разрешения на доступ к данным и выполнение операций от имени пользователя.
- Тип приложения
Тип создаваемого вами приложения. При создании учетных данных с помощью консоли Google Cloud вам будет предложено выбрать тип приложения. К типам приложений относятся: веб-приложение (JavaScript), Android, приложение Chrome, iOS, телевизоры и устройства с ограниченным вводом, настольное приложение (также называемое «устанавливаемым приложением») и универсальная платформа Windows (UWP).
- Служебный аккаунт
Особый тип учетной записи Google, предназначенный для представления нечеловеческого пользователя, которому необходимо пройти аутентификацию и получить разрешение на доступ к данным. Ваше приложение использует идентификатор служебной учетной записи для вызова API Google, поэтому пользователи напрямую не участвуют в этом процессе. Сами по себе служебные учетные записи не могут использоваться для доступа к пользовательским данным, обычно получаемым с помощью API Google Workspace. Однако служебная учетная запись может получить доступ к пользовательским данным путем реализации делегирования полномочий в масштабе всего домена. Для получения более подробной информации см. раздел «Понимание служебных учетных записей» .
- Делегирование полномочий в масштабах всего домена
Функция администрирования, позволяющая авторизовать приложение для доступа к пользовательским данным от имени пользователей в организации Google Workspace. Делегирование полномочий в масштабе домена может использоваться для выполнения административных задач с пользовательскими данными. Для такого делегирования полномочий администраторы Google Workspace используют служебные учетные записи с OAuth 2.0. Из-за мощи этой функции только суперадминистраторы могут включить делегирование полномочий в масштабе домена. Для получения более подробной информации см. раздел « Делегирование полномочий в масштабе домена служебной учетной записи» .
Следующий шаг
Настройте экран согласия OAuth в вашем приложении , чтобы пользователи могли понимать и одобрять доступ вашего приложения к их данным.