Чому тимчасове вимкнення може залишити доступ
Коли потрібно швидко призупинити інтеграцію, очевидний крок — призупинити або видалити її. Це стосується боку інсталяції. Це не стосується автоматично боку авторизації, яка є окремим дозволом з іншим власником.
Призупинення встановленого GitHub App тимчасово блокує доступ до ресурсів, що належать обліковому запису цієї інсталяції. Джерело
Ця різниця важлива, оскільки GitHub App може одночасно мати два види доступу: доступ інсталяції до ресурсів облікового запису та авторизацію користувача діяти від імені особи. Призупинення одного не призупиняє іншого.
Призупинення не скасовує окремої авторизації застосунку діяти від імені користувача. Джерело
Доступ інсталяції проти авторизації користувача
Скористайтеся цією таблицею, щоб визначити, яку поверхню вам насправді потрібно змінити.
| Що ви хочете припинити | Поверхня для перевірки | Що робить призупинення | Чого воно не робить |
|---|---|---|---|
| Застосунок отримує доступ до ресурсів, що належать обліковому запису, який встановив | Інсталяція на цьому обліковому записі | Тимчасово блокує доступ цієї інсталяції | Не скасовує авторизацію користувача |
| Застосунок діє від імені особи | Authorized GitHub Apps для цього користувача | Саме по собі нічого | Не зупиняє авторизацію на рівні користувача |
| Обидва, для одного облікового запису | Обидві поверхні | Охоплює лише бік інсталяції | Залишає інший дозвіл на місці |
GitHub App — це не активний сеанс браузера, з якого можна просто вийти. Призупинення інсталяції — це контроль на рівні облікового запису над ресурсами; скасування авторизації — це контроль на рівні користувача над делегованою дією. Вони керуються окремо й перевіряються окремо.
Практичний контрольний список для тимчасового вимкнення
- Спочатку назвіть мету. Вирішіть, чи призупиняєте доступ застосунку до ресурсів облікового запису, чи зупиняєте його дії від імені користувача, чи обидва. Відповідь визначає, якої поверхні ви торкаєтеся.
- Обробіть інсталяцію. Призупиніть інсталяцію на обліковому записі, якому належать ресурси, які ви хочете захистити. Розглядайте це як тимчасове й оборотне.
- Перевірте бік користувача окремо. Якщо застосунок був авторизований діяти від вашого імені, і ви хочете це припинити, перейдіть до Authorized GitHub Apps і скасуйте авторизацію там. Не припускайте, що призупинення це охопило.
- Запишіть, що ви змінили й де. Занотуйте, інсталяцію якого облікового запису ви призупинили та яку авторизацію користувача, якщо така була, ви видалили. Це допоможе пізнішому прибиранню не пропустити одну з двох.
- Скасовуйте обдумано. Якщо пауза була тимчасовою, знову ввімкніть інсталяцію лише після того, як підтвердите, чи слід також відновити авторизацію користувача.
Видалення сильніше за призупинення, але все ще обмежене
Якщо тимчасової паузи недостатньо і ви хочете позбутися інсталяції, видалення — це сильніша дія на боці інсталяції. Воно все ще саме по собі не зачіпає авторизацію користувача.
Видалення прибирає доступ інсталяції цього облікового запису; скасування авторизації в Authorized GitHub Apps — це окрема дія, коли власник хоче зупинити дії застосунку від свого імені. Джерело
Практичний наслідок: після видалення перевірте Authorized GitHub Apps, якщо власник також хоче, щоб застосунок припинив діяти від його імені. Видалення одного зв’язку не є доказом, що інший зник, і застосунок, який більше не відображається в одному місці, може все ще мати інший дозвіл.
Поширені шляхи помилок
- Припущення, що призупинення — це повне відкликання. Воно блокує лише доступ інсталяції до ресурсів. Авторизація користувача зберігається, доки ви не врегулюєте її.
- Ставлення до скасування авторизації як до видалення. Скасування авторизації зупиняє дії застосунку від вашого імені, але інсталяція на обліковому записі може залишитися. Вирішіть, що саме потребує ваше вимкнення.
- Прибирання одного облікового запису й забуття іншого. Інсталяції належать обліковим записам; авторизації належать користувачам. План вимкнення, який називає лише одну поверхню, зазвичай залишить іншу недоторканою.
- Передчасне повторне ввімкнення. Якщо ви призупинили, а не видалили, відновлення інсталяції може відновити доступ до ресурсів, перш ніж ви переглянули бік користувача.
Перевірка обох поверхонь, перш ніж вважати завершеним
Вимкнення завершене лише тоді, коли кожну поверхню, яку ви мали намір змінити, перевірено на її власних умовах. Підтвердьте стан інсталяції на обліковому записі-власнику, потім підтвердьте стан авторизації в Authorized GitHub Apps для відповідного користувача. Не робіть висновків про одне з іншого й не описуйте застосунок як такий, що вийшов із системи — це ніколи не був сеанс браузера.
Якщо ваше наступне завдання — видалити старіший дозвіл OAuth і ви хочете відокремити це від сеансів входу, супутній посібник про відкликання старого застосунку GitHub OAuth без плутанини з сеансом входу охоплює цей інший крок прибирання.