Riautenticazione IAP

La riautenticazione IAP consente ai proprietari o agli Google Cloud amministratori di servizi e applicazioni 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 e di limitare il tempo di accesso a un servizio o a un'applicazione protetti da IAP prima che sia richiesta l'autenticazione.

La riautenticazione IAP (o riautenticazione) è progettata per applicare i criteri di riautenticazione per i servizi e le applicazioni (o app) protetti da IAP. Utilizzando questo servizio, puoi applicare i criteri di riautenticazione per i servizi e le applicazioni critici che gestiscono informazioni riservate. Ad esempio, puoi specificare che gli utenti che accedono a un'applicazione RU critica devono ripetere l'autenticazione ogni ora utilizzando un secondo fattore.

Metodi di riautenticazione supportati

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

  • Accesso: gli utenti finali ripetono l'autenticazione utilizzando le proprie credenziali di accesso.
  • Token di sicurezza: gli utenti finali ripetono l'autenticazione utilizzando il token di sicurezza configurato.
  • A due fattori registrato: gli utenti finali ripetono l'autenticazione utilizzando uno dei loro due fattori registrati.

Per ulteriori informazioni, vedi IapSettings.

Configurare un criterio di riautenticazione

Le reauthSettings sono incluse in IapSettings e possono essere impostate 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 criteri che puoi utilizzare per impostare la riautenticazione:

  • Minimo: se il tipo di criterio è impostato su MINIMUM su una risorsa, ad esempio un' organizzazione, quando valuti 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 è costituito dalle impostazioni non vuote della risorsa di livello superiore. In caso contrario, l'unione utilizza la durata della sessione più breve e il metodo di riautenticazione con priorità più alta tra le due risorse. Il tipo di criterio unito risultante è impostato su MINIMUM.

  • Predefinito: se il tipo di criterio è impostato su DEFAULT su una risorsa, ad esempio un'organizzazione, quando valuti 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 criteri, il processo di valutazione viene ripetuto per determinare le reauthSettings per il servizio o l'applicazione di destinazione. Le reauthSettings effettive a qualsiasi livello sono determinate come segue:

  • Ereditarietà: le impostazioni della risorsa di livello superiore vengono unite a quelle della risorsa di livello inferiore.

  • Regole di unione: se la risorsa di livello inferiore non ha impostazioni di riautenticazione specifiche, eredita le impostazioni del 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 priorità più alta.
    • La priorità è Secure key (più alta), Enrolled second factors (media) e Login (più bassa).
  • Tipo di criterio risultante: il tipo di criterio delle impostazioni unite è MINIMUM.

Gli esempi seguenti mostrano le impostazioni prima e dopo la valutazione. Durante la valutazione, le reauthSettings della cartella e dell'organizzazione 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 le reauthSettings del servizio o dell'applicazione.

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 criterio di ogni risorsa è impostato su DEFAULT, vengono utilizzate le reauthSettings del servizio o dell'applicazione.

MaxAge

Utilizza il parametro maxAge per specificare la frequenza con cui un utente finale deve ripetere l'autenticazione, indicata in secondi. 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 per maxAge è 300 secondi, ovvero cinque minuti.

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

Console

  1. Vai alla pagina IAP.
    Vai alla pagina di 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, quindi 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 l'impostazione di un criterio 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 un criterio di riautenticazione sulle risorse di un'organizzazione, esegui questo comando:

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

Per impostare un criterio di riautenticazione sulle risorse 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 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, organization o folder.
  • SERVICE: il nome del servizio. Questo parametro è facoltativo quando resource-type è impostato su compute o app-engine.
  • VERSION: il nome della versione. Questo parametro non è applicabile per il tipo di risorsa compute ed è facoltativo per il tipo di risorsa 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 name dall'output. Avrai bisogno del 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. Le IapSettings verranno aggiornate.

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 riautenticazioni frequenti per le applicazioni sullo 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 un criterio di riautenticazione IAP. Dopo una riautenticazione, IAP imposta un cookie su example.com perché è il 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 richiedono all'utente di ripetere l'autenticazione finché le credenziali sono valide.

Per gli URL come myapp.appspot.com, appspot.com è un dominio pubblico, quindi 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 ripetere l'autenticazione degli 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 riautenticazione.
  • La riautenticazione non funziona con il tipo di membro di Identity and Access Management allUsers.
  • Le identità esterne, come OAuth e SAML, non sono supportate con la riautenticazione.
  • Le identità della federazione delle identità per la forza lavoro non sono supportate per la riautenticazione IAP.