Как улучшить управление привилегиями в ролях Azure? - PullRequest
0 голосов
/ 28 июля 2011

AFAIK, когда я настраиваю свои роли Azure, у меня есть только один способ указать, сколько привилегий будет иметь процесс, выполняющий код роли - с помощью <Runtime executionContext> XML-тега.

Однако это выглядит грубым образом.Если я укажу «повышенные», мой код будет работать в «Локальной системе», что является неограниченными привилегиями, и если я укажу «ограниченные», мой код будет работать с каким-то пользователем с низкими привилегиями, у которого нет привилегий, в которых нуждается мой код.

есть какой-нибудь удобный способ запуска кода роли Azure под каким-то пользовательским пользователем с ограниченными привилегиями, которым я сам управляю?

1 Ответ

2 голосов
/ 28 июля 2011

Прямо сейчас, ваш код уже будет работать как пользователь с ограниченными правами.На самом деле, на виртуальной машине нет пользователей - она ​​использует технику внедрения SID для получения контекста безопасности вообще.От вашего вопроса кажется, что вам нужно больше, чем обычный пользователь, но меньше, чем администратор?

Если вы действительно хотите иметь другие разрешения, вам нужно создать несколько пользователей (используйте задачи запуска и net add илиDirectoryServices) и установить разрешения.Все это доступно для сценариев.

Более сложная задача - запустить ваш код от имени этого пользователя.Для этого вам нужно сделать то, что называется олицетворением.Ваш более привилегированный код (обычно процесс администратора) может получить токен для локального пользователя и использовать его для олицетворения пользователя.Затем код запускается от имени пользователя и ограничен.Олицетворение - это тема, хорошо освещаемая в .NET и других языках.

Если вы хотите умный пример запуска кода от имени другого пользователя, прочитайте этот пост Дэвида Айкена:

http://www.davidaiken.com/2011/01/19/running-azure-startup-tasks-as-a-real-user/

...