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 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. Puoi farlo per servizi e applicazioni critici che gestiscono informazioni riservate. Ad esempio, puoi specificare che gli utenti che accedono a un'applicazione di RU critica debbano eseguire l'autenticazione ogni ora utilizzando un secondo fattore.

Metodi di riautenticazione supportati

Per gestire le impostazioni di autenticazione ripetuta, puoi utilizzare i seguenti metodi:

  • Accesso: l'IAP forza la re-autenticazione dell'applicazione protetta e gli utenti devono accedere di nuovo.
  • Token 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, consulta IapSettings.

Configurare un criterio di riautenticazione

reauthSettings fanno parte di IapSettings e, pertanto, 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 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 riconferma:

  • Minimo: se il tipo di criterio è impostato su MINIMUM in una risorsa, ad esempio un'organizzazione, le due impostazioni vengono unite durante la valutazione delle impostazioni di autenticazione secondaria nella risorsa di livello inferiore, ad esempio una cartella. Se la risorsa di livello inferiore non ha impostazioni di autenticazione di nuovo, il risultato dell'unione è costituito dalle impostazioni non vuote della risorsa di livello superiore. In caso contrario, l'unione prende la durata della sessione più breve e il metodo di autenticazione di priorità più elevata tra le due risorse. Il tipo di criterio sarà sempre MINIMUM. Le impostazioni di autenticazione combinate verranno utilizzate per l'unione con le impostazioni di autenticazione della risorsa di livello inferiore successiva, ad esempio un progetto.

    L'ordine di precedenza dei tre metodi supportati, dalla precedenza più alta a quella più bassa, è Secure key, Enrolled second factors e Login.

  • Valore predefinito: se il tipo di criterio è impostato su DEFAULT in una risorsa, ad esempio un'organizzazione, durante la valutazione dell'impostazione di riautenticazione nella 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 criteri, la procedura di valutazione viene ripetuta per determinare il reauthSettings per il servizio o l'applicazione di destinazione. Gli esempi seguenti mostrano le impostazioni prima e dopo la valutazione. Durante la valutazione, la cartella e l'organizzazione reauthSettings vengono unite, con la conseguente modifica del tipo di criterio 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"

Nell'esempio, se il tipo di criterio 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 la riautenticazione, indicata in secondi. Ad esempio, per impostare un criterio di autenticazione di un'ora, imposta secondi su 3600, come mostrato nell'esempio seguente:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "3600s"
    policyType: "MINIMUM"

Il valore minimo per maxAge è cinque minuti.

Per impostare un criterio di autenticazione di nuovo, completa i seguenti passaggi.

Console

  1. Vai alla pagina Identity-Aware Proxy.
    Vai alla pagina Identity-Aware Proxy
  2. Seleziona un progetto e poi la risorsa su cui vuoi impostare un criterio di autenticazione.

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

  4. Specifica le impostazioni di autenticazione secondaria e poi 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 esempi di comandi per l'impostazione di un criterio di autenticazione ripetuta.

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 un criterio di autenticazione ripetuta per le risorse all'interno di un'organizzazione, esegui il seguente comando:

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

Per impostare un criterio di autenticazione ripetuta per le risorse all'interno di una cartella, esegui il seguente comando:

gcloud iap settings set SETTING_FILE --folder=FOLDER

Per impostare un criterio di autenticazione ripetuta su tutte le risorse di tipo web all'interno di un progetto, esegui il seguente comando:

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap_web

Per impostare un criterio di autenticazione ripetuta su un servizio App Engine all'interno di un progetto, esegui il seguente 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 o folder.
  • SERVICE: il nome del servizio. Questa opzione è facoltativa quando resource-type è compute o app-engine.
  • VERSION: il nome della versione. Questo valore non è applicabile per compute ed è facoltativo quando resource-type è app-engine.

API

Esegui il comando seguente 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 seguente comando 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 di nuovo 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 nuova autenticazione riuscita, IAP imposta un cookie su example.com in quanto è il dominio privato di primo livello. Le app dello stesso dominio privato di primo livello, come bar.example.com, utilizzano le stesse credenziali di autenticazione secondaria e non richiedono all'utente di autenticarsi di nuovo, a condizione che le credenziali 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 nuova autenticazione è 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 autenticare nuovamente gli utenti, perché le risorse che richiedono la riautenticazione non sono accessibili.
  • Gli account di servizio e IAP-TCP sono esenti dai requisiti di riautenticazione.
  • La nuova autenticazione non funziona con il tipo di membro IAM allUsers.
  • Le identità esterne tramite Identity Platform non sono supportate con la nuova autenticazione perché le risorse che richiedono la nuova autenticazione non sono accessibili.