זיהוי אסימוני גישה נתמכים

הושלמה

כאן תלמד על אסימוני הגישה השונים של GitHub, היישומים שלהם, המגבלות ומגבלות הקצב.

כאשר אתה מעניק גישה למשתמשים בתוך החברה שלך, האימות חשוב מאוד. יש להשתמש בגישה הדוקה ולכלול רק את מה שנחוץ למשתמשים כדי להשלים את המשימות שלהם. הבנת אסימוני הגישה השונים חשובה כאשר אתה מסייע להדריך משתמשים בתוך החברה להשתמש באפשרות הטובה ביותר עבור מקרי השימוש שלהם.

GitHub משתמש באסימונים שונים המאפשרים למשתמשים לבצע אימות מול הפעילויות השונות שהם צריכים לבצע. בדרך כלל, אסימונים שונים אלה הם פשוטים, וקל לדעת באיזה אסימון להשתמש. אך לעתים, ניתן להשתמש באסימונים מרובים כדי להשיג את אותה תוצאה, כך שבחירת אסימון יכולה להגיע להחלטה של טוב, טוב יותר והעדיף. במצבים אלה, חשוב לזהות את המאפיינים של אסימונים של GitHub וכיצד היקף כראוי גישה של אסימון. להלן רשימה של אסימוני הגישה השונים הזמינים:

  • אסימוני גישה אישיים של GitHub
  • אסימוני משתמש לשרת של GitHub
  • אסימוני שרת לשרת של GitHub
  • אסימוני גישה של OAuth
  • רענן אסימונים

חשוב לעודד את צוות הפיתוח להשתמש באסימונים עם הטווח הנכון, כך כאשר תתגלה פגיעות אבטחה, ניתן לצמצם את הסיכון במהירות. בוא נבחן יותר מקרוב את כל אחד מאסימוני הגישה האלה.

אסימוני גישה אישיים

אסימון גישה אישי (PAT) הוא חלופה לשימוש בסיסמה לאימות ל- GitHub. כדי לדחוף ולמשוך מאגרים, GitHub צריך לאמת גישת משתמש. האימות מתבצע באמצעות כתובת הדואר האלקטרוני המאומתת של המשתמש. באפשרותך ליצור אסימוני גישה אישיים רבים ככל שזרימת העבודה שלך דורשת, ועלך להתייחס אליהם בצורה מאובטחת כמו סיסמאות. שימוש באסימונים שונים עבור יישומים שונים הוא שיטות העבודה המומלצות לאבטחה. כדי ליצור אסימון גישה אישי ב- GitHub, עליך לנווט אל הגדרות, ותחת הגדרות מפתחים, בחר אסימוני גישה אישיים.

צילום מסך עם דוגמה לאסימון גישה אישית של GitHub.

באפשרותך להגדיר טווח של אסימון בודד כדי לאפשר רק את הגישה הנדרשת לאימות המשימה שאליה אתה מקצה אותו. האסימון קשור למשתמש ספציפי, והוא תואם לגישה של המשתמש לארגון ולאתרים. באפשרותך לבטל אסימון גישה אישי בכל עת, וזה חשוב במיוחד כאשר מתרחשת בעיית אבטחה. חשוב להודיע לצוות שלך שיש לטפל באסימוני הגישה האישיים שלהם בצורה מאובטחת כמו שם משתמש וסיסמה. אם אסימון נחשף לסכנה, עליך לבצע פעולה מיידית כדי לבטל את האסימון.

שלבים מפורטים ליצירת אסימון גישה אישי זמינים כאן: יצירת אסימון גישה אישית - מסמכי GitHub

אסימוני מכשיר

אסימון מכשיר הוא בעצם גרסת חשבון מכונה של PAT, המשמשת בהקשר של מכשיר, המעניקה גישה למאגר ספציפי במקרי שימוש ספציפיים שאינם קשורים למשתמש. הגדרת יישום המשתמשת בזרימת OAuth משתמשת אסימון התקן. הם משמשים בדרך כלל עם רצים, שירותי יישומים מיוחדים, עבודות Cron (בלינוקס), או תרחישים דומים אחרים הקשורים למשימות אוטומטיות. בדיוק כמו אסימון הגישה האישי, אסימון המכשיר מקושר לחשבון בודד, והחשבון שעבורו יצרתם את אסימון המכשיר צורך רישיון.

אסימוני התקנה של יישום GitHub

אסימון התקנה מאפשר לאפליקציה GitHub לבצע בקשות API מאומתות עבור התקנת היישום בארגון. לפני יצירת אסימון התקנה, תחילה עליך להתקין את אפליקציית GitHub שעליה חל האסימון, במאגר היעד. אסימוני ההתקנה תקפים לשעה אחת, והם מאובטחים מכיוון שהם נוצרים למטרה מסוימת ותוקפם פג תוך פרק זמן קצר יחסית.

אסימוני גישה של OAuth

אסימוני OAuth2 משמשים כדי לאשר משתמשים עבור יישומי OAuth רגילים הפועלים בדפדפן, ולאפליקציות ללא ראש כגון כלי CLI. הם מאפשרים לאפליקציה שלך לגשת ל- API באמצעות אסימון גישת משתמש. אסימונים אלה מאפשרים לך לחבר את זהות המשתמש שלך ב- GitHub ליישומים של ספקים חיצוניים, ומאפשרים לאפליקציה לבצע פעולות בשמך. לדוגמה, אם ברצונך להשתמש ביישום המבקש user:email היקף, ליישום ניתנת גישת קריאה בלבד לכתובות הדוא״ל הפרטיות שלך. ניתן לרכוש אסימונים אלה באמצעות זרימת יישום האינטרנט של ליישומי ייצור. מכיוון שאסימונים אלה הם לטווח קצר ותוקפם פג תוך 10 דקות, הם גם מאובטחים.

רענן אסימונים

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

קידומות המאפשרות זיהוי

כפי שאנו רואים ברחבי התעשייה, קידומות אסימון הן דרך ברורה להפוך אסימונים לניתנים לזיהוי. GitHub כולל קידומות בנות שלוש אותיות המייצגות כל אסימון. הקידומת מתחילה בשתי אותיות המסמלות את החברה, ghואחריה האות הראשונה מסוג האסימון. הקידומת עבור סוגי אסימוני הגישה הזמינים היא:

  • ghp עבור אסימוני גישה אישיים של GitHub
  • ghu עבור אסימוני משתמש לשרת של GitHub
  • ghs עבור אסימוני שרת לשרת של GitHub
  • gho עבור אסימוני גישה של OAuth
  • ghr עבור אסימוני רענון

בנוסף, קידומות אלה כוללות מפריד (_) בתוך האסימון כדי לשפר את הקריאות. מקף תחתון אינו תו Base64, מה שעוזר להבטיח שמחרוזות שנוצרו באופן אקראי כמו אלגוריתמי Hash מאובטחים (SHA) לא יוכלו לשכפל בטעות אסימונים אלה. קידומות גם עוזרות להפחית את שיעור התוצאות החיוביות השגויות עבור סריקה סודית, שהיא תכונת אבטחה מתקדמת של GitHub כדי לשפר עוד יותר את האבטחה במאגר GitHub שלך.

מגבלות קצב אסימון

חריגה ממגבלות התעריף עשויה להוביל לאידן זמן הפיתוח. בוא נדבר על מגבלות תעריף עבור אפליקציות GitHub ואפליקציות OAuth. על-ידי הבנת מגבלות התעריף, תוכל להיות משאב למפתחים בצוות שלך, ולעזור לך למטב את ההשקעה של הארגון במשאבי GitHub אלה.

מגבלות תעריף עוזרות לשלוט בקצב התעבורה ב- GitHub, ומבוססות על בקשות בשעה.

  • אפליקציית GitHub המותקנת בחשבון ארגוני של GitHub כוללת את מגבלת קצב הבקשות ב- 15,000 בקשות בשעה.
  • יישום OAuth מאומת למשתמש בודד והוא מוגבל ל- 5,000 בקשות בשעה.

עבור מנהלי מערכת ארגוניים, עליך לנטר את מגבלות קצב האפליקציות ולעבוד עם המפתחים כדי להתאים את קבצי ה- Script שלהם כדי להישאר במסגרת המגבלות. בדרך כלל, מגבלות התעריף אינן מהותיות עד שהמפתח שלך עושה משהו כמו כתיבת קובץ Script המבקש מידע רב מדי בזרימת עבודה. לפתע, הפיתוח נפסק ומגבלות התעריף הופכות לצוואר בקבוק. באפשרותך להימנע מבעיות חריגות אלה של מגבלת תעריף על-ידי הגבלת מספר הבקשות לשעה או שינוי זרימת עבודה להמתנה בין בקשות. אם תחרוג ממגבלת הקצב שלך באמצעות אימות בסיסי או OAuth, תוכל לפתור את הבעיה על-ידי אחסון תגובות API במטמון בקשות מותנה.

ממסוף הניהול, באפשרותך להגדיר מגבלת קצב מותאמת אישית עבור משתמשים לא מאומתים בארגון וליצור רשימת פטורים, דבר המאפשר למשתמשים מסוימים לנצל את מגבלת קצב ה- API המלאה.

מסך של מסוף הניהול שמגדיר את מגבלות קצב ה- API.

באפשרותך לבדוק את מצב מגבלת התעריף הנוכחית שלך בכל עת באמצעות ה- API הבא של מגבלת תעריף. כותרות ה- HTTP המוחזרות של כל בקשת API מציגות את מצב מגבלת התעריף הנוכחי שלך.

curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/rate_limit

תגובה לדוגמה

{
  "resources": {
    "core": {
      "limit": 5000,
      "remaining": 4999,
      "reset": 1372700873,
      "used": 1
    },
    "search": {
      "limit": 30,
      "remaining": 18,
      "reset": 1372697452,
      "used": 12
    },
    "graphql": {
      "limit": 5000,
      "remaining": 4993,
      "reset": 1372700389,
      "used": 7
    },
    "integration_manifest": {
      "limit": 5000,
      "remaining": 4999,
      "reset": 1551806725,
      "used": 1
    },
    "code_scanning_upload": {
      "limit": 500,
      "remaining": 499,
      "reset": 1551806725,
      "used": 1
    }
  },
  "rate": {
    "limit": 5000,
    "remaining": 4999,
    "reset": 1372700873,
    "used": 1
  }
}

לקבלת מידע מפורט יותר על מגבלות תעריף, עיין במגבלות שיעור ב- GitHub Docs.