समर्थित एक्सेस टोकन की पहचान करें

पूरा किया

यहां, आप विभिन्न GitHub एक्सेस टोकन, उनके एप्लिकेशन, सीमाओं और दर सीमाओं के बारे में सीखते हैं।

जब आप अपनी कंपनी के भीतर उपयोगकर्ताओं तक पहुंच प्रदान करते हैं, तो प्रमाणीकरण अविश्वसनीय रूप से महत्वपूर्ण होता है। उपयोगकर्ता पहुंच को कसकर दायरे में रखा जाना चाहिए और केवल वही शामिल करना चाहिए जो उपयोगकर्ताओं को अपने कार्यों को पूरा करने के लिए आवश्यक है। विभिन्न एक्सेस टोकन को समझना महत्वपूर्ण है क्योंकि आप कंपनी के भीतर उपयोगकर्ताओं को उनके उपयोग के मामलों के लिए सर्वोत्तम विकल्प का उपयोग करने में मदद करते हैं।

GitHub विभिन्न टोकन का उपयोग करता है जो उपयोगकर्ताओं को उन विभिन्न गतिविधियों को प्रमाणित करने की अनुमति देता है जिन्हें उन्हें प्रदर्शन करने की आवश्यकता होती है। आमतौर पर, ये अलग-अलग टोकन सीधे होते हैं, और यह जानना आसान होता है कि किस टोकन का उपयोग करना है। लेकिन कभी-कभी, एक ही परिणाम को पूरा करने के लिए कई टोकन का उपयोग किया जा सकता है, इसलिए टोकन चुनना अच्छे, बेहतर और सर्वोत्तम निर्णय पर आ सकता है। इन स्थितियों में, GitHub के टोकन की विशेषताओं की पहचान करना और टोकन की पहुंच को सही तरीके से कैसे लागू किया जाए, इसकी पहचान करना महत्वपूर्ण है। यहां उपलब्ध विभिन्न एक्सेस टोकन की सूची दी गई है:

  • GitHub व्यक्तिगत एक्सेस टोकन
  • GitHub उपयोगकर्ता-से-सर्वर टोकन
  • GitHub सर्वर-टू-सर्वर टोकन
  • OAuth एक्सेस टोकन
  • टोकन ताज़ा करें

अपनी विकास टीम को सही दायरे के साथ टोकन का उपयोग करने के लिए प्रोत्साहित करना महत्वपूर्ण है ताकि जब सुरक्षा भेद्यता का पता चले, तो जोखिम को जल्दी से कम किया जा सके। आइए इनमें से प्रत्येक एक्सेस टोकन पर करीब से नज़र डालें।

व्यक्तिगत पहुँच टोकन

एक व्यक्तिगत एक्सेस टोकन (PAT) GitHub को प्रमाणित करने के लिए पासवर्ड का उपयोग करने का एक विकल्प है। रिपॉजिटरी में पुश और पुल करने के लिए, GitHub को उपयोगकर्ता पहुंच को सत्यापित करने की आवश्यकता है। सत्यापन उपयोगकर्ता के सत्यापित ईमेल पते के माध्यम से किया जाता है। आप अपने वर्कफ़्लो की आवश्यकता के अनुसार कई व्यक्तिगत एक्सेस टोकन बना सकते हैं, और आपको उन्हें पासवर्ड के रूप में सुरक्षित रूप से व्यवहार करना चाहिए। विभिन्न अनुप्रयोगों के लिए अलग-अलग टोकन का उपयोग करना सुरक्षा के लिए सबसे अच्छा अभ्यास है। GitHub में व्यक्तिगत एक्सेस टोकन बनाने के लिए, आप सेटिंग पर नेविगेट करते हैं और डेवलपर सेटिंग के अंतर्गत, व्यक्तिगत एक्सेस टोकन चुनें.

GitHub व्यक्तिगत एक्सेस टोकन के उदाहरण के साथ स्क्रीनशॉट।

आप एक व्यक्तिगत टोकन को केवल उस कार्य को प्रमाणित करने के लिए आवश्यक पहुंच की अनुमति दे सकते हैं जिसे आप इसे असाइन करते हैं। टोकन एक विशिष्ट उपयोगकर्ता से जुड़ा हुआ है, और संगठन और रिपॉजिटरी तक उपयोगकर्ता की पहुंच के साथ संरेखित करता है। आप किसी भी समय एक व्यक्तिगत एक्सेस टोकन को रद्द कर सकते हैं, जो सुरक्षा समस्या होने पर विशेष रूप से महत्वपूर्ण है। अपनी टीम से संवाद करना महत्वपूर्ण है कि उनके व्यक्तिगत एक्सेस टोकन को उपयोगकर्ता नाम और पासवर्ड के रूप में सुरक्षित रूप से माना जाना चाहिए। यदि कोई टोकन समझौता हो जाता है, तो आपको टोकन रद्द करने के लिए तत्काल कार्रवाई करनी चाहिए।

व्यक्तिगत एक्सेस टोकन बनाने के लिए विस्तृत चरण यहां उपलब्ध हैं: व्यक्तिगत एक्सेस टोकन बनाना - GitHub डॉक्स

डिवाइस टोकन

एक डिवाइस टोकन मूल रूप से एक पीएटी का मशीन-खाता संस्करण है, जिसका उपयोग डिवाइस के संदर्भ में किया जाता है, जो विशिष्ट उपयोग के मामलों में एक विशिष्ट भंडार तक पहुंच प्रदान करता है जो गैर-उपयोगकर्ता बाध्य हैं। OAuth प्रवाह का उपयोग करने वाला अनुप्रयोग सेटअप डिवाइस टोकन का उपयोग करता है. वे आम तौर पर धावक, विशेष एप्लिकेशन सेवाओं, क्रॉन नौकरियों (लिनक्स में), या स्वचालित कार्यों से संबंधित अन्य समान परिदृश्यों के साथ उपयोग किए जाते हैं। व्यक्तिगत एक्सेस टोकन की तरह, डिवाइस टोकन एक व्यक्तिगत खाते से जुड़ा होता है, और जिस खाते के लिए आप डिवाइस टोकन बनाते हैं वह लाइसेंस की खपत करता है।

GitHub एप्लिकेशन इंस्टॉलेशन टोकन

एक इंस्टॉलेशन टोकन GitHub ऐप को किसी संगठन में एप्लिकेशन की स्थापना के लिए प्रमाणित API अनुरोध करने की अनुमति देता है। इंस्टॉलेशन टोकन बनाने से पहले, आपको सबसे पहले GitHub ऐप इंस्टॉल करना होगा, जिस पर टोकन लागू होता है, गंतव्य भंडार में। स्थापना टोकन एक घंटे के लिए मान्य हैं, और सुरक्षित हैं क्योंकि वे एक विशिष्ट उद्देश्य के लिए उत्पन्न होते हैं और अपेक्षाकृत कम समय में समाप्त हो जाते हैं।

OAuth एक्सेस टोकन

OAuth2 टोकन का उपयोग उपयोगकर्ताओं को ब्राउज़र में चलने वाले मानक OAuth ऐप्स के लिए और CLI टूल जैसे हेडलेस ऐप्स के लिए अधिकृत करने के लिए किया जाता है। वे आपके ऐप को उपयोगकर्ता-एक्सेस टोकन के साथ एपीआई तक पहुंचने की अनुमति देते हैं। ये टोकन आपको अपनी GitHub उपयोगकर्ता पहचान को तृतीय-पक्ष एप्लिकेशन से कनेक्ट करने देते हैं, जिससे ऐप आपकी ओर से कार्रवाई कर सकता है। उदाहरण के लिए, यदि आप किसी ऐसे ऐप का उपयोग करना चाहते हैं जो स्कोप का अनुरोध user:email करता है, तो ऐप को आपके निजी ईमेल पतों पर केवल-पढ़ने के लिए पहुंच दी जाती है। इन टोकन उत्पादन अनुप्रयोगों के लिए वेब अनुप्रयोग प्रवाह का उपयोग करके प्राप्त किया जा सकता है। क्योंकि ये टोकन अल्पकालिक हैं और 10 मिनट में समाप्त हो जाते हैं, वे सुरक्षित भी हैं।

टोकन ताज़ा करें

एक ताज़ा टोकन एक OAuth टोकन के साथ जुड़ा हुआ है। जब एक नया OAuth टोकन (उपयोगकर्ता-से-सर्वर अनुरोध के माध्यम से) प्रदान किया जाता है, तो प्रतिक्रिया में एक ताज़ा टोकन शामिल होता है। जब उपयोगकर्ता टोकन समाप्त हो रहा होता है, तो कॉल-बैक अनुरोध के साथ नए उपयोगकर्ता टोकन के लिए रीफ्रेश टोकन का आदान-प्रदान किया जा सकता है। हर बार एक नया OAuth टोकन जारी किया जाता है, एक ताज़ा टोकन शामिल होता है। रीफ्रेश टोकन छह महीने के लिए वैध हैं, और आपके OAuth टोकन को अपडेट करने के लिए एक अच्छा अनुस्मारक है।

पहचान योग्य उपसर्ग

जैसा कि हम पूरे उद्योग में देखते हैं, टोकन उपसर्ग टोकन को पहचानने योग्य बनाने का एक स्पष्ट तरीका है। GitHub में प्रत्येक टोकन का प्रतिनिधित्व करने के लिए तीन-अक्षर उपसर्ग शामिल हैं। उपसर्ग दो अक्षरों से शुरू होता है जो कंपनी को दर्शाता है, gh, और उसके बाद टोकन प्रकार का पहला अक्षर होता है। उपलब्ध पहुँच टोकन प्रकारों के लिए उपसर्ग हैं:

  • GitHub व्यक्तिगत एक्सेस टोकन के लिए ghp
  • GitHub उपयोगकर्ता-से-सर्वर टोकन के लिए ghu
  • GitHub सर्वर-टू-सर्वर टोकन के लिए ghs
  • OAuth एक्सेस टोकन के लिए gho
  • टोकन ताज़ा करने के लिए ghr

इसके अतिरिक्त, इन उपसर्गों में पठनीयता में सुधार करने के लिए टोकन के भीतर एक विभाजक (_) होता है। एक अंडरस्कोर एक बेस 64 वर्ण नहीं है, जो यह सुनिश्चित करने में मदद करता है कि सुरक्षित हैश एल्गोरिदम (एसएचए) जैसे बेतरतीब ढंग से उत्पन्न तार गलती से इन टोकन की नकल नहीं कर सकते हैं। उपसर्ग गुप्त स्कैनिंग के लिए झूठी-सकारात्मक दर को कम करने में भी मदद करते हैं, जो आपके GitHub रिपॉजिटरी के भीतर सुरक्षा को और बेहतर बनाने के लिए एक GitHub उन्नत सुरक्षा सुविधा है।

टोकन दर सीमाएं

दर सीमा से अधिक होने से विकास का समय खो सकता है। आइए GitHub ऐप्स और OAuth ऐप्स के लिए दर सीमा के बारे में बात करते हैं। दर सीमाओं को समझकर, आप अपनी टीम के डेवलपर्स के लिए एक संसाधन बन सकते हैं, जिससे इन GitHub संसाधनों में आपके संगठन के निवेश को अनुकूलित करने में मदद मिलती है।

दर सीमाएं GitHub पर ट्रैफ़िक की दर को नियंत्रित करने में मदद करती हैं, और प्रति घंटे अनुरोधों पर आधारित होती हैं।

  • GitHub एंटरप्राइज़ खाते पर इंस्टॉल किए गए GitHub ऐप में प्रति घंटे 15,000 अनुरोधों की अनुरोध दर सीमा है।
  • एक OAuth ऐप एक व्यक्तिगत उपयोगकर्ता के लिए प्रमाणित है और प्रति घंटे 5,000 अनुरोधों तक सीमित है।

एंटरप्राइज़ व्यवस्थापकों के लिए, आपको ऐप दर सीमाओं की निगरानी करनी चाहिए और डेवलपर्स के साथ काम करना चाहिए ताकि वे सीमाओं के भीतर रहने के लिए अपनी स्क्रिप्ट समायोजित कर सकें। आमतौर पर, दर सीमाएं तब तक चिंता का विषय नहीं होती हैं जब तक कि आपका डेवलपर वर्कफ़्लो में बहुत अधिक जानकारी का अनुरोध करने वाली स्क्रिप्ट लिखने जैसा कुछ नहीं करता है। अचानक, विकास रुक जाता है और दर सीमा एक बाधा बन जाती है। आप प्रति घंटे अनुरोधों की संख्या सीमित करके या अनुरोधों के बीच प्रतीक्षा करने के लिए वर्कफ़्लो बदलकर इन दर-सीमा ओवरएज मुद्दों से बच सकते हैं। अगर आप बुनियादी प्रमाणीकरण या OAuth का इस्तेमाल करके अपनी दर सीमा पार कर जाते हैं, तो आप API जवाबों को कैश करके और सशर्त अनुरोधों का इस्तेमाल करके समस्या को ठीक कर सकते हैं.

प्रबंधन कंसोल से, आप अपने एंटरप्राइज़ में अप्रमाणित उपयोगकर्ताओं के लिए एक कस्टम दर सीमा सेट कर सकते हैं और एक छूट सूची बना सकते हैं, जिससे कुछ उपयोगकर्ता पूर्ण API दर सीमा का उपयोग कर सकते हैं।

API दर की सीमाएं सेट करने वाले प्रबंधन कंसोल का स्क्रीनशॉट.

आप निम्न दर सीमा API का उपयोग करके किसी भी समय अपनी वर्तमान दर-सीमा स्थिति की जांच कर सकते हैं. किसी भी API अनुरोध के लौटाए गए HTTP हेडर आपकी वर्तमान दर सीमा स्थिति दिखाते हैं.

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 पर दर सीमित करने का संदर्भ लें।