Requisitos previos
En esta página se da por hecho que ya has hecho lo siguiente:
Configurar la autenticación
Para autenticarte con una cuenta de servicio, sigue estos pasos:
Añade lo siguiente a tu
@Apio anotación de método:- Añada un parámetro
authenticatorsa su anotación y asígnele el valor{EspAuthenticator.class}. - Añade un parámetro
issuersque contenga un@ApiIssuer. - Añade un parámetro
issuerAudiencesque contenga un@ApiIssuerAudiencedefinido en el emisor de la cuenta de servicio y tu audiencia.
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") })- Sustituye
echopor el nombre de tu API. - Sustituye
v1por tu versión de la API. - Sustituye
YOUR_SERVICE_ACCOUNT_EMAILpor el correo de tu cuenta de servicio. - Sustituye
YOUR_AUDIENCEpor el valor del campoaudenviado por el servicio de llamada.
- Añada un parámetro
En el código de implementación de la API, importa
Users:import com.google.api.server.spi.auth.common.User;En cada método de API en el que quieras comprobar que la autenticación es correcta, comprueba que haya un
Userválido y genera una excepción si no lo hay, tal como se muestra en esta definición de método de ejemplo:@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; }Despliega la API. Debe volver a implementar la API cada vez que añada clientes nuevos.