Аутентификация и авторизация — это механизмы, используемые для проверки личности и доступа к ресурсам соответственно. В этом документе определены ключевые термины, которые вам следует знать перед внедрением аутентификации и авторизации в вашем приложении.
Аутентификация определяет , кто делает запрос. Авторизация определяет, к каким ресурсам может получить доступ запрашивающая сторона и какой уровень доступа у нее есть. Аутентификация является обязательным условием для авторизации. Вы не можете определить, к каким ресурсам обращаться, не установив предварительно личность запрашивающего. Более подробное определение смотрите в разделе «Важная терминология» .
Рассмотрим следующий упрощенный пример бронирования гостиницы. По прибытии в отель сотрудник стойки регистрации запросит у вас удостоверение личности для подтверждения бронирования. Ваше удостоверение личности удостоверяет вашу подлинность в отеле. Сотрудник стойки регистрации дает вам ключ от отеля. Этот ключ дает вам доступ к определенным ресурсам отеля, таким как гостиничный номер, тренажерный зал и бизнес-центр. Ключ отеля разрешает вам доступ к этим ресурсам.
Обзор процесса
На следующей схеме показаны этапы аутентификации и авторизации высокого уровня для API Google Workspace:
![Общие этапы реализации аутентификации и авторизации](https://developers-dot-devsite-v2-prod.appspot.com/workspace/images/auth-overview.png?authuser=7&hl=ru)
Настройте свой проект и приложение 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-ключ
- Учетные данные, используемые для запроса доступа к общедоступным данным, например данным, предоставленным с помощью Maps 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 вам будет предложено выбрать тип приложения. Типы приложений: веб-приложение (JavaScript), Android, приложение Chrome, iOS, телевизоры и устройства с ограниченным вводом, настольное приложение (также называемое «установленным приложением») и универсальная платформа Windows (UWP).
- Сервисный аккаунт
Особый тип учетной записи Google, предназначенный для представления пользователя, не являющегося человеком, которому необходимо пройти аутентификацию и авторизоваться для доступа к данным. Ваше приложение предполагает идентификацию учетной записи службы для вызова API Google, поэтому пользователи не участвуют напрямую. Сами по себе сервисные учетные записи не могут использоваться для доступа к пользовательским данным; данные, обычно доступные с помощью API Workspace. Однако учетная запись службы может получить доступ к пользовательским данным, реализовав делегирование полномочий на уровне домена. Дополнительные сведения см. в разделе Общие сведения об учетных записях служб .
- Делегирование полномочий на уровне домена
Функция администрирования, которая может разрешить приложению доступ к пользовательским данным от имени пользователей в организации Google Workspace. Делегирование на уровне домена можно использовать для выполнения задач администрирования над пользовательскими данными. Чтобы таким образом делегировать полномочия, администраторы Google Workspace используют сервисные аккаунты с OAuth 2.0. Из-за возможностей этой функции только суперадминистраторы могут включить делегирование полномочий на уровне домена. Дополнительные сведения см. в разделе Делегирование полномочий на уровне домена сервисному аккаунту .
Следующий шаг
Настройте экран согласия OAuth вашего приложения , чтобы пользователи могли понять и одобрить доступ вашего приложения к их данным.