ระบุโทเค็นการเข้าถึงที่ได้รับการสนับสนุน
ที่นี่ คุณจะได้เรียนรู้เกี่ยวกับโทเค็นการเข้าถึง GitHub ต่างๆ แอปพลิเคชัน ข้อจํากัด และขีดจํากัดอัตรา
เมื่อคุณให้สิทธิ์การเข้าถึงแก่ผู้ใช้ภายในบริษัทของคุณ การเข้าถึงของผู้ใช้ควรมีขอบเขตแน่นและรวมเฉพาะสิ่งที่จําเป็นสําหรับผู้ใช้เพื่อทํางานให้เสร็จสมบูรณ์ การทําความเข้าใจโทเค็นการเข้าถึงที่แตกต่างกันเป็นสิ่งสําคัญเนื่องจากคุณช่วยแนะนําผู้ใช้ภายในบริษัทให้ใช้ตัวเลือกที่ดีที่สุดสําหรับกรณีการใช้งานของพวกเขา
GitHub ใช้โทเค็นต่าง ๆ ที่อนุญาตให้ผู้ใช้รับรองความถูกต้องในกิจกรรมต่าง ๆ ที่พวกเขาจําเป็นต้องดําเนินการ โดยปกติแล้ว โทเค็นที่แตกต่างกันเหล่านี้จะตรงไปตรงมา และเป็นเรื่องง่ายที่จะทราบว่าจะใช้โทเค็นใด แต่บางครั้งสามารถใช้โทเค็นหลายโทเค็นเพื่อให้ได้ผลลัพธ์เดียวกัน ดังนั้นการเลือกโทเค็นสามารถลงมือตัดสินใจได้ดี ดีขึ้น และดีที่สุด สิ่งสําคัญคือต้องระบุลักษณะของโทเค็นของ GitHub และวิธีการกําหนดขอบเขตการเข้าถึงโทเค็นอย่างถูกต้อง นี่คือรายการของโทเค็นการเข้าถึงอื่นที่พร้อมใช้งาน:
- โทเค็นการเข้าถึงส่วนบุคคลของ GitHub
- โทเค็นผู้ใช้ต่อเซิร์ฟเวอร์ GitHub
- โทเค็นจากเซิร์ฟเวอร์-ไปยังเซิร์ฟเวอร์ GitHub
- โทเค็นการเข้าถึง OAuth
- รีเฟรชโทเค็น
สิ่งสําคัญคือต้องกระตุ้นให้ทีมพัฒนาของคุณใช้โทเค็นที่มีขอบเขตที่เหมาะสมเพื่อให้เมื่อค้นพบช่องโหว่ด้านความปลอดภัยความเสี่ยงสามารถลดลงได้อย่างรวดเร็ว ลองมาดูรายละเอียดโทเค็นการเข้าถึงแต่ละตัวเหล่านี้กัน
โทเค็นการเข้าถึงส่วนบุคคล
โทเค็นการเข้าถึงส่วนบุคคล (PAT) เป็นทางเลือกในการใช้รหัสผ่านสําหรับการรับรองความถูกต้องไปยัง GitHub เมื่อต้องส่งและดึงที่เก็บข้อมูล GitHub จําเป็นต้องตรวจสอบการเข้าถึงของผู้ใช้ การตรวจสอบทําได้ผ่านที่อยู่อีเมลที่ตรวจสอบแล้วของผู้ใช้ คุณสามารถสร้างโทเค็นการเข้าถึงส่วนบุคคลได้มากเท่าที่เวิร์กโฟลว์ของคุณจําเป็นต้องใช้ และคุณควรปฏิบัติได้อย่างปลอดภัยเป็นรหัสผ่าน การใช้โทเค็นที่แตกต่างกันสําหรับแอปพลิเคชันที่แตกต่างกันเป็นแนวทางปฏิบัติที่ดีที่สุดสําหรับการรักษาความปลอดภัย หากต้องการสร้างโทเค็นการเข้าถึงส่วนบุคคลใน GitHub คุณไปที่ การตั้งค่า และภายใต้ การตั้งค่านักพัฒนา ให้เลือกโทเค็นการเข้าถึงส่วนบุคคล
คุณสามารถกําหนดขอบเขตของโทเค็นแต่ละรายการเพื่ออนุญาตเฉพาะการเข้าถึงที่จําเป็นสําหรับการรับรองความถูกต้องของงานที่คุณมอบหมายให้เท่านั้น โทเค็นเชื่อมโยงกับผู้ใช้ที่ระบุและสอดคล้องกับการเข้าถึงองค์กรและที่เก็บของผู้ใช้ คุณสามารถเพิกถอนโทเค็นการเข้าถึงส่วนบุคคลได้ตลอดเวลา ซึ่งเป็นสิ่งสําคัญอย่างยิ่งเมื่อเกิดปัญหาด้านความปลอดภัย สิ่งสําคัญคือการสื่อสารกับทีมของคุณว่าควรถือว่าโทเค็นการเข้าถึงส่วนบุคคลของพวกเขาเป็นชื่อผู้ใช้และรหัสผ่านอย่างปลอดภัย ถ้าโทเค็นไม่ได้รับผลกระทบ คุณควรดําเนินการทันทีเพื่อเพิกถอนโทเค็น
ขั้นตอนโดยละเอียดสําหรับการสร้างโทเค็นการเข้าถึงส่วนบุคคลมีอยู่ที่นี่: การสร้างโทเค็นการเข้าถึงส่วนบุคคล - GitHub Docs
โทเค็นอุปกรณ์
Token อุปกรณ์เป็นเวอร์ชันบัญชีเครื่องของ PAT ที่ใช้ในบริบทของอุปกรณ์ ซึ่งให้การเข้าถึงที่เก็บเฉพาะในกรณีการใช้งานเฉพาะที่ไม่ได้ผูกมัดกับผู้ใช้ การตั้งค่าแอปพลิเคชันโดยใช้โฟลว์ OAuth ใช้โทเค็นอุปกรณ์ โดยทั่วไปจะใช้กับรันเนอร์ บริการแอปพลิเคชันพิเศษ งาน Cron (ใน Linux) หรือสถานการณ์อื่นๆ ที่คล้ายคลึงกันที่เกี่ยวข้องกับงานอัตโนมัติ โทเค็นอุปกรณ์จะเชื่อมโยงกับบัญชีส่วนบุคคล และบัญชีที่คุณสร้างโทเค็นอุปกรณ์จะใช้ใบอนุญาต
โทเค็นการติดตั้งแอปพลิเคชัน 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 ซึ่งช่วยให้แน่ใจว่าสตริงที่สร้างขึ้นแบบสุ่ม เช่น อัลกอริทึมแฮชที่ปลอดภัย (SHA) ไม่สามารถทําซ้ําโทเค็นเหล่านี้โดยไม่ได้ตั้งใจ คํานําหน้ายังช่วยลดอัตราการเป็นบวกเท็จสําหรับการสแกนข้อมูลส่วนตัว ซึ่งเป็นคุณลักษณะด้านความปลอดภัยขั้นสูงของ GitHub เพื่อปรับปรุงความปลอดภัยภายในที่เก็บ GitHub ของคุณให้ดียิ่งขึ้น
ขีดจํากัดอัตราโทเค็น
ขีดจํากัดอัตราที่เกินอาจนําไปสู่เวลาการพัฒนาที่สูญเสียไป เรามาพูดถึงขีดจํากัดอัตราสําหรับแอป GitHub และแอป OAuth กัน โดยการทําความเข้าใจเกี่ยวกับขีดจํากัดอัตรา คุณสามารถเป็นทรัพยากรให้กับนักพัฒนาในทีมของคุณ ซึ่งช่วยปรับการลงทุนขององค์กรของคุณในทรัพยากร GitHub เหล่านี้ให้เหมาะสม
ขีดจํากัดอัตราช่วยควบคุมอัตราการเข้าชมบน GitHub และขึ้นอยู่กับคําขอต่อชั่วโมง
- แอป GitHub ที่ติดตั้งในบัญชีองค์กร GitHub มีขีดจํากัดอัตราคําขอที่ 15,000 คําขอต่อชั่วโมง
- แอป OAuth จะรับรองความถูกต้องสําหรับผู้ใช้แต่ละราย และจํากัดเพียง 5,000 คําขอต่อชั่วโมง
สําหรับผู้ดูแลระบบองค์กร คุณควรตรวจสอบขีดจํากัดอัตราแอปและทํางานกับนักพัฒนาเพื่อปรับสคริปต์ของพวกเขาเพื่อให้อยู่ภายในขีดจํากัด โดยทั่วไปแล้ว ขีดจํากัดอัตราจะไม่กังวลจนกว่านักพัฒนาของคุณจะทําอะไรบางอย่างเช่น การเขียนสคริปต์ที่ร้องขอข้อมูลมากเกินไปในเวิร์กโฟลว์ ทันใดนั้นการพัฒนามาถึงการหยุดชะงักและขีดจํากัดอัตรากลายเป็นคอขวด คุณสามารถหลีกเลี่ยงปัญหาอัตราการทํางานเกินขีดจํากัดเหล่านี้ได้โดยจํากัดจํานวนคําขอต่อชั่วโมง หรือเปลี่ยนเวิร์กโฟลว์เพื่อรอระหว่างคําขอ หากคุณใช้การรับรองความถูกต้องเบื้องต้นหรือ OAuth เกินขีดจํากัด คุณสามารถแก้ไขปัญหาได้โดยการแคชการตอบสนอง 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