사용자 ID 가져오기

이 페이지에서는 Cloud IAP(Identity-Aware Proxy)로 사용자 ID를 가져오는 방법을 설명합니다. 사용자 ID를 가져오면 애플리케이션이 Cloud IAP를 통해 요청이 들어왔는지 확인할 수 있습니다. 적절한 앱 보호를 위해서는 항상 아래 방법 중 하나를 사용하여 Cloud IAP 인증 사용자 ID를 가져와야 합니다.

App Engine 표준 환경에서 사용자 ID 가져오기

앱 코드에서 사용자 ID를 가져오려면 App Engine 표준 환경 사용자 API를 사용합니다. 애플리케이션이 이미 이 API를 사용하는 경우, 아무 것도 변경할 필요가 없습니다. Cloud IAP는 사용자 ID를 제공하지만, Cloud IAP가 켜질 때 각 사용자의 사용자 API 사용자 ID 값이 변경됩니다.

요청에 대해 Cloud IAP로 확인된 사용자 ID를 가져오려면 현재 사용자를 반환하도록 사용자 API를 호출합니다. 함수가 자바의 req.getUserPrincipal() != null과 같이 사용자를 반환할 경우, 사용자가 Cloud IAP에서 인증된 것입니다.

Compute Engine, GKE, App Engine 가변형 환경에서 사용자 ID 가져오기

Compute Engine, GKE 또는 App Engine 가변형 환경베타에 대한 요청이 Cloud IAP에서 승인되었는지 확인하려면 애플리케이션이 HTTP 요청 헤더 x-goog-iap-jwt-assertion을 확인하여 모든 요청을 검증해야 합니다. 서명된 헤더로 앱 보안에 대해 자세히 알아보세요.

Cloud IAP는 또한 다음 HTTP 헤더에서 사용자 ID를 백엔드 서비스로 전달합니다. 이러한 헤더는 네임스페이스 프리픽스 accounts.google.com이 포함됩니다. 이러한 헤더는 호환성을 위해 제공되지만, 보안 방식으로 사용해서는 안 됩니다. 이러한 헤더를 사용할 때는 위에 나열된 인증된 JWT 헤더의 ID 정보와 비교해야 합니다.

헤더 이름 설명 값 예
X-Goog-Authenticated-User-Email 사용자의 이메일 주소 accounts.google.com:example@gmail.com
X-Goog-Authenticated-User-ID 사용자의 고유 영구 식별자 accounts.google.com:userIDvalue

Cloud IAP가 사용 설정된 경우 사용자가 앱에 처음 액세스하면 앱에 자신의 ID를 공유할지 확인하기 위한 동의 화면으로 리디렉션됩니다. Cloud IAP를 사용 설정하기 전 사용자가 이 앱에 동의를 부여한 경우에도 이 작업은 수행되며, 개발자가 Cloud IAP를 사용 중지하고 다시 사용 설정한 경우도 다시 수행됩니다.

사용자 API를 사용할 경우, 동일한 G Suite 도메인 내에 있는 앱 및 사용자에 대해서는 동의 화면이 일반적으로 숨겨집니다. Cloud IAP를 사용 설정하면, 동의 화면이 자동으로 숨겨지지 않습니다. Cloud IAP가 사용 설정된 상태로 동의 화면을 숨기려면 아래 단계를 따르세요.

  1. G Suite 관리 콘솔로 이동합니다.
    관리 콘솔로 이동
  2. 위젯 목록에서 보안을 선택합니다.
    1. 보안이 목록에 없으면 페이지 아래의 회색 막대에서 위젯 추가를 선택한 후 위젯 목록에서 보안을 선택합니다.
    2. 위젯이 표시되지 않으면 도메인의 관리자로 로그인되었는지 확인합니다.
  3. 옵션 목록에서 더보기를 선택한 후 고급 설정을 선택합니다.
  4. 인증 섹션에서 API 클라이언트 액세스 관리를 선택합니다.
  5. 클라이언트 이름 필드에 Cloud IAP OAuth 2.0 클라이언트 ID를 입력합니다. Cloud IAP 클라이언트 ID는 사용자 인증 정보 페이지에서 찾을 수 있습니다.
    Cloud IAP 사용자 인증 정보 페이지로 이동
  6. 하나 이상의 API 범위 필드에 email, openid를 입력합니다.
  7. 승인을 클릭합니다.

이 프로세스를 단순화하려면 API 호출을 사용하여 모든 앱에 대해 단일 Cloud IAP OAuth 2.0 클라이언트 ID를 사용할 수 있습니다. GCP Console을 사용하여 Cloud IAP에 사용할 클라이언트 ID를 지정할 수는 없습니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Identity-Aware Proxy 문서