Токен запроса Google Cloud OAuth 2.0 без участия пользователя - Java - PullRequest
0 голосов
/ 21 января 2020

Я работаю над решением для чтения файлов журнала из GCP для внутреннего процесса. Тем не менее, я с трудом пытаюсь сгенерировать Auth Token для запроса на получение необходимых журналов. Это скорее вопрос потока \ контекста, а не то, что не так с моим кодом

Основные проблемы, с которыми я сталкиваюсь, это то, что я не хочу запрашивать аутентификацию в браузере. Я хочу быть в состоянии сделать это все через запрос API и не взаимодействовать с пользователем. Везде, где я смотрел, и во всех реализациях, которые я пробовал, я как-то просил взаимодействия с пользователем, и это просто неосуществимо для этого решения.

Как этого достичь?

Мы делаем IAM не включен, поэтому я не могу сгенерировать токен JWT. Я пытаюсь сделать это с помощью учетной записи службы, созданной с использованием идентификатора клиента и секрета клиента.

Я пытался получить «код» для передачи в запрос на создание токена авторизации, но это побуждает меня к авторизации пользователя в браузере, которая не будет работать, даже когда я добавляю параметр запроса ' «или« утверждение_произвести »-« Нет »или« Принудительно ». Я чувствую, что мне не хватает одной важной части, чтобы быть в состоянии достичь этого потока, и любая помощь / руководство будет высоко ценится.

1 Ответ

0 голосов
/ 28 января 2020

Существует несколько способов аутентификации вызовов API. Если вы хотите сделать это без взаимодействия с пользователем, вам необходимо использовать служебную учетную запись (подробнее здесь ). Процесс будет следующим:

. Вы используете идентификатор клиента и один закрытый ключ для создания подписанного JWT и создания запроса токена доступа в соответствующем формате. Затем ваше приложение отправляет запрос токена на сервер авторизации Google OAuth 2.0, который возвращает токен доступа. Приложение использует токен для доступа к API Google. Когда токен истекает, приложение повторяет процесс.

Для этого вы можете использовать клиентские библиотеки или сделать это вручную с помощью HTTP-запросов напрямую. В документах есть руководство для этого.

...