דרישות מוקדמות
במאמר הזה אנחנו יוצאים מנקודת הנחה שכבר:
הגדרת אימות
כדי לבצע אימות באמצעות חשבון שירות:
מוסיפים את הערכים הבאים ל-
@Apiאו להערת השיטה:- מוסיפים פרמטר
authenticatorsלהערה, ומגדירים אותו לערך{EspAuthenticator.class}. - מוסיפים פרמטר
issuersשמכיל@ApiIssuer. - מוסיפים פרמטר
issuerAudiencesשמכיל@ApiIssuerAudience, שמוגדר למונפק של חשבון השירות ולקהל שלכם.
לדוגמה:
@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") })- מחליפים את
echoבשם ה-API. - מחליפים את
v1בגרסת ה-API. - מחליפים את
YOUR_SERVICE_ACCOUNT_EMAILבכתובת האימייל בחשבון השירות. - מחליפים את
YOUR_AUDIENCEבערך שבשדהaudשנשלח על ידי שירות הקריאה.
- מוסיפים פרמטר
בקוד ההטמעה של ה-API, מייבאים את
Users:import com.google.api.server.spi.auth.common.User;בכל שיטת API שבה רוצים לבדוק אם האימות תקין, צריך לבדוק אם יש
Userתקין. אם אין כזה, צריך להפעיל חריגה, כמו שמוצג בהגדרת שיטת הדוגמה הזו:@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; }פורסים את ה-API. צריך לפרוס מחדש את ה-API בכל פעם שמוסיפים לקוחות חדשים.