Riautenticazione IAP

La riautenticazione IAP consente ai proprietari di servizi e applicazioni o agli amministratori di Google Cloud di richiedere agli utenti finali autenticati di eseguire nuovamente 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 all'applicazione o al servizio protetto da IAP prima che venga chiesto di eseguire nuovamente l'autenticazione.

La riautenticazione IAP è progettata per applicare i criteri di riautenticazione per applicazioni e servizi protetti da IAP. Potresti farlo per servizi e applicazioni fondamentali che gestiscono informazioni riservate. Ad esempio, puoi specificare che gli utenti che accedono a un'applicazione RU critica ripetono l'autenticazione ogni ora utilizzando un secondo fattore.

Metodi di riautenticazione supportati

Puoi utilizzare i seguenti metodi per gestire le impostazioni di riautenticazione:

  • Accesso: IAP forza la riautenticazione dell'applicazione protetta e gli utenti devono accedere di nuovo.
  • Chiave di sicurezza: gli utenti finali devono eseguire nuovamente l'autenticazione utilizzando l'autenticazione a due fattori basata su token di sicurezza configurata.
  • Secondi fattori registrati: gli utenti finali devono eseguire nuovamente l'autenticazione utilizzando uno dei metodi di autenticazione a due fattori registrati.

Per ulteriori informazioni, vedi IapSettings.

Configura un criterio di riautenticazione

reauthSettings fanno parte di IapSettings e come tale può essere impostato 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 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 criteri che puoi utilizzare per impostare la riautenticazione:

  • Minimo: se il tipo di criterio è impostato su MINIMUM per una risorsa, ad esempio un'organizzazione, durante la valutazione delle impostazioni di riautenticazione per una 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 corrisponde alle 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 criterio sarà sempre MINIMUM. Le impostazioni di riautenticazione unite verranno utilizzate per l'unione con quelle 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 e Login.

  • Predefinito: se il tipo di criterio è impostato su DEFAULT su una risorsa, ad esempio un'organizzazione, durante la valutazione dell'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 delle risorse di livello superiore.

Per entrambi i tipi di criteri, il processo di valutazione viene ripetuto per determinare il reauthSettings per l'applicazione o il servizio 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 criterio 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 il valore reauthSettings del servizio o dell'applicazione.

MaxAge

Utilizza il parametro MaxAge, espresso in secondi, per specificare la frequenza con cui un utente finale deve eseguire nuovamente l'autenticazione. Ad esempio, per impostare un criterio 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 di maxAge è cinque minuti.

Per impostare un criterio di riautenticazione, completa i seguenti passaggi.

Console

  1. Vai alla pagina Identity-Aware Proxy.
    Vai alla pagina Identity-Aware Proxy
  2. Seleziona un progetto, quindi la risorsa su cui vuoi impostare un criterio di riautenticazione.

  3. Apri le Impostazioni della risorsa e in Criterio di riautenticazione seleziona Configura riautenticazione.

  4. Specifica le impostazioni di riautenticazione e fai clic su Salva.

gcloud

Puoi impostare un criterio di riautenticazione su risorse e servizi a livello di organizzazione, progetto e cartella. Di seguito sono riportati alcuni comandi di esempio per impostare un criterio di riautenticazione.

Per saperne di più, visita 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 un criterio di riautenticazione sulle risorse all'interno di un'organizzazione, esegui questo comando:

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

Per impostare un criterio di riautenticazione sulle risorse all'interno di una cartella, esegui questo comando:

gcloud iap settings set SETTING_FILE --folder=FOLDER

Per impostare un criterio 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 un criterio 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 si trova 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 o folder.
  • SERVICE: nome del servizio. Questa azione è facoltativa quando resource-type è compute o app-engine.
  • VERSION: il nome della versione. Non è applicabile per compute ed è facoltativa quando resource-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

Ottieni 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. I IapSettings verranno aggiornati.

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, IAP crea un cookie nel browser dell'utente finale. Per evitare che gli utenti debbano ripetere l'autenticazione troppo spesso quando utilizzano app simili, il cookie viene impostato sul dominio privato di primo livello ed è valido per l'intero dominio di livello privato.

Ad esempio, foo.example.com è una risorsa protetta da IAP e ha un criterio di riautenticazione IAP. Dopo una riautenticazione, IAP imposta un cookie su example.com perché è il 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, a condizione che siano valide.

Tieni presente che, 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 all'account utente programmatico non è supportato. Ad esempio, le app mobile e desktop non hanno modo di riautenticare gli utenti, perché le risorse che richiedono una nuova autenticazione non sono accessibili.
  • Gli account di servizio e IAP-TCP sono esenti dai requisiti di riautenticazione.
  • La riautenticazione non funziona con il tipo di membro IAM allUsers.
  • Le identità esterne tramite Identity Platform non sono supportate con la riautenticazione, perché le risorse che richiedono questa operazione non sono accessibili.