Prérequis
Cette page suppose que vous avez déjà :
Configurer l'authentification
Pour vous authentifier avec un compte de service :
Ajoutez les éléments suivants à votre annotation de méthode ou
@Api
:- Ajoutez à l'annotation un paramètre
authenticators
défini sur la valeur{EspAuthenticator.class}
. - Ajoutez un paramètre
issuers
contenant un élément@ApiIssuer
. - Ajoutez un paramètre
issuerAudiences
contenant un élément@ApiIssuerAudience
défini sur l'émetteur du compte de service et votre audience.
Exemple :
@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") })
- Remplacez
echo
par le nom de votre API. - Remplacez
v1
par votre version de l'API. - Remplacez
YOUR_SERVICE_ACCOUNT_EMAIL
par l'adresse e-mail de votre compte de service. - Remplacez
YOUR_AUDIENCE
par la valeur du champaud
envoyé par le service appelant.
- Ajoutez à l'annotation un paramètre
Dans le code de mise en œuvre de l'API, importez
Users
:import com.google.api.server.spi.auth.common.User;
Dans chaque méthode API pour laquelle vous souhaitez vérifier que l'authentification est appropriée, recherchez un élément
User
valide. S'il n'y en a pas, générez une exception comme indiqué dans cet exemple de définition de méthode :@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; }
Déployez l'API. Vous devez la redéployer à chaque ajout de nouveaux clients.