בדף הזה נסביר איך להשתמש בספריות לקוח כדי לגשת ל-Google APIs.
ספריות לקוח מאפשרות לגשת בקלות ל-Google Cloud APIs בשפה נתמכת. אפשר להשתמש ישירות ב- Google Cloud APIs על ידי יצירת בקשות גולמיות חדשות לשרת, אבל ספריות לקוח מפשטות את התהליך ומפחיתות באופן משמעותי את כמות הקוד שתצטרכו לכתוב. זה נכון במיוחד לאימות, כי ספריות הלקוח תומכות ב-Application Default Credentials (ADC).
אם אתם מקבלים הגדרות של פרטי כניסה (JSON, קבצים או סטרימינג) ממקור חיצוני (לדוגמה, מלקוח), כדאי לעיין בדרישות האבטחה כשמשתמשים בהגדרות של פרטי כניסה ממקור חיצוני.
שימוש ב-Application Default Credentials עם ספריות לקוח
קודם כול צריך להגדיר את השירות Application Default Credentials בסביבה שבה האפליקציה פועלת, כדי שתוכלו להשתמש בו לאימות האפליקציה שלכם. לאחר מכן, כשיוצרים לקוח באמצעות ספריית הלקוח, היא מחפשת באופן אוטומטי את פרטי הכניסה שסיפקתם ל-ADC ומשתמשת בהם כדי לאמת את ממשקי ה-API שבהם הקוד שלכם משתמש. אין צורך לאמת ולנהל אסימונים באופן מפורש. הדרישות האלו מנוהלות אוטומטית על ידי ספריות האימות.
בסביבת פיתוח מקומית, אפשר להגדיר את ADC עם פרטי הכניסה של המשתמש או עם התחזות לחשבון שירות באמצעות ה-CLI של gcloud. בסביבות ייצור, אפשר להגדיר את ADC באמצעות צירוף של חשבון שירות.
דוגמה ליצירת לקוח
דוגמאות הקוד הבאות מדגימות יצירה של לקוח לשירות Cloud Storage. סביר להניח שבקוד שלכם תשתמשו בלקוחות אחרים. הדוגמאות האלו נועדו רק כדי להמחיש איך יוצרים לקוח ומשתמשים בו ללא קוד שמבצע אימות באופן מפורש.
כדי להריץ את הדוגמאות הבאות, צריך לבצע את השלבים הבאים:
Go
Java
Node.js
PHP
Python
Ruby
שימוש במפתחות API עם ספריות לקוח
אפשר להשתמש במפתחות API רק עם ספריות לקוח של ממשקי API שמקבלים מפתחות API. בנוסף, למפתח ה-API אסור שתהיה הגבלת API שמונעת את השימוש בו עבור ה-API.
מידע נוסף על מפתחות API שנוצרו במצב אקספרס זמין בשאלות הנפוצות על מצב אקספרס ב-Google Cloud.
כדי להדגים איך מספקים מפתח API לספרייה, בדוגמה הזו נשתמש ב-Cloud Natural Language API שתומך במפתחות API.
C#
כדי להריץ את הדוגמה הזו, צריך להתקין את ספריית הלקוח של שפה טבעית.
C++
כדי להריץ את הדוגמה הזו, צריך להתקין את ספריית הלקוח של שפה טבעית.
Go
כדי להריץ את הדוגמה הזו, צריך להתקין את ספריית הלקוח של שפה טבעית.
Node.js
כדי להריץ את הדוגמה הזו, צריך להתקין את ספריית הלקוח של שפה טבעית.
Python
כדי להריץ את הדוגמה הזו, צריך להתקין את ספריית הלקוח של שפה טבעית.
Ruby
כדי להריץ את הדוגמה הזו, צריך להתקין את ספריית הלקוח של שפה טבעית.
בזמן השימוש במפתחות API באפליקציות שלכם, צריך לוודא שהן מאובטחות במהלך האחסון ובמהלך ההעברה. חשיפת מפתחות ה-API באופן ציבורי עלולה לגרום לחיובים לא צפויים בחשבון שלכם. מידע נוסף זמין במאמר שיטות מומלצות לניהול מפתחות API.
דרישות אבטחה כשמשתמשים בהגדרות של פרטי כניסה ממקור חיצוני
בדרך כלל, יוצרים הגדרות של פרטי כניסה באמצעות פקודות של ה-CLI של gcloud או באמצעות Google Cloud המסוף. לדוגמה, אפשר להשתמש ב-CLI של gcloud כדי ליצור קובץ ADC מקומי או קובץ הגדרות כניסה. באופן דומה, אפשר להשתמש במסוף Google Cloud כדי ליצור מפתח של חשבון שירות ולהוריד אותו.
עם זאת, בחלק ממקרי השימוש, ישויות חיצוניות מספקות לכם הגדרות של פרטי כניסה, וההגדרות האלה מיועדות לאימות מול Google APIs.
חלק מהסוגים של הגדרות פרטי כניסה כוללים נקודות קצה ונתיבי קבצים, שספריות האימות משתמשות בהם כדי לקבל אסימון. כשמאשרים הגדרות של פרטי כניסה ממקור חיצוני, צריך לאמת את ההגדרה לפני שמשתמשים בה. אם לא מאמתים את ההגדרה, גורם זדוני עלול להשתמש בהרשאה כדי לפגוע במערכות ובנתונים שלכם.
אימות הגדרות של פרטי כניסה ממקורות חיצוניים
האופן שבו צריך לאמת את פרטי הכניסה החיצוניים תלוי בסוגי פרטי הכניסה שהאפליקציה מקבלת.
אימות מפתחות של חשבונות שירות
אם האפליקציה מקבלת רק מפתחות של חשבונות שירות, צריך להשתמש בטוען פרטי כניסה שספציפי למפתחות של חשבונות שירות, כמו בדוגמאות הבאות. רכיב טעינת האישורים הספציפי לסוג מנתח רק את השדות שקיימים במפתחות של חשבונות שירות, שלא חושפים נקודות חולשה.
C#
var saCredential = CredentialFactory.FromStream<ServiceAccountCredential>(stream);
C++
auto cred = google::cloud::MakeServiceAccountCredentials(json)
Java
ServiceAccountCredentials credentials =
ServiceAccountCredentials.fromStream(credentialsStream);
Node.js
const keys = JSON.parse(json_input)
const authClient = JWT.fromJSON(keys);
PHP
$cred = new Google\Auth\Credentials\ServiceAccountCredentials($scope, $jsonKey);
Python
cred = service_account.Credentials.from_service_account_info(json_data)
Ruby
creds = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: json_stream)
אם אי אפשר להשתמש בטוען פרטי כניסה ספציפי לסוג, צריך לאמת את פרטי הכניסה על ידי אישור שהערך בשדה type הוא service_account. אם הערך בשדה type הוא ערך אחר, אל תשתמשו במפתח של חשבון השירות.
אימות הגדרות אישיות אחרות של פרטי הכניסה
אם האפליקציה שלכם מקבלת כל סוג של פרטי כניסה מלבד מפתח של חשבון שירות, אתם צריכים לבצע אימות נוסף. דוגמאות לסוגים אחרים של הגדרות פרטי כניסה כוללות קובצי פרטי כניסה של ADC, קובצי פרטי כניסה של איחוד שירותי אימות הזהות של עומסי עבודה או קובצי הגדרות כניסה של איחוד שירותי אימות הזהות של כוח עבודה.
בטבלה הבאה מפורטים השדות שצריך לאמת, אם הם מופיעים בפרטי הכניסה. לא כל השדות האלה מופיעים בכל תצורות האישורים.
| שדה | מטרה | הערך הצפוי |
|---|---|---|
service_account_impersonation_url |
ספריות האימות משתמשות בשדה הזה כדי לגשת לנקודת קצה וליצור אסימון גישה לחשבון השירות שאליו מתחזים. | https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/service account email:generateAccessToken |
token_url |
ספריות האימות שולחות אסימון חיצוני לנקודת הקצה הזו כדי להמיר אותו לאסימון גישה מאוחד. | https://sts.googleapis.com/v1/token |
credential_source.file |
ספריות האימות קוראות אסימון חיצוני מהקובץ במיקום שצוין בשדה הזה ושולחות אותו לנקודת הקצה token_url.
|
הנתיב לקובץ שמכיל טוקן חיצוני. הנתיב הזה אמור להיות מוכר לכם. |
credential_source.url |
נקודת קצה שמחזירה אסימון חיצוני. ספריות האימות
שולחות בקשה לכתובת ה-URL הזו ושולחות את התגובה לנקודת הקצה token_url.
|
אחד מהפריטים הבאים:
|
credential_source.executable.command |
אם משתנה הסביבה GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES מוגדר ל-1, ספריות האימות מריצות את הפקודה הזו או את קובץ ההפעלה הזה.
|
קובץ הפעלה או פקודה שמחזירים טוקן חיצוני. צריך לזהות את הפקודה הזו ולוודא שהיא בטוחה. |
credential_source.aws.url |
ספריות האימות שולחות בקשה לכתובת ה-URL הזו כדי לאחזר אסימון אבטחה של AWS. |
אחד מהערכים הבאים:
|
credential_source.aws.region_url |
ספריות האימות שולחות בקשה לכתובת ה-URL הזו כדי לאחזר את אזור AWS הפעיל. |
אחד מהערכים הבאים:
|
credential_source.aws.imdsv2_session_token_url |
ספריות האימות שולחות בקשה לכתובת ה-URL הזו כדי לאחזר את אסימון הסשן של AWS. |
אחד מהערכים הבאים:
|