啟用 IAP 重新驗證設定後,服務和應用程式擁有者或Google Cloud 管理員可要求經過驗證的使用者在指定時間後重新驗證,才能存取受 IAP 保護的服務或應用程式。這項設定會限制使用者可以存取 IAP 保護的服務或應用程式,直到系統要求他們再次驗證為止。
IAP 重新驗證功能旨在針對受 IAP 保護的服務和應用程式,強制執行重新驗證政策。您可以針對處理機密資訊的重要服務和應用程式執行這項操作。舉例來說,您可以指定使用者在每小時使用第二因素驗證,才能存取重要人力資源應用程式。
支援的重新驗證方法
您可以使用下列方法管理重新驗證設定:
- 登入:IAP 會強制重新驗證受保護的應用程式,使用者必須重新登入。
- 安全金鑰:使用者必須使用已設定的安全金鑰進行雙重驗證。
- 已註冊的雙重驗證:使用者必須透過其中一種已註冊的雙重驗證方法重新驗證。
詳情請參閱 IapSettings。
設定重新驗證政策
reauthSettings
是 IapSettings
的一部分,因此可在資源階層中的任何資源類型上設定。您可以在機構、資料夾、專案或服務層級,對服務或應用程式設定 reauthSettings
,套用限制。舉例來說,您可以將機構中所有應用程式的會話長度限制為最多一小時,也可以將限制套用至特定應用程式。
您可以使用兩種政策類型設定重新驗證:
最低要求:如果資源 (例如機構) 的政策類型設為
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 參數指定使用者必須重新驗證的頻率,以秒為單位。舉例來說,如要設定一小時重新驗證政策,請將秒數設為 3600,如以下範例所示:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
maxAge
的最小值為五分鐘。
如要設定重新驗證政策,請完成下列步驟。
主控台
- 前往「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 會在使用者的瀏覽器上建立 Cookie。為避免使用者在使用類似應用程式時,需要過於頻繁地重新驗證,Cookie 會設在頂層私人網域,並對整個私人層級網域有效。
舉例來說,foo.example.com
是受 IAP 保護的資源,並設有 IAP 重新驗證政策。重新驗證成功後,IAP 會在 example.com
上設定 Cookie,因為這是頂層私人網域。來自相同頂層私人網域的應用程式 (例如 bar.example.com
) 會使用相同的重新驗證憑證,且只要憑證有效,就不會提示使用者重新驗證。
請注意,對於 myapp.appspot.com
這類網址,appspot.com
是公開網域,因此頂層私人網域為 myapp.appspot.com
。
已知限制
- 重新驗證功能僅支援瀏覽器流程。不支援程式輔助的使用者帳戶存取權。舉例來說,行動和電腦版應用程式無法重新驗證使用者,因為無法存取需要重新驗證的資源。
- 服務帳戶和 IAP-TCP 不必符合重新驗證規定。
- 重新驗證不適用於 IAM 成員類型
allUsers
。 - 透過 Identity Platform 的外部身分不支援重新驗證,因為無法存取需要重新驗證的資源。