2011-07-28 15 views
0

AFAIK當我設置Azure角色時我只有一種方法來指定進程運行角色代碼將具有多少特權 - 通過使用<Runtime executionContext> XML標記。我如何在Azure角色中擁有更好的特權管理?

但是這看起來粗糙。如果我指定「提升」,則我的代碼在「本地系統」下運行,這是「無限特權」,如果指定「有限」,我的代碼將運行在某些不具有我的代碼所需特權的低特權用戶下。

是否有一些方便的方法可以在一些自定義用戶權限下運行Azure角色代碼:我自己可以控制的權限有限?

回答

2

現在,您的代碼已經以有限的用戶身份運行。實際上,VM上沒有用戶 - 它使用SID注入技術來獲取安全上下文。從你的問題來看,你似乎需要的不僅僅是普通用戶,還不如管理員?

如果您確實想擁有不同的權限,則需要創建一些用戶(使用啓動任務和網絡添加或DirectoryServices)並設置權限。所有這些都是可以編寫腳本的。

更具挑戰性的部分現在來運行您的代碼作爲該用戶。爲此,您需要執行所謂的模擬。您的更多特權代碼(通常是管理進程)可以爲本地用戶獲取令牌並用它來模擬用戶。代碼隨後以用戶身份運行並受到限制。模擬在.NET和其他語言中是一個很好的主題。

如果你想運行的代碼作爲其他用戶的一個聰明的例子,看看這個職位由大衛·艾肯:

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

+0

大,模仿不是最巧妙的事情,但會奏效。 – sharptooth

相關問題