Рабочий процесс для пользовательского доступа к API через токены Google IAM - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть веб-приложение, в котором я реализовал делегированную аутентификацию через OID Google C. (Т. Е. Браузер перенаправляет пользователей в Google, они проходят аутентификацию и возвращаются в мое приложение). Мое приложение декодирует токены доступа Google и id для авторизации пользователя, и все работает нормально.

У меня есть еще одно требование, при котором пользователи моего приложения могут получать доступ к API моего приложения с помощью curl или других сценариев. Там не будет никакого взаимодействия с браузером. Я все еще хочу положиться на Google, чтобы доверять пользователю, кто она говорит, что она.

Один рабочий процесс, о котором я могу подумать: пользователь передает свой Google ID и пароль при вызове моего API, мое приложение выполняет поток предоставления пароля и получает токен от имени пользователя и использует токен для проверки доступа к API.

Однако это не практично, поскольку пользователям будет неудобно делиться своими учетными данными google с помощью curl с сторонним приложением, таким как мое.

Какой возможный рабочий процесс я могу использовать, чтобы - пользователь мог получить свой id_token каким-то образом через Google и передает его в токене на предъявителя при вызове моего API. Затем я могу проверить токен. Какие у меня варианты без какого-либо взаимодействия с браузером?

1 Ответ

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

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

Серверный поток:

  1. Создание токена состояния защиты от подделки
  2. Отправка запроса аутентификации в Google
  3. Подтверждение защиты -фокусный токен
  4. Код обмена для токена доступа и ID токена
  5. Получение информации о пользователе из токена ID
  6. Аутентификация пользователя

Потому что OpenID Connect - это совместимый протокол аутентификации, основанный на OAuth 2.0 , и эта спецификация предназначена для использования с HTTP, я имею в виду OpenID Connect использует только стандартный HTTP (S ) запросов и ответов.

Еще одна ссылка, которую, я надеюсь, вы найдете полезной, - это библиотека, которую я нашел OAuth2 для скрипта приложений

Также OpenID Connect позволяет запускать вход в потоках и получи ве Поддельные утверждения о личности вошедших в систему пользователей. Если вам необходимо реализовать неявный поток, я рекомендую вам использовать Google Sign-In

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