Подробнее об аутентификации и авторизации

Аутентификация и авторизация — это механизмы, используемые для проверки личности и доступа к ресурсам соответственно. В этом документе определены ключевые термины, которые вы должны знать перед реализацией аутентификации и авторизации в своем приложении.

Аутентификация определяет , кто делает запрос. Авторизация определяет, к каким ресурсам может получить доступ запросчик и какой у него уровень доступа. Аутентификация является обязательным условием для авторизации. Вы не можете определить, к каким ресурсам обращаться, не установив предварительно личность запрашивающего. Более подробное определение см. в разделе «Важная терминология» .

Рассмотрим следующий упрощенный пример бронирования отеля. Когда вы прибываете в отель, сотрудник стойки регистрации запрашивает ваше удостоверение личности, чтобы подтвердить бронирование. Ваше удостоверение личности подтверждает вашу подлинность в отеле. Клерк на стойке регистрации дает вам ключ от отеля. Этот ключ дает вам доступ к определенным ресурсам в отеле, таким как ваш гостиничный номер, тренажерный зал и бизнес-центр. Ключ отеля разрешает вам доступ к этим ресурсам.

Обзор процесса

На следующей диаграмме показаны общие этапы аутентификации и авторизации для API Google Workspace:

Шаги высокого уровня реализации аутентификации и авторизации
Рис. 1. Общие этапы реализации аутентификации и авторизации
  1. Настройте свой проект и приложение Google Cloud: во время разработки вы регистрируете свое приложение в консоли Google Cloud, определяя области авторизации и учетные данные доступа для аутентификации вашего приложения с помощью ключа API, учетных данных конечного пользователя или учетных данных учетной записи службы.

  2. Аутентифицируйте свое приложение для доступа: когда ваше приложение запускается, зарегистрированные учетные данные доступа оцениваются. Если ваше приложение аутентифицируется как конечный пользователь, может отображаться запрос на вход.

  3. Запрос ресурсов. Когда вашему приложению требуется доступ к ресурсам Google, оно запрашивает у Google соответствующие области доступа, которые вы зарегистрировали ранее.

  4. Запросить согласие пользователя. Если ваше приложение аутентифицируется как конечный пользователь, Google отображает экран согласия OAuth, чтобы пользователь мог решить, предоставлять ли вашему приложению доступ к запрошенным данным.

  5. Отправить одобренный запрос на ресурсы: если пользователь соглашается с областями доступа, ваше приложение объединяет учетные данные и одобренные пользователем области доступа в запрос. Запрос отправляется на сервер авторизации Google для получения токена доступа.

  6. Google возвращает токен доступа: токен доступа содержит список предоставленных областей доступа. Если возвращаемый список областей более ограничен, чем запрошенные области доступа, ваше приложение отключает все функции, ограниченные токеном.

  7. Доступ к запрошенным ресурсам: ваше приложение использует токен доступа от Google для вызова соответствующих API и доступа к ресурсам.

  8. Получите токен обновления (необязательно): если вашему приложению требуется доступ к API Google по истечении срока действия одного токена доступа, оно может получить токен обновления.

  9. Запрос дополнительных ресурсов. Если требуется дополнительный доступ, ваше приложение запрашивает у пользователя предоставление новых областей доступа, что приводит к новому запросу на получение токена доступа (шаги 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 для предоставления доступа с использованием токена доступа к запрошенным данным и операциям приложения.

Код авторизации

Код, отправленный с сервера авторизации, используемый для получения токена доступа. Код требуется только в том случае, если тип вашего приложения — приложение веб-сервера или установленное приложение.

Токен доступа

Токен, предоставляющий доступ к Google Workspace API. Один токен доступа может предоставлять разную степень, известную как области действия , доступа к нескольким 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 вашего приложения , чтобы пользователи могли понять и одобрить доступ вашего приложения к их данным.