Использовать OAuth

В Road Management Insights используется API выбора дорог в качестве основного компонента, предоставляющего данные о дорогах для BigQuery и Pub/Sub.

Используйте OAuth

API выбора дорог поддерживает использование OAuth 2.0 для аутентификации. Google поддерживает распространенные сценарии OAuth 2.0, например, для веб-сервера.

В этом документе описывается, как передать токен OAuth в вызов API выбора дорог в вашей среде разработки . Инструкции по использованию OAuth в производственной среде см. в разделе «Аутентификация в Google» .

Прежде чем начать

Прежде чем начать использовать API выбора дорог, вам потребуется проект с платёжным учётом и включённым API выбора дорог. Мы рекомендуем создать несколько владельцев проекта и администраторов платёжного учёта, чтобы у вашей команды всегда был доступ к сотруднику с этими ролями. Для получения дополнительной информации см. раздел «Настройка в Cloud Console» .

О протоколе OAuth

Существует множество способов создания и управления токенами доступа с помощью OAuth, в зависимости от вашей среды развертывания.

Например, система Google OAuth 2.0 поддерживает взаимодействие между серверами, например, между вашим приложением и сервисом Google. Для этого сценария вам потребуется сервисный аккаунт, который принадлежит вашему приложению, а не отдельному конечному пользователю. Ваше приложение вызывает API Google от имени сервисного аккаунта, поэтому пользователи напрямую не участвуют в процессе. Дополнительную информацию о методах аутентификации см. в разделе «Аутентификация в Google» .

В качестве альтернативы вы можете использовать API выбора дорог в составе мобильного приложения для Android или iOS. Общую информацию об использовании OAuth с API выбора дорог, включая информацию об управлении токенами доступа для различных сред развертывания, см. в разделе «Использование OAuth 2.0 для доступа к API Google» .

О сферах действия OAuth

Для использования OAuth с API выбора дорог необходимо присвоить токену OAuth следующую область действия:

  • https://www.googleapis.com/auth/cloud-platform

Пример: Попробуйте выполнить вызовы REST API в вашей локальной среде разработки.

Если вы хотите попробовать API выбора дорог, используя токен OAuth, но у вас нет среды, настроенной для генерации токенов, вы можете использовать процедуру, описанную в этом разделе, для выполнения вызова.

В этом примере описывается, как использовать токен OAuth, предоставляемый Application Default Credentials (ADC), для выполнения вызова. Информацию об использовании ADC для вызова API Google с помощью клиентских библиотек см. в разделе «Аутентификация с помощью клиентских библиотек» .

Предварительные требования

Прежде чем отправлять REST-запросы через ADC, воспользуйтесь интерфейсом командной строки Google Cloud, чтобы предоставить ADC учетные данные:

  1. Если вы еще этого не сделали, создайте проект и включите выставление счетов, следуя инструкциям в разделе «Настройка» в консоли Google Cloud .
  2. Установите и инициализируйте интерфейс командной строки gcloud .
  3. Выполните следующую команду gcloud на локальном компьютере, чтобы создать файл учетных данных:

    gcloud auth application-default login
  4. Отображается экран входа в систему. После входа в систему ваши учетные данные сохраняются в локальном файле учетных данных, используемом ADC .

Для получения дополнительной информации см. раздел «Локальная среда разработки» документации « Предоставление учетных данных для учетных данных приложения по умолчанию» .

Отправьте REST-запрос

В этом примере вы передаете два заголовка запроса:

  • Передайте токен OAuth в заголовке Authorization , используя следующую команду для генерации токена:

    gcloud auth application-default print-access-token

    Возвращенный токен имеет область действия https://www.googleapis.com/auth/cloud-platform.

  • Передайте идентификатор или имя вашего проекта Google Cloud, в котором включена оплата, в заголовке X-Goog-User-Project . Для получения дополнительной информации см. раздел «Настройка в Cloud Console» .

В следующем примере выполняется вызов API выбора дорог с использованием токена OAuth:

curl -X GET \
-H 'X-Goog-User-Project: PROJECT_NUMBER' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID

Поиск неисправностей

Если ваш запрос возвращает сообщение об ошибке, указывающее на то, что учетные данные конечного пользователя не поддерживаются этим API, см. раздел «Учетные данные пользователя не работают» .