Самый простой способ получить информацию о виртуальных машинах из нескольких учетных записей Google Cloud Platform - PullRequest
0 голосов
/ 09 июня 2019

Я сделаю это максимально простым.

Допустим, у меня есть WordPress-сайт "test.com" с 5 пользователями.

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

На каждой учетной записи GCP развернута 1 виртуальная машина.

У меня есть полный доступ к этим учетным записям (для создания oauth clientID-ключей json и / или авторизации "test.com" и / или добавления областей "compute.engine (readonly)")

Мне нужна самая простая из возможных стратегий и код для создания wp-совместимого dashboard.php, который извлекает данные виртуальной машины GCP вошедшего в систему пользователя (возможно, через / compute / v1 / projects / {project} / zone / {zone} / экземпляры / {ResourceId} / addAccessConfig).

Пример:

User1 is previously assigned test1@google.com
test1@google.com has 1 CENTOS VM deployed in compute engine
User1 logs into WORDPRESS-SITE-1.com
User1 goes on "Dashboard" and sees details of CENTOS Deployed VM.
User2 is previously assigned test2@google.com
test2@google.com had 1 Windows SRV VM deployed
...

Как я могу реализовать это с зарегистрированными пользователями WordPress.

OAUTH с GCP должен быть полностью безмолвным.

По сути, я хотел бы хранить «пользовательские ключи», например:

usr1_key.json
usr2_key.json
...

тогда я бы выбрал соответствующий ключ для авторизации с GCP compute engine

PHP, если возможно.

Я много читаю, но есть 500 различных способов реализации Google OAUTH.

Мое использование довольно специфично, и я не могу найти ПРОСТОЙ способ сделать то, что нужно.

В заключение, в идеальном случае я бы добавил неизвестный код в последние строки wp-login.php:

заставить нас тихо авторизоваться в GCP compute engine через правильный ключ (json)

В отсутствие лучших терминов, заставьте wp-login.php извлечь правильные ключи GCP и сгенерировать токен API, чтобы usr1 мог: GET / compute / v1 / projects / {project} / zone / {zone} / acceleratorTypes / {RESOURCEID}

А что-то вроде этого:

<?php
 require_once 'vendor/autoload.php';
$current_user = wp_get_current_user();
$accessTokenUrl = 'https://accounts.google.com/o/oauth2/token';
$client = new Google_Client();
$client->setAuthConfig('keys/$current_user.json');
$client->addScope("https://www.googleapis.com/auth/compute")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...