Как получить application_default_credentials, используя сервисную учетную запись? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть плагин maven, который использует файл application_default_credentials.json для аутентификации в облачных сервисах Google.

Я пытаюсь получить учетные данные по умолчанию, используя служебную учетную запись вместо своей учетной записи.

Я попытался установить переменную окружения GOOGLE_APPLICATION_CREDENTIALS в путь к файлу учетных данных учетной записи службы. Но плагин не использует эту переменную среды.

Я знаю, это может быть проблема с плагином. Но мне интересно, есть ли способ установить application-default-credentials.json с помощью учетной записи службы Google.

формат application-default-credentials.json:

{
  "client_id": "76....408.apps.googleusercontent.com",
  "client_secret": "d-....D0Ty",
  "refresh_token": "1/r............................emnY02",
  "type": "authorized_user"
}

Формат ключа учетной записи службы:

{
  "type": "service_account",
  "project_id": "ID",
  "private_key_id": "9a4.................................bbaad80",
  "private_key": "-----BEGIN PRIVATE KEY-----\nMI................................e\n-----END PRIVATE KEY-----\n",
  "client_email": "name@project.iam.gserviceaccount.com",
  "client_id": "10..................886",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/name%40project.iam.gserviceaccount.com"
}

1 Ответ

2 голосов
/ 07 июня 2019

Я знаю, это может быть проблема с плагином. Но мне интересно, Есть ли способ установить application-default-credentials.json с помощью Google сервисный аккаунт.

Ответ - нет. Подробнее см. Ниже.

То, что вы называете application default credentials, на самом деле является OAuth Client Secrets. Эти учетные данные используются для аутентификации (входа) человека в учетные записи Google для создания токенов OAuth. Вы не можете использовать этот тип файла учетных данных с GOOGLE_APPLICATION_CREDENTIALS.

Учетные данные приложения по умолчанию (ADC) - это не учетные данные, а стратегия поиска учетных данных.

Файл JSON служебной учетной записи используется компьютером / машиной для проверки подлинности с помощью учетных записей Google и создания токена доступа OAuth (и, возможно, токена идентификатора клиента OIDC).

Два типа аутентификации приводят к схожим типам токенов, но их нельзя взаимозаменять без использования различных типов кода и интеграции с системами аутентификации Google.

Ключевым моментом является то, что одному человеку нужно взаимодействовать с Google, а другому молча взаимодействовать с Google.

...