Google Cloud запускает аутентификацию OAuth2 с PKCE - PullRequest
0 голосов
/ 05 апреля 2020

Мне нужно аутентифицировать учетную запись службы (с ролью вызова контейнера) в Cloud Run с PKCE. В основном, мое iOS приложение отправляет HTTPS-запросы для вызова определенного контейнера Cloud Run (с Django Rest Framework).

Я нашел этот пример (который аутентифицируется в конечной точке Cloud Run через себя подписал JWT в обмен на токен). Это именно то, что мне нужно, но я хочу добавить PKCE. Я не понимаю, куда мне отправлять code_verifier и code_challenge? Если я выполню проверку в своем контейнере, как это будет связано с авторизацией в облачном запуске?

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

(плохое) решение - создать файл ключа учетной записи службы и вставить его в ваше приложение iOS; Но, как упоминал Джон, если вы сделаете это, вы потеряли контроль над своим ключом, потому что ваш мобильный телефон небезопасен. Вместо этого сделайте ваш сервис общедоступным c !!

Хорошим примером является то, что пользователь не должен напрямую вызывать вашу частную и безопасную службу, но должен иметь шлюз publi c, который выполняет пользователя. проверка безопасности. Таким образом, вы будете использовать OAuth-поток вашего пользователя для аутентификации его на бэкэнде, и этот бэкэнд сможет вызывать ваш сервис с правильной учетной записью сервиса.

Вы можете сделать это самостоятельно, но Хорошей альтернативой является использование API-шлюза, такого как Cloud Endpoint на GCP. Вы можете подключить Firebase аутентификацию на нем. Ваши накладные расходы минимальны, а ваша безопасность улучшена! Я написал и статью в связи с этим (речь идет об API-ключах, но замените определение безопасности API-ключа на определение безопасности аутентификации firebase , и наслаждайтесь!)

0 голосов
/ 05 апреля 2020

Google OAuth не поддерживает PKCE.

PKCE является частью потока кода авторизации. Сервисные учетные записи не используют этот поток.

Поток кода авторизации не является частью авторизации учетной записи службы Google, поскольку обе стороны считаются доверенными. Мобильное устройство не является доверенным устройством, поэтому НЕ храните учетные записи служб на мобильных устройствах.

...