Google BigQuery аутентификация - PullRequest
       16

Google BigQuery аутентификация

1 голос
/ 04 февраля 2020

Я хочу использовать аутентификацию Google BigQuery, как и другие сервисы Google (например, лист Google).

Проверка подлинности листа Google работает в области видимости и выдает пользователю всплывающее окно типа " Приложение XXX запрашивает доступ к вашей учетной записи Google ", и в этом всплывающем окне вы можете увидеть какое разрешение требуется приложению.

Я бы тоже авторизовался с Google BigQuery, но после прочтения документации, смотрит код официального PHP клиента, я не могу понять, как сделать эту аутентификацию. Возможно ли это?

PS Очевидно, я попробовал поток в документах Google сгенерированный JSON из консоли разработчика Google, и он отлично работает.

1 Ответ

0 голосов
/ 11 февраля 2020

То, что вы хотите сделать, невозможно. По крайней мере, так, как вы хотели бы.

При использовании, скажем, "native" продуктов GCP, аутентификация OAuth выполняется автоматически после входа в систему. Вот почему вам не предлагается идентифицировать себя при доступе к вашим корзинам GCS или при получении в панель управления App Engine.

  • Если вы хотите предоставить доступ к вашему проекту внешнему пользователю, вы запускаете команду gcloud auth login. Экран авторизации показан, как показано ниже:

    Authorization screen

Этот экран также отображается для "non-native" служб GCP, таких как as BigQuery Geo Viz , Dialogflow , et c. Вам предлагается предоставить доступ, поскольку это «внешние» функции GCP, которые взаимодействуют с внутренней информацией вашего проекта.

BigQuery является интегрированной службой GCP и не требует аутентификации OAuth при использовании через пользовательский интерфейс.

Если вы хотите взаимодействовать с API BigQuery, я настоятельно рекомендую вам использовать клиентские библиотеки BigQuery , которые значительно упрощают метод аутентификации.

Однако есть способ предоставить доступ внешним пользователям. Я обнаружил, что запросы Authorizing API выполняют c, где сказано, что вы можете получить маркер временного доступа для внешних пользователей. Это можно сделать, выполнив следующие действия:

  1. Запустите команду gcloud auth application-default print-access-token в сеансе Cloud Shell.

  2. Скопируйте вывод и вставьте его в HTTP-запросе, например

    https://www.googleapis.com/bigquery/v2/projects/$GOOGLE_CLOUD_PROJECT/datasets?access_token=ACCESS_TOKEN
    

Обратите внимание, что это может привести к еще большим усилиям, чем требуется для клиентских библиотек.

Надеюсь, это полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...