Autenticarse con una cuenta de servicio

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:

  1. Importa la API Endpoints de App Engine en tu clase de API:

    import endpoints
    
  2. Añade un objeto de emisor para la cuenta de servicio al decorador de la API. Por ejemplo:

    @endpoints.api(
        name='echo',
        version='v1',
        issuers={'serviceAccount': endpoints.Issuer(
            'YOUR_SERVICE_ACCOUNT_EMAIL',
            'https://www.googleapis.com/robot/v1/metadata/x509/YOUR_SERVICE_ACCOUNT_EMAIL')},
        audiences={'serviceAccount': ['YOUR_AUDIENCE']})
    
    • Sustituye echo por el nombre de tu API.
    • Sustituye v1 por tu versión de la API.
    • Sustituye YOUR_SERVICE_ACCOUNT_EMAIL por el correo de tu cuenta de servicio.
    • Sustituye YOUR_AUDIENCE por el valor del campo aud enviado por el servicio de llamada.
  3. En cada método de API en el que quieras comprobar que la autenticación es correcta, busca un User válido y genera el error 401 si no lo hay, tal como se muestra en esta definición de método de ejemplo:

    user = endpoints.get_current_user()
    # If there's no user defined, the request was unauthenticated, so we
    # raise 401 Unauthorized.
    
  4. Despliega la API. Debe volver a implementar la API cada vez que añada clientes nuevos.