การอนุญาต OAuth คืออะไรกันแน่
เมื่อคุณคลิก “Authorize” บนแอปของบุคคลที่สาม GitHub จะบันทึกการอนุญาต (grant) ว่าแอปนั้นสามารถดำเนินการในนามของคุณได้ภายในสิทธิ์ที่คุณอนุมัติ การอนุญาตนี้ไม่ใช่เซสชันเบราว์เซอร์ของคุณ ไม่ใช่ SSH key และไม่ใช่ GitHub App ที่ติดตั้งไว้ซึ่งมีการตั้งค่าการติดตั้งของตัวเอง แต่ละอย่างถูกเพิกถอนหรือลบในตำแหน่งที่แตกต่างกัน ดังนั้นขั้นตอนแรกคือระบุว่าคุณกำลังดูการเข้าถึงประเภทใดอยู่
| สิ่งที่คุณเห็น | สิ่งนั้นคืออะไร | จัดการที่ไหน |
|---|---|---|
| แอปของบุคคลที่สามที่แสดงพร้อมขอบเขตที่คุณอนุมัติ | การอนุญาต OAuth | Settings → Applications → Authorized OAuth Apps |
| คู่คีย์ที่คุณเพิ่มสำหรับ Git ผ่าน SSH | SSH key | Settings → SSH and GPG keys |
| คุณเข้าสู่ระบบอยู่ในเบราว์เซอร์นี้ | เซสชันเข้าสู่ระบบ | การออกจากระบบ หรือหน้าจอเซสชัน |
| แอปที่ติดตั้งบนรีพอซิทอรีหรือองค์กร | การติดตั้ง GitHub App | การตั้งค่าการติดตั้งของแอปหรือองค์กร |
หากรายการที่คุณกำลังดูอยู่ไม่ใช่การอนุญาต OAuth การเพิกถอนจากรายการ OAuth จะไม่แก้ไขปัญหานั้น
ทำไมต้องตรวจสอบก่อนเพิกถอน
การอนุญาตเก่าอาจยังทำสิ่งที่คุณพึ่งพาอยู่ เช่น เครื่องมือ deploy, ปลั๊กอิน editor หรือการเชื่อมต่อ CI การเพิกถอนจะตัดการเข้าถึงของแอปนั้นผ่านการอนุญาต ซึ่งเป็นจุดประสงค์ แต่ก็อาจทำให้เวิร์กโฟลว์ที่ยังพึ่งพาอยู่หยุดทำงานได้ ตรวจสอบชื่อแอป สิทธิ์ที่ระบุไว้ และครั้งสุดท้ายที่คุณใช้งานก่อนดำเนินการ
GitHub แนะนำให้ตรวจสอบแอปที่ได้รับอนุญาต รวมถึงแอปที่เข้าถึงรีพอซิทอรีส่วนตัว แหล่งที่มา
หากคุณไม่รู้จักแอป หรือการเข้าถึงที่แอปมีกว้างกว่าภารกิจที่แอปทำ นั่นคือกรณีที่ควรเพิกถอน หากคุณรู้จักและยังใช้งานอยู่ ให้พิจารณาว่าขอบเขตปัจจุบันยังเหมาะสมหรือไม่ก่อนตัดสินใจ
เช็กลิสต์ก่อนและหลัง
ใช้เป็นบันทึกสั้นๆ เพื่อให้รู้ว่าอะไรเปลี่ยนไปและย้อนกลับข้อผิดพลาดได้หากจำเป็น
ก่อนเพิกถอน
- จดชื่อแอปและสิทธิ์ที่แสดงไว้ เพื่อให้จำรายการเดียวกันได้ในภายหลัง
- ตรวจสอบว่ามีสิ่งใดที่คุณใช้อยู่ซึ่งพึ่งพาแอปนั้นหรือไม่: การ build, การ deploy, การเข้าสู่ระบบของ editor, งานที่ตั้งเวลาไว้
- ยืนยันว่าคุณกำลังดู Authorized OAuth Apps ไม่ใช่ SSH keys, เซสชัน หรือแอปที่ติดตั้งไว้
- ตัดสินใจว่าต้องการเพิกถอนการอนุญาตรายการใดรายการหนึ่งโดยเฉพาะหรือทั้งหมด
หลังเพิกถอน
- โหลดหน้า Authorized OAuth Apps ใหม่และยืนยันว่ารายการนั้นหายไปแล้ว
- รันเวิร์กโฟลว์ที่ใช้แอปนั้นหนึ่งครั้ง และสังเกตว่าตอนนี้มีการขอให้อนุญาตใหม่หรือไม่ การแจ้งเตือนนั้นเป็นสัญญาณที่คาดหมายได้ว่าการอนุญาตถูกลบไปแล้ว
- หากเวิร์กโฟลว์หยุดทำงานและคุณยังต้องการใช้ ให้อนุญาตใหม่โดยตั้งใจและตรวจสอบขอบเขตที่ร้องขอ
- คงวิธีการกู้คืนบัญชีของคุณไว้จนกว่าจะแน่ใจว่าไม่มีสิ่งอื่นพึ่งพาการเข้าถึงที่เพิกถอนไปแล้ว
วิธีเพิกถอนการอนุญาต
เปิด Settings ของบัญชี จากนั้น Applications ภายใต้ Integrations แล้วเลือก Authorized OAuth Apps เพื่อตรวจสอบการเข้าถึง แหล่งที่มา
จากรายการ ให้เปิดเมนูของแอปที่ต้องการลบโดยเฉพาะ
การอนุญาตที่ไม่รู้จักหรือล้าสมัยสามารถเพิกถอนได้จากเมนูของแอป หน้านั้นยังมีตัวเลือก Revoke all ด้วย แหล่งที่มา
เพิกถอนรายการเดียวเมื่อคุณต้องการลบเพียงแอปเดียว ตัวเลือก Revoke all ใช้เมื่อคุณตรวจสอบรายการแล้วและต้องการล้างการอนุญาตทั้งหมด ซึ่งจะมีผลกับทุกแอปในหน้านั้น ไม่ใช่เฉพาะแอปที่คุณกำลังดูอยู่
ขอบเขตความล้มเหลวที่ควรจำไว้
- การเพิกถอนไม่ใช่การลบข้อมูล การลบการอนุญาตจะหยุดการเข้าถึงในอนาคตผ่านการอนุญาตนั้น แต่ไม่ได้ลบข้อมูลที่แอปเก็บไว้แล้วหรือคัดลอกไปนอก GitHub และไม่ใช่การรับประกันว่าข้อมูลจะถูกลบ
- การเพิกถอนไม่ใช่การออกจากระบบ เซสชันเบราว์เซอร์ของคุณบน GitHub แยกต่างหาก การเพิกถอนแอปไม่ได้ทำให้คุณออกจากระบบ และการออกจากระบบไม่ได้เพิกถอนการอนุญาตแอป
- SSH key ไม่ใช่ OAuth app หากการเข้าถึงที่คุณกังวลคือคีย์ การลบคีย์จะทำใน Settings ของ SSH and GPG keys ไม่ใช่ใน Authorized OAuth Apps
- GitHub App ที่ติดตั้งไว้ไม่ใช่รายการเดียวกัน การเข้าถึงระดับการติดตั้งจัดการที่ตำแหน่งที่แอปถูกติดตั้ง ดังนั้นตรวจสอบที่นั่นหากแอปไม่ปรากฏในรายการ OAuth
- การจับคู่ชื่อผู้ใช้สาธารณะไม่ใช่หลักฐาน หากคุณกำลังตรวจสอบว่าชื่อผู้ใช้ปรากฏที่อื่นหรือไม่ การจับคู่บนโปรไฟล์สาธารณะเป็นเพียงเบาะแส ไม่ใช่หลักฐานความเป็นเจ้าของ TraceSeek สามารถค้นหาชื่อผู้ใช้สาธารณะที่รู้จักได้ใน 3,000+ แพลตฟอร์ม แต่ไม่สามารถตรวจสอบหรือเพิกถอนการตั้งค่า GitHub แทนคุณได้
เมื่อใดควรถือว่าการอนุญาตน่าสงสัย
คุณไม่จำเป็นต้องมีเรื่องราว dramatic เพื่อลงมือ สัญญาณเชิงปฏิบัติคือ: คุณไม่รู้จักแอป, สิทธิ์กว้างกว่าภารกิจที่แอปทำ หรือคุณจำไม่ได้ว่าอนุญาตไปเมื่อไร ในกรณีเหล่านั้น การเพิกถอนรายการที่เฉพาะเจาะจงเป็นขั้นตอนที่สมเหตุสมผล ตามด้วยการตรวจสอบว่ามีสิ่งใดที่คุณพึ่งพาอยู่หยุดทำงานหรือไม่ หากเวิร์กโฟลว์หยุดทำงานจริง ให้อนุญาตใหม่หลังจากยืนยันว่าแอปคือแอปที่คุณคาดหวังและขอบเขตตรงกับสิ่งที่ต้องการ