Я пытаюсь найти лучшие практики безопасности для разрешений приложений в контексте управления ресурсами Azure.
В настоящее время для management.azure.com указано только одно разрешение - management.azure.com/user_impersonation (предварительная версия). Это делегированное олицетворение пользователя может стать серьезной проблемой и привести к захвату учетной записи вредоносным приложением.
Подумайте о сценарии, в котором пользователь с согласием с ролью глобального администратора авторизует токен доступа для приложения. Приложение может использовать токен и делать с лазурным клиентом все, что угодно.
Другой сценарий, в котором привилегированный пользователь назначает роль участника нескольким подпискам. Токен, авторизованный этим пользователем, может быть использован приложением для изменения ресурсов в любой из подписок.
В отличие от api graph (graph.microsoft.com), где вы можете вручную выбрать разрешение (user.read), api управления ресурсами имеет только один вариант - user_impersonation!
Вы можете возразить, почему привилегированный пользователь разрешает действие, но люди совершают ошибки. Наша задача - предотвратить или минимизировать такой риск намеренно. Итак, как лучше всего разрешить приложению управлять ресурсами в Azure и минимизировать риск для безопасности?