Фактические преимущества использования аутентификации приложений GitHub для конвейеров Azure (вместо OAuth или PAT)?

#azure #azure-devops #azure-pipelines

Вопрос:

Существует документация для конвейеров Azure, в которой подробно описывается, какие проверки подлинности можно выполнить для доступа к репозиториям GitHub: приложение GitHub, OAuth и личный токен доступа. (https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/github?view=azure-devopsamp;tabs=yaml#github-app-authentication)

В документации говорится, что аутентификация приложения GitHub является «рекомендуемой», но позже не выясняется, почему это так… Например, есть одна интересная вещь, которая работала с аутентификацией приложения GitHub: создание конвейера yaml, в котором вы определяете ресурс ACR контейнера с «последним» триггером. При правильном подключении службы ARM из yaml каким-то образом Azure DevOps создает веб-интерфейс для конкретного ACR, однако, если вы используете PAT, это не так.

Существует ли реальная наилучшая практика для данного типа аутентификации? Или вообще хороший аргумент, почему одно лучше другого?

Ответ №1:

Маркер личного доступа и маркер OAuth связывают конвейеры Azure с GitHub с вашей учетной записью пользователя. Ваш токен доступа будет использоваться для загрузки репо, и конвейер сможет получить доступ к токену для доступа к любому хранилищу, к которому имеет доступ ваш пользователь. Хотя это часто удобно, это проблема, поскольку вы можете быть не единственным человеком, использующим интеграцию, поэтому другие могут использовать ваши учетные данные, изменив конвейер.

У токенов, привязанных к пользователю, также есть проблема, связанная с тем, что владелец этой учетной записи пользователя может покинуть компанию, нарушив все конвейеры или, что еще хуже, потребовав небольшой перенастройки, чтобы убедиться, что пользователь потеряет весь доступ к репозиториям, к которым имеет доступ конвейер.

Приложение GitHub позволит вам точно настроить, к каким репозиториям должен быть разрешен доступ для конвейеров Azure. Он отделен от вашей учетной записи пользователя, и доступ может быть ограничен только теми репозиториями, которые вы хотите.

Комментарии:

1. Спасибо вам за ваш ответ! Это может быть бессмысленный вопрос, но есть ли способ определить, когда вы начинаете использовать приложение GitHub Azure Pipelines, что происходит за кулисами? Или, чтобы сделать мой вопрос более понятным, если бы вас попросили объяснить, почему использование такого рода аутентификации безопасно, что бы вы ответили?

2. Более безопасно использовать OAuth, потому что вы можете точно настроить, к каким репозиториям должны быть доступны конвейеры Azure. При использовании PAT вы можете делать все, что может делать пользователь, которому принадлежит PAT. И часто PAT создается со слишком большим количеством разрешений, потому что трудно понять, как создать такой, у которого есть только необходимые области. Многие люди устанавливают режим полного доступа.