Google IAP продолжает отвечать 401 несанкционированным - PullRequest
0 голосов
/ 25 января 2019

Контекст:

У меня есть два проекта, которые защищены с помощью IAP, и они должны взаимодействовать через остальные API. Я использую стандарт AppEngine с обеих сторон, с python27 в качестве среды выполнения.

Проблема:

Несмотря на то, что я авторизовал учетную запись службы в целевом проекте и использовал эту же учетную запись службы для программной аутентификации в IAP с использованием указанного кода в документации (make_iap_request). Я все еще получаю 401 Unauthorized код состояния ответа.

Ссылка для make_iap_request: https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/iap/make_iap_request.py

PS: я попытался предоставить служебной учетной записи роль владельца в проекте, а также роль Service Account Token Creator, но тщетно.

Вот полный код ошибки, заранее спасибо за помощь:

Traceback (most recent call last):
  File "/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1535, in __call__
    rv = self.handle_exception(request, response, e)
  File "/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1529, in __call__
    rv = self.router.dispatch(request, response)
  File "/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 1102, in __call__
    return handler.dispatch()
  File "/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 572, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 570, in dispatch
    return method(*args, **kwargs)
  File "/handlers.py", line 25, in get
    req = make_iap_request(API_URL, CLIENT_ID)
  File "/make_iap_request.py", line 79, in make_iap_request
    resp.status_code, resp.headers, resp.text
Exception: Bad response from application: 401L / {'expires': 'Fri, 25 Jan 2019 16:35:30 GMT', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'alt-svc': 'quic=":443"; ma=2592000; v="44,43,39"', 'date': 'Fri, 25 Jan 2019 16:35:30 GMT', 'server': 'GSE', 'content-length': '52', 'cache-control': 'private, max-age=0', 'x-goog-iap-generated-response': 'true', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'text/html; charset=UTF-8'} / u'There was a problem with your request. Error code 13'

1 Ответ

0 голосов
/ 29 января 2019

TLDR;

При использовании проекта для аутентификации проекта идентификатор клиента - это целевой проект, а не проект, который пытается аутентифицировать

Ну, после одной недели поворота по кругу я обнаружил проблему !!!!

Меня так смутило: клиент - это то, что соединяется с целью, но хотя оба термина присутствовали в этой аутентификации IAP, я попытался проверить их оба (идентификаторы клиента), и это сработало! Удачного кодирования: -)

...