Как подключиться к службе, защищенной IAP, через PHP через учетную запись службы? Мне уже не удается получить Аутентификационный носитель, поэтому я полагаю, что я совершенно не на том пути:
<?php
require_once 'vendor/autoload.php';
$scopes = ['https://www.googleapis.com/auth/iam'];
$client = new Google_Client;
$client->useApplicationDefaultCredentials();
$client->setScopes($scopes);
$client->setSubject('[email protected]');
$client->setOpenidRealm('https://example.com');
$access_token = $client->getAccessToken();
var_dump($access_token);
Любой указатель на то, где и как начать, будет высоко ценится.
Ты видел https://cloud.google.com/iap/docs/authentication-howto ? К сожалению, у нас пока нет примера кода для PHP, но это объясняет основные понятия. Раздел «Парад роботов» https://cloudplatform.googleblog.com/2017/04/Getting-started-with-Cloud-Identity-Aware-Proxy.html может быть полезным
К сожалению, IAP не поддерживает токены доступа для аутентификации, поэтому вам потребуется получить JWT, подписанный сервисной учетной записью, и у него должна быть специальная заявка «target_audience». Установлен ли $ client-> config [‘signature_key’]? Если это так, у вас есть доступ к закрытому ключу учетной записи службы, и вы можете … взглянуть на https://github.com/google/google-auth-library-php/blob/master/src/OAuth2.php#L417 и если вы можете получить объект учетных данных, вы можете сделать что-то подобное, добавьте утверждение target_audience.
если ты не иметь доступ к закрытому ключу, что, на мой взгляд, только в том случае, если вы работаете на GCE и используете учетную запись службы с сервера метаданных, вам придется использовать IAM signBlob API: https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/signBlob . Это требует сложной настройки на экземпляре GCE, https://cloud.google.com/iap/docs/authentication-howto документы это.
Извините, я знаю, что все сложнее, чем должно быть! Я не эксперт по PHP, но я надеюсь, что это поможет.
— Мэтью, инженер по работе с доверенными лицами
Других решений пока нет …