סודות לקוח

ספריית הלקוח של Google APIs עבור .NET משתמשת בקובצי client_secrets.json לאחסון הפרמטרים client_id, client_secret ופרמטרים אחרים של OAuth 2.0.

קובץ client_secrets.json הוא קובץ בפורמט JSON שמכיל את מזהה הלקוח, סוד הלקוח ופרמטרים אחרים של OAuth 2.0. הנה קובץ client_secrets.json לדוגמה עבור אפליקציית אינטרנט:

{
  "web": {
    "client_id": "asdfjasdljfasdkjf",
    "client_secret": "1912308409123890",
    "redirect_uris": ["https://www.example.com/oauth2callback"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}

הנה קובץ client_secrets.json לדוגמה עבור אפליקציה מותקנת:

{
  "installed": {
    "client_id": "837647042410-75ifg...usercontent.com",
    "client_secret":"asdlkfjaskd",
    "redirect_uris": ["http://localhost"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}

הפורמט מגדיר אחד משני סוגים של מזהי לקוח:

  • web: אפליקציית אינטרנט.
  • installed: אפליקציה מותקנת.

לאובייקטי המשנה web ו-installed יש את חברי החובה הבאים:

  • client_id (מחרוזת): מזהה הלקוח.
  • client_secret (מחרוזת): סוד הלקוח.

כל שאר הרכיבים בקובץ הזה הם אופציונליים, וספריית הלקוח של .NET לא משתמשת בהם.

למה בחרנו לעשות זאת?

בעבר, ספקים של נקודות קצה מסוג OAuth 2.0 היו מצפים ממשתמשים שמשתמשים בשירותים שלהם להעתיק ולהדביק את מזהה הלקוח וסוד הלקוח מדף הרישום לקוד תקין. השיטה הזו חשופה לשגיאות ומספקת תמונה חלקית של המידע שנחוץ כדי להפעיל את OAuth 2.0. (כדי להשתמש ב-OAuth 2.0, צריך גם להכיר את כל נקודות הקצה ולהגדיר URI להפניה אוטומטית.) אם ספקי שירות מספקים קובצי client_secrets.json שניתנים להורדה, וספריות הלקוח מוכנות להשתמש בקבצים האלה, ההטמעה של OAuth 2.0 תהיה קלה יותר ותהיה פחות חשופה לשגיאות.