Vorbereitung
Folgende Voraussetzungen sollten erfüllt sein:
Authentifizierung konfigurieren
So authentifizieren Sie sich mit einem Dienstkonto:
Fügen Sie Folgendes in Ihre
@Api
- oder Methoden-Annotation ein:- Fügen Sie der Annotation einen
authenticators
-Parameter an, der auf den Wert{EspAuthenticator.class}
festgelegt ist. - Ergänzen Sie einen
issuers
-Parameter, der ein@ApiIssuer
enthält. - Fügen Sie einen
issuerAudiences
-Parameter an, der ein auf den Dienstkontoaussteller und Ihre Zielgruppe festgelegtes@ApiIssuerAudience
enthält.
Beispiel:
@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") })
- Ersetzen Sie
echo
durch den Namen der API. - Ersetzen Sie
v1
durch die API-Version. - Ersetzen Sie
YOUR_SERVICE_ACCOUNT_EMAIL
durch die E-Mail-Adresse Ihres Dienstkontos. - Ersetzen Sie
YOUR_AUDIENCE
durch den vom aufrufenden Dienst gesendeten Wert im Feldaud
.
- Fügen Sie der Annotation einen
Importieren Sie
Users
in den API-Implementierungscode:import com.google.api.server.spi.auth.common.User;
Prüfen Sie in jeder API-Methode, mit der Sie eine ordnungsgemäße Authentifizierung gewährleisten möchten, ob ein gültiger
User
vorhanden ist. Wenn dies nicht der Fall ist, geben Sie, wie in der folgenden Methodendefinition beispielhaft gezeigt, eine Ausnahme zurück:@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; }
Stellen Sie die API bereit. Die API muss bei jedem neu hinzugefügten Client neu bereitgestellt werden.