Prerequisiti
Questa pagina presuppone che tu abbia già:
Configurazione dell'autenticazione
Per autenticarti con un account di servizio:
Aggiungi quanto segue al
@Apio all'annotazione del metodo:- Aggiungi un parametro
authenticatorsall'annotazione, impostato sul valore{EspAuthenticator.class}. - Aggiungi un parametro
issuerscontenente un@ApiIssuer. - Aggiungi un parametro
issuerAudiencescontenente un valore@ApiIssuerAudienceimpostato sull'emittente dell'account di servizio e sul tuo segmento di pubblico.
Ad esempio:
@Api( name = "echo", version = "v1", authenticators = {EspAuthenticator.class}, issuers = { @ApiIssuer( name = "serviceAccount", issuer = "YOUR_SERVICE_ACCOUNT_EMAIL", jwksUri = "https://www.googleapis.com/robot/v1/metadata/x509/YOUR_SERVICE_ACCOUNT_EMAIL") }, issuerAudiences = { @ApiIssuerAudience(name = "serviceAccount", audiences = "YOUR_AUDIENCE") })- Sostituisci
echocon il nome della tua API. - Sostituisci
v1con la versione dell'API. - Sostituisci
YOUR_SERVICE_ACCOUNT_EMAILcon l'email del tuo account di servizio. - Sostituisci
YOUR_AUDIENCEcon il valore nel campoaudinviato dal servizio chiamante.
- Aggiungi un parametro
Nel codice di implementazione dell'API, importa
Users:import com.google.api.server.spi.auth.common.User;In ogni metodo API in cui vuoi verificare l'autenticazione corretta, controlla la presenza di un
Uservalido e genera un'eccezione se non è presente, come mostrato in questa definizione di metodo di esempio:@ApiMethod(httpMethod = ApiMethod.HttpMethod.GET) public Email getUserEmail(User user) throws UnauthorizedException { if (user == null) { throw new UnauthorizedException("Invalid credentials"); } Email response = new Email(); response.setEmail(user.getEmail()); return response; }Distribuisci l'API . Devi eseguire nuovamente il deployment dell'API ogni volta che aggiungi nuovi client.