Requisitos previos
En esta página, se supone que ya:
Cómo configurar la autenticación
Para autenticar con una cuenta de servicio, haz lo siguiente:
Agrega lo siguiente a tu anotación del método o
@Api
:- Agrega un parámetro
authenticators
a tu anotación, configurado como el valor{EspAuthenticator.class}
. - Agrega un parámetro
issuers
que contenga un@ApiIssuer
. - Agrega un parámetro
issuerAudiences
que contenga un@ApiIssuerAudience
para la entidad emisora de la cuenta de servicio y tu público.
Por ejemplo:
@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") })
- Reemplaza
echo
por el nombre de tu API. - Reemplaza
v1
por tu versión de API. - Reemplaza
YOUR_SERVICE_ACCOUNT_EMAIL
por el correo electrónico de tu cuenta de servicio. - Reemplaza
YOUR_AUDIENCE
por el valor en el campoaud
que se envía en el servicio en el que se realiza la llamada.
- Agrega un parámetro
En tu código de implementación de la API, importa
Users
con el siguiente comando:import com.google.api.server.spi.auth.common.User;
En cada método de API donde quieras verificar la autenticación correcta, comprueba si hay un
User
válido y arroja una excepción si no hay uno, como se muestra en la definición del método de muestra:@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; }
Implementa la API. Tienes que volver a implementar la API cada vez que agregues clientes nuevos.