API Users per servizi in bundle legacy

L'API Users consente a un'applicazione di:

  • Rileva se l'utente corrente ha eseguito l'accesso.
  • Reindirizza l'utente alla pagina di accesso appropriata per eseguire l'accesso.
  • Chiedi all'utente della tua applicazione di creare un nuovo Account Google, se non ne ha già uno.

Mentre un utente ha eseguito l'accesso all'applicazione, l'app può accedere ai suoi . L'app può anche rilevare se l'utente corrente è un amministratore (chiamato anche "utente amministratore"), semplificando l'implementazione delle aree dell'app riservate agli amministratori. A i contenuti del pacchetto user, consulta le Riferimento pacchetto user.

Autenticazione degli utenti in Go 1.11

L'esempio seguente saluta un utente che ha eseguito l'accesso all'app con un messaggio personalizzato e un link per uscire. Se l'utente non ha eseguito l'accesso, l'app offre un link alla pagina di accesso per gli Account Google.

import (
	"fmt"
	"net/http"

	"google.golang.org/appengine"
	"google.golang.org/appengine/user"
)

func welcome(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Content-type", "text/html; charset=utf-8")
	ctx := appengine.NewContext(r)
	u := user.Current(ctx)
	if u == nil {
		url, _ := user.LoginURL(ctx, "/")
		fmt.Fprintf(w, `<a href="%s">Sign in or register</a>`, url)
		return
	}
	url, _ := user.LogoutURL(ctx, "/")
	fmt.Fprintf(w, `Welcome, %s! (<a href="%s">sign out</a>)`, u, url)
}

Applicazione dell'accesso e dell'accesso amministrativo con app.yaml

Se hai pagine che richiedono l'accesso tramite l'autenticazione dell'utente, puoi applicare questa impostazione nel tuo file app.yaml.

La configurazione del gestore può anche richiedere che l'utente abbia un ruolo amministratore registrato dell'applicazione; ovvero l'utente deve disporre Visualizzatore, Editor, Proprietario o Amministratore App Engine role. In questo modo è facile creare sezioni del sito riservate agli amministratori, senza dover implementare un meccanismo di autorizzazione separato.

Per scoprire come configurare l'autenticazione per gli URL, scopri come richiedere l'accesso o nello stato di amministratore Riferimento app.yaml.

OAuth in Go

Oltre alle modalità di autenticazione utente standard, gli utenti possono essere identificati alla tua app tramite OAuth. OAuth è un protocollo che consente a un utente di concedere a una terza parte un'autorizzazione limitata ad accedere a un'applicazione web per suo conto, senza condividere le sue credenziali (nome utente e password) con la terza parte. Puoi trovare ulteriori informazioni sull'API OAuth, inclusa l'interazione richiesta dai client, nella documentazione di OAuth.

Tieni presente che l'utilizzo di OAuth per identificare gli utenti è completamente ortogonale alle modalità di autenticazione utente standard. Ad esempio, le pagine contrassegnate con login: required o login: admin rifiuteranno di caricarsi se l'utente è autenticato solo tramite OAuth.

Ecco un semplice esempio di accesso alle informazioni utente OAuth in un gestore delle richieste Go:

import (
	"fmt"
	"net/http"

	"google.golang.org/appengine"
	"google.golang.org/appengine/user"
)

func welcomeOAuth(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)
	u, err := user.CurrentOAuth(ctx, "")
	if err != nil {
		http.Error(w, "OAuth Authorization header required", http.StatusUnauthorized)
		return
	}
	if !u.Admin {
		http.Error(w, "Admin login only", http.StatusUnauthorized)
		return
	}
	fmt.Fprintf(w, `Welcome, admin user %s!`, u)
}

Opzioni di autenticazione

La tua app può autenticare gli utenti utilizzando una delle seguenti opzioni:

  • Un account Google
  • Un account nel tuo dominio Google Workspace

Scelta di un'opzione di autenticazione

Dopo aver creato l'app, puoi scegliere l'opzione di autenticazione che vuoi utilizzare. Per impostazione predefinita, l'app utilizzerà gli Account Google per l'autenticazione. Per scegliere un'altra opzione, ad esempio il dominio Google Workspace, vai alla pagina delle impostazioni del progetto nella console Google Cloud e fai clic su Modifica. Nella sezione Autenticazione Google seleziona il tipo di autenticazione desiderato e fai clic su Salva.

Accedere e uscire

Un'applicazione può rilevare se un utente ha eseguito l'accesso con l'opzione di autenticazione scelta per l'app. Se l'utente non ha eseguito l'accesso, l'app può indirizzarlo agli Account Google per accedere o creare un nuovo Account Google. L'app ottiene l'URL della pagina di accesso chiamando un metodo dell'API Users. L'app può visualizzare questo URL sotto forma di link oppure può inviare un reindirizzamento HTTP al URL quando l'utente visita una pagina che richiede l'autenticazione.

Se la tua app utilizza Account Google o Google Workspace per l'autenticazione, il nome della tua applicazione viene visualizzato nella pagina di accesso quando l'utente accede alla tua applicazione. Il nome mostrato è il nome dell'applicazione che hai specificato durante la registrazione dell'applicazione. Puoi modificare questo nome nel campo Nome dell'applicazione della pagina Credenziali della console Google Cloud.

Una volta che l'utente ha eseguito l'accesso o creato un Account Google, viene reindirizzato alla tua applicazione. L'app fornisce l'URL di reindirizzamento al metodo che genera l'URL di accesso.

L'API Users include un metodo per generare un URL per uscire dall'app. L'URL di uscita scollega l'utente dall'app, quindi reindirizza all'URL dell'app senza visualizzare nulla.

Un utente non accede a un'applicazione finché non gli viene richiesto dall'app di inserire l'indirizzo email e la password del suo account. Ciò vale anche se l'utente ha eseguito l'accesso ad altre applicazioni utilizzando il proprio account Google.

Accesso ai dati dell'account

Quando un utente accede a un'app, l'app può accedere all'indirizzo email dell'account per ogni richiesta effettuata dall'utente. L'app può anche accedere a un ID utente che identifica l'utente in modo univoco, anche se l'utente cambia l'indirizzo email del proprio account.

L'app può anche determinare se l'utente corrente è un amministratore per l'app. Un utente amministratore è un utente con il ruolo di visualizzatore, editor, proprietario o amministratore del motore dell'app. Puoi usare questa funzionalità per creare funzionalità amministrative per l'app, anche se ma non devi autenticare altri utenti. Le API Go, Java, PHP e Python lo rendono facile da configurare come "solo amministratore".

Account Google e server di sviluppo

Il server di sviluppo simula il sistema degli Account Google utilizzando una schermata di accesso falsa. Quando l'applicazione chiama l'API Users per ottenere l'URL della schermata di accesso, l'API restituisce un URL speciale del server di sviluppo che richiede un indirizzo email, ma non una password. Puoi digitare qualsiasi indirizzo email in questo prompt e l'app si comporterà come se avessi eseguito l'accesso con un account con quell'indirizzo.

La falsa schermata di accesso include anche una casella di controllo che indica se l'account falso è un amministratore; ovvero se l'account ha Visualizzatore, Editor, Proprietario o Amministratore App Engine role. Se selezioni questa casella, l'app si comporterà come se avessi eseguito l'accesso utilizzando con un account amministratore di livello inferiore.

Allo stesso modo, l'API Users restituisce un URL di uscita che annulla l'accesso fasullo.