La riautenticazione IAP consente ai proprietari di servizi e applicazioni o agliGoogle Cloud amministratori di richiedere agli utenti finali autenticati di ripetere l'autenticazione dopo un determinato periodo di tempo quando accedono a un servizio o a un'applicazione protetti da IAP. Limita l'intervallo di tempo per cui un utente può accedere al servizio o all'applicazione protetti da IAP prima che gli venga chiesto di autenticarsi di nuovo.
La riautenticazione IAP è progettata per applicare le norme di riautenticazione per servizi e applicazioni protetti da IAP. Potresti farlo per servizi e applicazioni critici che gestiscono informazioni riservate. Ad esempio, puoi specificare che gli utenti che accedono a un'applicazione RU critica si autentichino nuovamente ogni ora utilizzando un secondo fattore.
Metodi di riautenticazione supportati
Per gestire le impostazioni di riautenticazione, puoi utilizzare i seguenti metodi:
- Accesso: IAP forza la riautenticazione dell'applicazione protetta e gli utenti devono accedere di nuovo.
- Chiave sicura: gli utenti finali devono eseguire nuovamente l'autenticazione utilizzando l'autenticazione a due fattori basata su token di sicurezza configurato.
- Autenticazione a due fattori registrata: gli utenti finali devono eseguire nuovamente l'autenticazione utilizzando uno dei metodi di autenticazione a due fattori registrati.
Per ulteriori informazioni, vedi IapSettings.
Configurare un criterio di riautenticazione
reauthSettings
fanno parte di IapSettings
e, in quanto tali, possono essere impostati su qualsiasi tipo di risorsa nella gerarchia delle risorse. Puoi impostare reauthSettings
su un servizio o un'applicazione a livello di organizzazione, cartella, progetto o servizio per applicare le limitazioni. Ad esempio, puoi limitare la durata della sessione a un massimo di un'ora per tutte le applicazioni di un'organizzazione o per un'applicazione specifica.
Esistono due tipi di norme che puoi utilizzare per impostare la riautenticazione:
Minimo: se il tipo di criterio è impostato su
MINIMUM
per una risorsa, ad esempio un'organizzazione, quando vengono valutate le impostazioni di riautenticazione per la risorsa di livello inferiore, ad esempio una cartella, le due impostazioni vengono unite. Se la risorsa di livello inferiore non ha impostazioni di riautenticazione, il risultato dell'unione sono le impostazioni non vuote della risorsa di livello superiore. In caso contrario, l'unione prende la durata della sessione più breve e il metodo di riautenticazione con la precedenza più alta tra le due risorse. Il tipo di policy sarà sempreMINIMUM
. Le impostazioni di riautenticazione unite verranno utilizzate per l'unione con le impostazioni di riautenticazione della risorsa di livello inferiore successiva, ad esempio un progetto.L'ordine di precedenza dei tre metodi supportati, dal più alto al più basso, è
Secure key
,Enrolled second factors
eLogin
.Predefinito: se il tipo di policy è impostato su
DEFAULT
per una risorsa, ad esempio un'organizzazione, quando viene valutata l'impostazione di riautenticazione per la risorsa di livello inferiore, ad esempio una cartella, viene utilizzata l'impostazione della risorsa di livello inferiore, se configurata; in caso contrario, viene applicata l'impostazione di riautenticazione della risorsa di livello superiore.
Per entrambi i tipi di norme, la procedura di valutazione viene ripetuta per determinare il reauthSettings
per il servizio o l'applicazione di destinazione.
I seguenti esempi mostrano le impostazioni prima e dopo la valutazione. Durante la valutazione, la cartella e l'organizzazione reauthSettings
vengono unite, il che comporta la modifica del tipo di policy della cartella in MINIMUM
. Le impostazioni unite vengono quindi utilizzate per l'unione con il servizio o l'applicazione reauthSettings
.
Organizzazione IapSettings
:
accessSettings:
reauthSettings:
method: "ENROLLED_SECOND_FACTORS"
maxAge: "3600s"
policyType: "MINIMUM"
Cartella IapSettings
:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "1200s"
policyType: "DEFAULT"
Servizio o applicazione IapSettings
:
accessSettings:
reauthSettings:
method: "SECURE_KEY"
maxAge: "7200s"
policyType: "DEFAULT"
Impostazioni dopo l'unione:
Organizzazione IapSettings
:
accessSettings:
reauthSettings:
method: "ENROLLED_SECOND_FACTORS"
maxAge: "3600s"
policyType: "MINIMUM"
Cartella IapSettings
:
accessSettings:
reauthSettings:
method: "ENROLLED_SECOND_FACTORS"
maxAge: "1200s"
policyType: "MINIMUM"
Servizio o applicazione IapSettings
:
accessSettings:
reauthSettings:
method: "SECURE_KEY"
maxAge: "1200s"
policyType: "MINIMUM"
Nell'esempio, se il tipo di criterio di ogni risorsa è impostato su DEFAULT
, viene utilizzato reauthSettings
del servizio o dell'applicazione.
MaxAge
Utilizza il parametro MaxAge per specificare la frequenza con cui un utente finale deve eseguire nuovamente l'autenticazione, indicata in secondi. Ad esempio, per impostare una policy di riautenticazione di un'ora, imposta i secondi su 3600, come mostrato nell'esempio seguente:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
Il valore minimo per maxAge
è di cinque minuti.
Per impostare una policy di riautenticazione:
Console
- Vai alla pagina IAP.
Vai alla pagina Identity-Aware Proxy Seleziona un progetto, poi la risorsa su cui vuoi impostare un criterio di riautenticazione.
Apri le Impostazioni per la risorsa e, in Criterio di riautenticazione, seleziona Configura riautenticazione.
Specifica le impostazioni di riautenticazione e poi fai clic su Salva.
gcloud
Puoi impostare un criterio di riautenticazione per risorse e servizi a livello di organizzazione, progetto e cartella. Di seguito sono riportati alcuni comandi di esempio per impostare una norma di riautenticazione.
Per ulteriori informazioni, vedi gcloud iap settings set
.
Esegui questo comando:
gcloud iap settings set SETTING_FILE [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
Per impostare una policy di riautenticazione sulle risorse all'interno di un'organizzazione, esegui questo comando:
gcloud iap settings set SETTING_FILE --organization=ORGANIZATION
Per impostare una policy di riautenticazione sulle risorse all'interno di una cartella, esegui questo comando:
gcloud iap settings set SETTING_FILE --folder=FOLDER
Per impostare una policy di riautenticazione su tutte le risorse di tipo web all'interno di un progetto, esegui questo comando:
gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap_web
Per impostare una policy di riautenticazione su un servizio App Engine all'interno di un progetto, esegui questo comando:
gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=app-engine --service=SERVICE
Dove SETTING_FILE
è:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
Sostituisci quanto segue:
- FOLDER: l'ID cartella.
- ORGANIZATION: l'ID organizzazione.
- PROJECT: l'ID progetto.
- RESOURCE_TYPE: il tipo di risorsa IAP. Deve essere
app-engine
,iap_web
,compute
,organization
ofolder
. - SERVICE: il nome del servizio. Questa opzione è facoltativa quando
resource-type
ècompute
oapp-engine
. - VERSION: il nome della versione. Questo non è applicabile per
compute
ed è facoltativo quandoresource-type
èapp-engine
.
API
Esegui questo comando per preparare un file iap_settings.json
. Aggiorna i valori in base alle esigenze.
cat << EOF > iap_settings.json { "access_settings": { "reauth_settings": { "method": "LOGIN", "maxAge": "300s", "policy_type": "DEFAULT" } } } EOF
Recupera il nome della risorsa eseguendo il comando gcloud iap settings get
. Copia il campo del nome dall'output. Ti servirà nel passaggio successivo.
gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]
Sostituisci RESOURCE_NAME
nel comando seguente con il nome del passaggio precedente. IapSettings
verrà aggiornato.
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"
Informazioni sulle credenziali di riautenticazione
Dopo una riautenticazione riuscita, IAP crea un cookie sul browser dell'utente finale. Per evitare che gli utenti debbano autenticarsi troppo spesso quando utilizzano app simili, il cookie viene impostato sul dominio privato di primo livello ed è valido per l'intero dominio privato di primo livello.
Ad esempio, foo.example.com
è una risorsa protetta da IAP
e ha una policy di riautenticazione IAP. Dopo una riautenticazione
riuscita, IAP imposta un cookie su example.com
in quanto
si tratta del dominio privato di primo livello. Le app dello stesso dominio privato di primo livello,
ad esempio bar.example.com
, utilizzano le stesse credenziali di riautenticazione e non
chiedono all'utente di eseguire nuovamente l'autenticazione, purché le credenziali siano valide.
Tieni presente che per gli URL come myapp.appspot.com
, appspot.com
è un dominio pubblico, pertanto il dominio privato di primo livello è myapp.appspot.com
.
Limitazioni note
- La riautenticazione è supportata solo per i flussi del browser. L'accesso programmatico all'account utente non è supportato. Ad esempio, le app mobile e desktop non hanno modo di autenticare nuovamente gli utenti, perché le risorse che richiedono la riautenticazione sono inaccessibili.
- I service account e IAP-TCP sono esenti dai requisiti di riautenticazione.
- La riautenticazione non funziona con il tipo di membro Identity and Access Management
allUsers
. - Le identità esterne che utilizzano Identity Platform non sono supportate con la riautenticazione, perché le risorse che la richiedono non sono accessibili.
- Le identità della federazione delle identità della forza lavoro non sono supportate per la riautenticazione IAP.