4

개발 환경에서 Cloud IAP를 설정하고 (Kubernetes로 스핀 업하고 Let 's Encrypt를 사용) 모든 것이 정상적으로 작동합니다.Google Cloud 신원 확인 프록시 (IAP) 302를 방지하기 위해 자체 API를 보낼 쿠키 또는 헤더?

1) 프로젝트

2) SPA 프런트 엔드 응용 프로그램에서, REST 엔드 포인트 및 영구 데이터 저장소의 수를되어지는 API :

셋업이 응용 프로그램에 대한 아주 기본적인 그 간다 의해, I합니다 (IAP 화면을 통해 모두 애플 리케이션에 내 Google 사용자를 인증 할 수 있습니다 내 브라우저에서 다른 프로젝트 B

에 (크롬과 파이어 폭스를 시도), API 말했다 활용합니다 g를 브라우저 탭의 각 도메인에 추가). SPA을 사용하려고 시도하면API에 대한 요청을 시도하지만 네트워크 요청 302는 Google IAP 로그인 페이지로 리디렉션됩니다.

질문 : IAP는 패스를 통해 수 있도록 사용자를 대신하여 API 요청을 통해 보냈 될 필요가있는 헤더 나 쿠키가 있습니까?

나는 BTW GCP_IAAP_AUTH_TOKENGCP_IAAP_XSRF_NONCE이 두 쿠키를 참조하십시오.

답변

3

IAP, "API"또는 "SPA"로 보호되는 것은 무엇입니까? 그것이 SPA라면 IAP는 정상적으로 작동해야합니다. API 인 경우 현재 https://cloud.google.com/iap/docs/authentication-howto을 사용하여 SPA가 API에 인증되도록하고 API가 최종 사용자의 자격 증명을 별도로 확인할 수 있도록 https://cloud.google.com/iap/docs/signed-headers-howto을 전달해야합니다.

SPA에서 API로 GCP_IAAP_AUTH_TOKEN을 전달하면 보안상의 이유로 최종 사용자 응용 프로그램에 요청을 전달하기 전에이를 제거합니다 (로드 밸런서와 응용 프로그램 간의 전송이 HTTP 인 경우 예 : 공격자가 더 힘들어집니다.)

+0

이 경우 SPA 및 API는 모두 IAP 시스템으로 보호됩니다. – bonesbrigade

+0

알았습니다. 이 경우 SPA가 서비스 계정 인증 지침을 사용하여 API에 인증하도록 요청하고 SPA에 IAP에서받은 X-Authenticated-User-JWT를 포함시켜야합니다. SPA는 JWT를 검증하여 최종 사용자가 SPA에 요청을 제출했다는 증거로 사용할 수 있습니다. 이러한 토큰은 재생 또는 변조에 대한 강력한 방지 기능을 제공하지 않으므로 강력한 메커니즘이 아닙니다. 즉 SPA를 제어하는 ​​사람은 여전히 ​​많은 권한을 가지고 있습니다.하지만 적어도 최종 사용자에게 최종 사용자를 제공합니다. 자격 증명 검사. 그게 효과가 있습니까? –

+0

네, 그게 합리적 소리, 그것을 밖으로 시도하자! – bonesbrigade