OAuth 授權實際上是什麼
當你在第三方應用程式上點選「Authorize」,GitHub 會記錄一筆授權:該應用程式此後可在你核准的權限範圍內代表你執行操作。這筆授權不是你的瀏覽器工作階段,不是 SSH 金鑰,也不是具有自身安裝設定的已安裝 GitHub App。這些項目各自在不同位置撤銷或移除,因此第一步是先確認你眼前看到的是哪一種存取權。
| 你看到的項目 | 它是什麼 | 在哪裡管理 |
|---|---|---|
| 列出你核准權限範圍的第三方應用程式 | OAuth 授權 | Settings → Applications → Authorized OAuth Apps |
| 你為 SSH 上的 Git 操作新增的金鑰組 | SSH 金鑰 | Settings → SSH and GPG keys |
| 你在此瀏覽器中已登入 | 登入工作階段 | 登出,或工作階段頁面 |
| 安裝在儲存庫或組織上的應用程式 | GitHub App 安裝 | 該應用程式或組織的安裝設定 |
如果你看到的項目不是 OAuth 授權,從 OAuth 清單撤銷並不會處理它。
為什麼撤銷前要先檢視
舊授權可能仍在執行你依賴的功能,例如部署工具、編輯器外掛或 CI 整合。撤銷它會切斷該應用程式透過此授權的存取,這正是目的,但也可能中斷仍依賴它的工作流程。行動前請檢視應用程式名稱、列出的權限,以及你上次使用它的時間。
GitHub 建議檢視已授權的應用程式,包括可存取私有儲存庫的應用程式。來源
如果你不認識該應用程式,或它持有的存取權限超出其執行任務所需,這就是應該撤銷的情況。如果你認識它且仍在使用,請先考慮目前的權限範圍是否仍合適,再決定是否撤銷。
撤銷前後檢查清單
把這份清單當作簡短紀錄,以便判斷發生了什麼變化,必要時也能補救。
撤銷前
- 記下應用程式名稱與顯示的權限,以便日後辨識同一筆項目。
- 檢查你目前使用的功能是否依賴該應用程式:建置、部署、編輯器登入、排程工作。
- 確認你看到的是 Authorized OAuth Apps,而不是 SSH 金鑰、工作階段或已安裝的應用程式。
- 決定你要撤銷單一特定授權,還是全部授權。
撤銷後
- 重新載入 Authorized OAuth Apps 頁面,確認該項目已消失。
- 執行一次使用該應用程式的工作流程,並留意它是否要求你重新授權。出現該提示是授權已移除的預期跡象。
- 如果工作流程中斷且你仍需要它,請刻意重新授權,並檢視它要求的權限範圍。
- 在你確定沒有其他功能依賴已撤銷的存取權之前,請保留帳號復原方式。
如何撤銷授權
開啟帳號 Settings,在 Integrations 下找到 Applications,再點選 Authorized OAuth Apps 檢視存取權。來源
在清單中,開啟你想移除的特定應用程式選單。
不認識或已過時的授權可從應用程式選單撤銷;該頁面也提供 Revoke all。來源
當你只想移除一個應用程式時,請撤銷該筆項目。Revoke all 選項適用於你已檢視清單並想清除所有授權的情況;它會影響該頁面上的每一個應用程式,而不只是你正在查看的那一個。
需要留意的界線
- 撤銷不等於刪除。 移除授權會終止日後透過該授權的存取,但不會移除應用程式已儲存或複製到 GitHub 以外的資料,也不保證資料已被抹除。
- 撤銷不等於登出。 你在 GitHub 的瀏覽器工作階段是獨立的;撤銷應用程式不會讓你登出,登出也不會撤銷應用程式授權。
- SSH 金鑰不是 OAuth 應用程式。 如果你擔心的是金鑰,移除金鑰要在 SSH and GPG keys 設定中進行,而不是在 Authorized OAuth Apps。
- 已安裝的 GitHub App 不是同一筆項目。 安裝層級的存取權是在應用程式安裝的位置管理,因此若應用程式未出現在 OAuth 清單中,請到該處檢查。
- 公開使用者名稱相符不是證明。 如果你在查某個帳號是否出現在其他地方,公開個人檔案上的相符結果只是線索,不是所有權的證據。TraceSeek 可在 3,000+ 個平台上查詢已知的公開使用者名稱,但無法為你檢視或撤銷 GitHub 設定。
何時應將授權視為可疑
你不需要戲劇性的故事才能行動。實用的訊號是:你不認識該應用程式、權限超出其執行任務所需,或你不記得曾授權它。在這些情況下,撤銷該筆特定項目是合理的步驟,接著檢查你依賴的功能是否停止運作。如果工作流程確實中斷,請先確認該應用程式是你預期的,且權限範圍符合其需求,再重新授權。