호스트 이름 및 경로 조건 사용

이 페이지에서는 호스트 이름 및 경로 ID 및 액세스 관리(IAM) 조건을 설명합니다.

요청 URL의 호스트 이름과 경로를 사용하여 IAP(Identity-Aware Proxy) 리소스를 보호할 수 있습니다. 예를 들어 URL 경로가 /admin으로 시작하는 경우에만 request.path.startsWith IAM 조건을 사용하여 권한이 지정된 액세스 그룹의 직원에게 액세스 권한을 부여할 수 있습니다.

호스트 이름 및 경로 조건 사용에 대한 자세한 내용은 요청 속성을 참조하세요.

문자열 정규화

URL에는 호스트 이름과 경로가 있습니다. 예를 들어 URL https://sheets.google.com/create?query=param의 호스트 이름은 sheets.google.com이고 경로는 /create입니다.

백엔드는 호스트 이름과 경로를 다양한 방식으로 해석할 수 있습니다. 모호성을 없애기 위해 IAP는 정책을 확인할 때 호스트 이름과 경로 문자열을 정규화합니다.

요청에 비정규화된 경로가 있는 경우 IAP는 두 가지 정책 검사를 수행합니다. 비정규화된 경로가 정책 검사를 통과하면 IAP는 경로를 정규화하고 두 번째 정책 검사가 수행됩니다. 비정규화된 경로와 정규화된 경로가 모두 정책 검사를 통과하면 액세스 권한이 부여됩니다.

예를 들어 요청에 /internal;some_param/admin 경로가 있으면 IAP는 먼저 정규화되지 않은 경로(/internal)에서 정책 검사를 수행합니다. 해당 검사에 통과하면 IAP는 정규화된 경로(/internal/admin)에서 두 번째 정책 검사를 수행합니다.

호스트 이름

호스트 이름 정규화에는 다음이 포함됩니다.

  • 마침표 제거
  • 소문자로 바꾸기
  • ASCII로 변환

ASCII가 아닌 문자를 포함하는 호스트 이름은 Punycode를 통해 추가로 정규화됩니다. 일치 항목을 만들려면 Punycode를 사용하여 호스트 이름 문자열을 정규화해야 합니다.

호스트 이름 문자열을 Punycode로 정규화하려면 Punycoder와 같은 변환기를 사용하세요.

다음은 정규화된 호스트 이름의 예시입니다.

  • FOO.comfoo.com으로 정규화되었습니다.
  • café.frxn--caf-dma.fr로 정규화되었습니다.

경로

경로 정규화에는 다음이 포함됩니다.

  • 경로 매개변수 삭제
  • 절대 경로에 대한 상대 경로 결정

경로 매개변수에는 ;에서 다음 / 또는 경로 끝까지의 모든 문자가 포함됩니다.

..;으로 시작하는 경로 섹션이 포함된 요청은 유효하지 않은 것으로 간주됩니다. 예를 들어, /..;bar//bar/..;/HTTP 400: Bad Request 오류를 반환합니다.

다음은 정규화된 경로의 예시입니다.

  • /internal;some_param/admin/internal/admin으로 정규화되었습니다.
  • /a/../b/b로 정규화되었습니다.
  • /bar;param1/baz;baz;param2/bar/baz로 정규화되었습니다.

하위 도메인 끝 부분

request.host.endsWith("google.com")로 설정된 정책은 sub_domain.google.comtestgoogle.com과 모두 일치합니다. google.com으로 끝나는 하위 도메인에만 정책을 제한하는 경우 정책을 request.host.endsWith(".google.com")로 설정합니다.