IAP 재인증을 사용하면 서비스 및 애플리케이션 소유자 또는 Google Cloud 관리자는 인증된 최종 사용자가 IAP로 보호되는 서비스 또는 애플리케이션에 액세스할 때 지정된 시간이 지난 후 재인증하도록 요구할 수 있습니다. IAP 보호 서비스 또는 애플리케이션에 다시 인증을 요청하기 전에 사용자가 액세스할 수 있는 기간을 제한합니다.
IAP 재인증은 IAP 보호 서비스 및 애플리케이션에 대한 재인증 정책을 시행하도록 설계되었습니다. 기밀 정보를 처리하는 중요 서비스 및 애플리케이션에 대해 이 작업을 수행할 수 있습니다. 예를 들어 중요한 HR 애플리케이션에 액세스하는 사용자가 두 번째 단계를 사용하여 매시간 재인증하도록 지정할 수 있습니다.
지원되는 재인증 방법
다음 방법에 따라 재인증 설정을 관리할 수 있습니다.
- 로그인: IAP가 보호된 애플리케이션의 재인증을 강제로 시행하며 사용자는 다시 로그인해야 합니다.
- 보안 키: 최종 사용자는 구성된 보안 키 기반 2단계 인증을 사용하여 다시 인증해야 합니다.
- 등록된 2단계: 최종 사용자는 등록된 2단계 인증 방법 중 하나를 사용하여 다시 인증해야 합니다.
자세한 내용은 IapSettings를 참조하세요.
재인증 정책 설정
reauthSettings
는 IapSettings
의 일부이므로 리소스 계층 구조의 모든 리소스 유형에 설정될 수 있습니다. 조직, 폴더, 프로젝트 또는 서비스 수준에서 서비스 또는 애플리케이션에 reauthSettings
를 설정하여 제한사항을 적용할 수 있습니다. 예를 들어 조직의 모든 애플리케이션 또는 특정 애플리케이션에 대해 세션 길이를 최대 1시간으로 제한할 수 있습니다.
재인증을 설정하는 데 사용할 수 있는 정책 유형에는 두 가지가 있습니다.
최소: 정책 유형이 리소스(예: 조직)에서
MINIMUM
로 설정된 경우 하위 수준 리소스(예: 폴더)에서 재인증 설정을 평가할 때 두 설정이 병합됩니다. 하위 수준 리소스에 재인증 설정이 없으면 병합 결과는 상위 수준 리소스의 비어 있지 않은 설정입니다. 그렇지 않으면 병합 시 두 리소스 간의 세션 시간이 짧아지고 우선순위가 더 높은 재인증 메서드가 사용됩니다. 정책 유형은 항상MINIMUM
입니다. 병합된 재인증 설정은 다음 하위 수준 리소스(예: 프로젝트) 재인증 설정과 병합하는 데 사용됩니다.지원되는 세 가지 메서드 중 우선순위가 가장 높은 것부터 가장 낮은 것까지 순서는
Secure key
,Enrolled second factors
,Login
입니다.기본값: 정책 유형이 리소스(예: 조직)에서
DEFAULT
로 설정된 경우 하위 수준 리소스(예: 폴더)에서 재인증 설정을 평가할 때 구성된 경우 하위 수준 리소스 설정이 사용됩니다. 그렇지 않으면 상위 수준의 리소스 재인증 설정이 적용됩니다.
두 정책 유형 모두 평가 프로세스가 반복되어 대상 서비스 또는 애플리케이션의 reauthSettings
가 결정됩니다.
다음 예시에서는 평가 전후의 설정을 보여줍니다. 평가 중에 폴더와 조직 reauthSettings
가 병합되어 폴더의 정책 유형이 MINIMUM
로 변경됩니다. 그런 후 병합된 설정을 사용하여 서비스 또는 애플리케이션 reauthSettings
와 병합합니다.
조직 IapSettings
:
accessSettings:
reauthSettings:
method: "ENROLLED_SECOND_FACTORS"
maxAge: "3600s"
policyType: "MINIMUM"
폴더 IapSettings
:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "1200s"
policyType: "DEFAULT"
서비스 또는 애플리케이션 IapSettings
:
accessSettings:
reauthSettings:
method: "SECURE_KEY"
maxAge: "7200s"
policyType: "DEFAULT"
병합 후 설정:
조직 IapSettings
:
accessSettings:
reauthSettings:
method: "ENROLLED_SECOND_FACTORS"
maxAge: "3600s"
policyType: "MINIMUM"
폴더 IapSettings
:
accessSettings:
reauthSettings:
method: "ENROLLED_SECOND_FACTORS"
maxAge: "1200s"
policyType: "MINIMUM"
서비스 또는 애플리케이션 IapSettings
:
accessSettings:
reauthSettings:
method: "SECURE_KEY"
maxAge: "1200s"
policyType: "MINIMUM"
이 예시에서는 모든 리소스의 정책 유형이 DEFAULT
로 설정된 경우 서비스 또는 애플리케이션의 reauthSettings
가 사용됩니다.
MaxAge
MaxAge 매개변수를 사용해서 최종 사용자가 재인증해야 하는 빈도(초)를 지정합니다. 예를 들어 1시간 재인증 정책을 설정하려면 다음 예시에 표시된 것처럼 3,600초로 설정합니다.
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
maxAge
의 최솟값은 5분입니다.
재인증 정책을 설정하려면 다음 단계를 완료하세요.
콘솔
- Identity-Aware Proxy 페이지로 이동합니다.
Identity-Aware Proxy 페이지로 이동 프로젝트를 선택한 다음 재인증 정책을 설정할 리소스를 선택합니다.
리소스의 설정을 열고 재인증 정책에서 재인증 구성을 선택합니다.
재인증 설정을 지정한 다음 저장을 클릭합니다.
gcloud
조직, 프로젝트 및 폴더 수준에서 리소스와 서비스에 대한 재인증 정책을 설정할 수 있습니다. 다음은 재인증 정책을 설정하는 몇 가지 명령어 예시입니다.
자세한 내용은 gcloud iap settings set
를 참조하세요.
다음 명령어를 실행합니다.
gcloud iap settings set SETTING_FILE [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
조직 내의 리소스에 재인증 정책을 설정하려면 다음 명령어를 실행합니다.
gcloud iap settings set SETTING_FILE --organization=ORGANIZATION
폴더 내의 리소스에 재인증 정책을 설정하려면 다음 명령어를 실행합니다.
gcloud iap settings set SETTING_FILE --folder=FOLDER
프로젝트 내의 모든 웹 유형 리소스에 재인증 정책을 설정하려면 다음 명령어를 실행합니다.
gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap_web
프로젝트 내 App Engine 서비스에 재인증 정책을 설정하려면 다음 명령어를 실행합니다.
gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=app-engine --service=SERVICE
여기서 SETTING_FILE
은 다음과 같습니다.
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
다음을 바꿉니다.
- FOLDER: 폴더 ID
- ORGANIZATION: 조직 ID
- PROJECT: 프로젝트 ID
- RESOURCE_TYPE: IAP 리소스 유형.
app-engine
,iap_web
,compute
,organization
,folder
이어야 합니다. - SERVICE: 서비스 이름.
resource-type
이compute
또는app-engine
인 경우 선택사항입니다. - VERSION: 버전 이름.
compute
에는 적용되지 않으며resource-type
이app-engine
인 경우 선택사항입니다.
API
다음 명령어를 실행하여 iap_settings.json
파일을 준비합니다. 필요에 따라 값을 업데이트합니다.
cat << EOF > iap_settings.json { "access_settings": { "reauth_settings": { "method": "LOGIN", "maxAge": "300s", "policy_type": "DEFAULT" } } } EOF
gcloud iap settings get
명령어를 실행하여 리소스 이름을 가져옵니다. 출력에서 이름 필드를 복사합니다. 다음 단계에서 이름이 필요합니다.
gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]
다음 명령어의 RESOURCE_NAME
을 이전 단계의 이름으로 바꿉니다. IapSettings
가 업데이트됩니다.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @iap_settings.json \ "https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.reauthSettings"
재인증 사용자 인증 정보 이해
재인증에 성공하면 IAP가 최종 사용자의 브라우저에 쿠키를 만듭니다. 유사한 앱을 사용할 때 사용자가 너무 자주 재인증을 수행하지 않도록 방지하기 위해 최상위 비공개 도메인에 쿠키가 설정되며, 전체 비공개 수준 도메인에 대해 유효합니다.
예를 들어 foo.example.com
은 IAP 보호 리소스이며 IAP 재인증 정책이 있습니다. 재인증이 성공하면 IAP는 최상위 수준 비공개 도메인인 example.com
에 쿠키를 설정합니다. 동일한 최상위 비공개 도메인(예: bar.example.com
)의 앱은 동일한 재인증 사용자 인증 정보를 사용하며, 사용자 인증 정보가 유효한 한 사용자에게 다시 인증하라는 메시지를 표시하지 않습니다.
myapp.appspot.com
과 같은 URL의 경우 appspot.com
은 공개 도메인이므로 최상위 비공개 도메인은 myapp.appspot.com
입니다.
알려진 제한사항
- 재인증은 브라우저 흐름에 대해서만 지원됩니다. 프로그래매틱 사용자 계정 액세스는 지원되지 않습니다. 예를 들어 모바일 및 데스크톱 앱은 재인증이 필요한 리소스에 액세스할 수 없기 때문에 사용자를 재인증할 수 있는 방법이 없습니다.
- 서비스 계정과 IAP-TCP는 재인증 요구사항에서 제외됩니다.
allUsers
IAM 구성원 유형에서는 재인증이 작동하지 않습니다.- Identity Platform을 통한 외부 ID는 재인증이 필요한 리소스에 액세스할 수 없기 때문에 재인증이 지원되지 않습니다.