La riautenticazione IAP consente ai proprietari o agli amministratoriGoogle Cloud di servizi e applicazioni di richiedere agli utenti finali autenticati di ripetere l'autenticazione dopo un periodo di tempo specificato quando accedono a un servizio o a un'applicazione protetti da IAP e di limitare il tempo di accesso di un utente a un servizio o a un'applicazione protetti da IAP prima che sia richiesta l'autenticazione.
La riautenticazione (o reauth) di IAP è progettata per applicare le policy di riautenticazione per i servizi e le applicazioni (o app) protetti da IAP. Utilizzando questo servizio, puoi applicare policy di riautenticazione per servizi e applicazioni critici che gestiscono informazioni riservate. Ad esempio, puoi specificare che gli utenti che accedono a un'applicazione RU critica debbano autenticarsi nuovamente ogni ora utilizzando un secondo fattore.
Metodi di riautenticazione supportati
Per gestire le impostazioni di riautenticazione, puoi utilizzare i seguenti metodi:
Accesso: gli utenti finali eseguono nuovamente l'autenticazione utilizzando le proprie credenziali di accesso.
Token di sicurezza: gli utenti finali eseguono nuovamente l'autenticazione utilizzando il token di sicurezza configurato.
A due fattori registrato: gli utenti finali eseguono nuovamente l'autenticazione utilizzando uno dei fattori secondari registrati.
Per ulteriori informazioni, consulta IapSettings.
Configura un criterio di riautenticazione
reauthSettings è incluso in IapSettings e può essere impostato su qualsiasi tipo di risorsa nella gerarchia delle risorse. Puoi impostare reauthSettings 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 policy che puoi utilizzare per impostare la riautenticazione:
Minimo: se il tipo di policy è impostato su
MINIMUMper una risorsa, ad esempio un'organizzazione, quando vengono valutate le impostazioni di riautenticazione sulla 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 adotta la durata della sessione più breve e il metodo di riautenticazione con precedenza più alta tra le due risorse. Il tipo di policy unita risultante è impostato suMINIMUM.Predefinito: se il tipo di policy è impostato su
DEFAULTper una risorsa, ad esempio un'organizzazione, quando viene valutata l'impostazione di riautenticazione sulla 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 policy, il processo di valutazione viene ripetuto per determinare il reauthSettings per il servizio o l'applicazione di destinazione. Le reauthSettings effettive a qualsiasi livello vengono determinate come segue:
Ereditarietà: le impostazioni della risorsa di livello superiore vengono unite alle impostazioni della risorsa di livello inferiore.
Regole di unione: se la risorsa di livello inferiore non ha impostazioni di riautenticazione specifiche, eredita le impostazioni dal livello superiore.
Se entrambi i livelli hanno
reauthSettings, il risultato unito utilizza quanto segue:La durata della sessione più breve.
Il metodo di riautenticazione con la precedenza più alta.
La precedenza è
Secure key(più alta),Enrolled second factors(media) eLogin(più bassa).
Tipo di policy risultante: il tipo di policy delle impostazioni unite è
MINIMUM.
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 poi 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"
In questo esempio, se il tipo di policy di ogni risorsa è impostato su DEFAULT, viene utilizzato il 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 autenticazione di un'ora, imposta
seconds su 3600, come mostrato nell'esempio seguente:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
Il valore minimo per maxAge è 300 secondi, ovvero cinque minuti.
Per impostare una policy di autenticazione, completa i seguenti passaggi.
Console
Seleziona un progetto, quindi seleziona la risorsa su cui vuoi impostare una policy di autenticazione.
Apri le Impostazioni della risorsa e, nella sezione Policy di riautenticazione, seleziona Configura la riautenticazione.
Specifica le impostazioni di riautenticazione e poi fai clic su Salva.
gcloud
Puoi impostare una policy di riautenticazione su risorse e servizi a livello di organizzazione, progetto e cartella. Di seguito sono riportati alcuni esempi di comandi per impostare una policy di autenticazione.
Per saperne di più, consulta 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 autenticazione sulle risorse di un'organizzazione, esegui il seguente comando:
gcloud iap settings set SETTING_FILE --organization=ORGANIZATION
Per impostare una policy di autenticazione sulle risorse all'interno di una cartella, esegui il seguente comando:
gcloud iap settings set SETTING_FILE --folder=FOLDER
Per impostare una policy di autenticazione 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 autenticazione 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 della cartella.
ORGANIZATION: l'ID organizzazione.
PROJECT: l'ID progetto.
RESOURCE_TYPE: il tipo di risorsa IAP. Deve essere
app-engine,iap_web,compute,organizationofolder.SERVICE: il nome del servizio. Questo campo è facoltativo quando
resource-typeè impostato sucomputeoapp-engine.VERSION: il nome della versione. Questo non è applicabile al tipo di risorsa
computeed è facoltativo per il tipo di risorsaapp-engine.
API
Esegui il comando seguente per preparare un file iap_settings.json. Aggiorna i valori in base alle tue 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à il nome 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 la riautenticazione, IAP crea un cookie nel browser dell'utente finale. Per evitare frequenti riautenticazioni per le applicazioni nello stesso dominio, il cookie viene impostato sul dominio privato di primo livello ed è valido per l'intero dominio.
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 perché si tratta del dominio privato di primo livello. Le applicazioni dello stesso dominio privato di primo livello, ad esempio bar.example.com, utilizzano le stesse credenziali di riautenticazione e non chiedono all'utente di riautenticarsi finché le credenziali sono valide.
Per 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 applicazioni mobile e desktop non possono riautenticare gli utenti perché le risorse che richiedono la riautenticazione non sono accessibili a queste applicazioni.
I service account e IAP-TCP sono esenti dai requisiti di autenticazione.
La riautenticazione non funziona con il tipo di membro Identity and Access Management
allUsers.Le identità esterne, come OAuth e SAML, non sono supportate con la riautenticazione.
Le identità federate per la forza lavoro non sono supportate per la riautenticazione IAP.