如何在Azure角色中实现更好的特权管理



当我设置我的Azure角色时,我只有一种方法来指定运行角色代码的进程将拥有多少特权-通过使用<Runtime executionContext> XML标记。

然而,这看起来粗粒度。如果我指定"elevated",我的代码在"Local system"下运行,这是无限特权,如果我指定"limited",我的代码在一些低特权用户下运行,没有我的代码需要的特权。

是否有一些方便的方法来运行Azure角色代码下的一些自定义用户,有有限的特权,我自己会控制?

现在,您的代码已经作为受限用户运行了。实际上,VM上没有用户——它使用SID注入技术来获取安全上下文。从你的问题来看,似乎你需要的不仅仅是一个普通用户,而不是一个管理员?

如果你真的想拥有不同的权限,你需要创建一些用户(使用Startup tasks和net add或DirectoryServices)并设置权限。所有这些都是可脚本化的。

现在更有挑战性的部分是作为该用户运行代码。为此,您需要执行所谓的模拟。更有特权的代码(通常是管理进程)可以为本地用户获取令牌,并使用它来模拟用户。然后,代码以用户身份运行并受到限制。在。net和其他语言中,模拟是一个很好的主题。

如果你想要一个作为另一个用户运行代码的聪明例子,请查看David Aiken的这篇文章:

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

最新更新