Google Cloud IAP, авторизация с токеном на предъявителя выдает код ошибки 13, а экземпляр ядра приложения никогда не достигается
Я пытаюсь настроить облачный IAP для приложения, размещенного в облаке Google.
Вход в приложение хорошо работает через Интернет, и вы будете перенаправлены на страницу аутентификации Google и перенаправлены обратно на веб-сайт с токеном сеанса, установленным в виде файла cookie.
Аутентификация через не-веб-интерфейс, следуя руководству по программной аутентификации, пробует как описанный там способ командной строки, так и с использованием iOS SDK. В обоих случаях вход в систему работает как надо, и я получаю id_token из процесса входа в систему. НО, когда я делаю запрос, как следует:
curl --verbose --header 'Authorization: Bearer ID_TOKEN' https://an-app.appspot.com/api/user
Я ВСЕГДА получаю следующий ответ:
There was a problem with your request. Error code 13
Неважно, что ID_TOKEN в запросе, ответ всегда код ошибки 13. Если я не укажу заголовок авторизации, я буду перенаправлен на страницу входа Google.
Есть ли какие-либо настройки или конфигурации, которые мне не хватает?
1 ответ
TLDR;
Проблема заключалась в неправильной конфигурации полезной нагрузки auth, в моем случае это была целевая аудитория, которая не была правильной. Вот соответствующий формат:
const target_audience = "12345.apps.googleusercontent.com"; // this is the IAP client ID that can be obtained by clicking 3 dots -> Edit OAuth Client in IAP configuration page
подробности
У меня была та же проблема, которую я решил, используя смесь между этим постом: Как аутентифицировать облачные функции Google для доступа к защищенным конечным точкам ядра приложения и этим Gist: https://gist.github.com/plmrry/f78136bba68f810622bc2840497ef7e1