Vì sao tạm dừng có thể để lại quyền truy cập
Khi cần tạm dừng một tích hợp nhanh chóng, động tác hiển nhiên là tạm dừng hoặc gỡ cài đặt nó. Động tác đó xử lý phía installation. Nó không tự động xử lý phía ủy quyền, vốn là một quyền cấp riêng với chủ sở hữu riêng.
Tạm dừng một GitHub App đã cài đặt sẽ tạm thời chặn quyền truy cập vào các tài nguyên thuộc tài khoản installation đó. Nguồn
Sự khác biệt này quan trọng vì một GitHub App có thể nắm giữ hai loại quyền truy cập cùng lúc: quyền installation đối với tài nguyên của một tài khoản, và quyền ủy quyền người dùng để hành động thay mặt một người. Tạm dừng một loại không tạm dừng loại kia.
Tạm dừng không xóa quyền ủy quyền riêng biệt để ứng dụng hành động thay mặt người dùng. Nguồn
Quyền installation so với quyền ủy quyền người dùng
Dùng bảng này để quyết định bạn thực sự cần thay đổi bề mặt nào.
| Điều bạn muốn dừng | Bề mặt cần kiểm tra | Tạm dừng làm gì | Tạm dừng không làm gì |
|---|---|---|---|
| Ứng dụng truy cập tài nguyên thuộc tài khoản đã cài đặt | Installation trên tài khoản đó | Tạm thời chặn quyền truy cập của installation đó | Xóa quyền ủy quyền người dùng |
| Ứng dụng hành động thay mặt một người | Authorized GitHub Apps của người đó | Không làm gì tự thân | Dừng quyền ủy quyền cấp người dùng |
| Cả hai, cho một tài khoản | Cả hai bề mặt | Chỉ bao phủ phía installation | Để quyền cấp còn lại nguyên vẹn |
Một GitHub App không phải là phiên trình duyệt đang hoạt động mà bạn chỉ cần đăng xuất. Tạm dừng installation là kiểm soát cấp tài khoản đối với tài nguyên; hủy ủy quyền là kiểm soát cấp người dùng đối với hành động được ủy quyền. Chúng được quản lý riêng và nên được xác minh riêng.
Danh sách kiểm tra thực tế cho một lần tạm dừng
- Xác định mục tiêu trước. Quyết định bạn đang tạm dừng phạm vi tiếp cận tài nguyên của ứng dụng vào một tài khoản, dừng nó hành động thay mặt người dùng, hay cả hai. Câu trả lời quyết định bề mặt bạn cần chạm tới.
- Xử lý installation. Tạm dừng installation trên tài khoản sở hữu tài nguyên bạn muốn bảo vệ. Coi đây là tạm thời và có thể đảo ngược.
- Kiểm tra phía người dùng riêng. Nếu ứng dụng được ủy quyền hành động thay mặt bạn và bạn muốn dừng điều đó, hãy vào Authorized GitHub Apps và hủy ủy quyền tại đó. Đừng cho rằng việc tạm dừng đã bao phủ điều này.
- Ghi lại bạn đã thay đổi gì và ở đâu. Ghi chú installation của tài khoản nào bạn đã tạm dừng và quyền ủy quyền người dùng nào, nếu có, bạn đã gỡ. Điều này ngăn một lần dọn dẹp sau này bỏ sót một trong hai.
- Đảo ngược một cách có chủ đích. Nếu việc tạm dừng là tạm thời, chỉ bật lại installation sau khi bạn đã xác nhận liệu quyền ủy quyền người dùng có nên được khôi phục hay không.
Gỡ cài đặt mạnh hơn tạm dừng, nhưng vẫn có phạm vi
Nếu tạm dừng không đủ và bạn muốn installation biến mất, gỡ cài đặt là hành động mạnh hơn ở phía installation. Nó vẫn không tự động chạm tới quyền ủy quyền người dùng.
Gỡ cài đặt xóa quyền truy cập installation của tài khoản đó; hủy ủy quyền trong Authorized GitHub Apps là một hành động riêng khi chủ sở hữu muốn dừng việc ứng dụng hành động thay mặt họ. Nguồn
Hệ quả thực tế: sau khi gỡ cài đặt, hãy kiểm tra Authorized GitHub Apps nếu chủ sở hữu cũng muốn ứng dụng ngừng hành động thay mặt họ. Gỡ một kết nối không phải bằng chứng rằng kết nối kia đã biến mất, và một ứng dụng không còn xuất hiện ở một nơi có thể vẫn giữ quyền cấp kia.
Các lối sai phổ biến
- Cho rằng tạm dừng là thu hồi toàn bộ. Nó chỉ chặn quyền truy cập tài nguyên của installation. Quyền ủy quyền người dùng vẫn tồn tại cho đến khi bạn xử lý nó.
- Coi hủy ủy quyền là gỡ cài đặt. Hủy ủy quyền dừng việc ứng dụng hành động thay mặt bạn, nhưng installation trên một tài khoản có thể vẫn còn. Hãy quyết định việc tạm dừng của bạn thực sự cần cái nào.
- Dọn dẹp một tài khoản và quên tài khoản kia. Installation thuộc về tài khoản; quyền ủy quyền thuộc về người dùng. Một kế hoạch tạm dừng chỉ nêu một bề mặt thường sẽ để bề mặt kia nguyên vẹn.
- Bật lại quá sớm. Nếu bạn tạm dừng thay vì gỡ cài đặt, khôi phục installation có thể khôi phục quyền truy cập tài nguyên trước khi bạn xem xét phía người dùng.
Xác minh cả hai bề mặt trước khi kết luận
Một lần tạm dừng chỉ hoàn tất khi từng bề mặt bạn định thay đổi đã được kiểm tra theo đúng tiêu chí của nó. Xác nhận trạng thái installation trên tài khoản sở hữu, sau đó xác nhận trạng thái ủy quyền trong Authorized GitHub Apps cho người dùng liên quan. Đừng suy ra cái này từ cái kia, và đừng mô tả ứng dụng là đã đăng xuất — nó chưa bao giờ là một phiên trình duyệt.
Nếu nhiệm vụ tiếp theo của bạn là gỡ một quyền cấp OAuth cũ và bạn muốn tách việc đó khỏi các phiên đăng nhập, hướng dẫn liên quan về thu hồi một ứng dụng GitHub OAuth cũ mà không nhầm với phiên đăng nhập đề cập bước dọn dẹp khác biệt đó.