我們組織的Web應用程序主要由擁有Active Directory帳戶的用戶在內部使用。目前,我們的每個應用程序都在自己的AD帳戶下運行。我們授予對數據庫端的應用程序AD帳戶的訪問權限,以進行數據訪問。我應該在asp.net中使用模擬嗎?
我們的數據庫管理員想要擺脫這種審計原因。他希望來自應用程序的每個數據請求都帶有登錄用戶的AD憑證,而不是應用程序的AD憑證。我明白這是使用模擬完成的事情。這是推薦的做法嗎?有什麼好處和缺點?有沒有更好的方法來做到這一點?
謝謝。
我們組織的Web應用程序主要由擁有Active Directory帳戶的用戶在內部使用。目前,我們的每個應用程序都在自己的AD帳戶下運行。我們授予對數據庫端的應用程序AD帳戶的訪問權限,以進行數據訪問。我應該在asp.net中使用模擬嗎?
我們的數據庫管理員想要擺脫這種審計原因。他希望來自應用程序的每個數據請求都帶有登錄用戶的AD憑證,而不是應用程序的AD憑證。我明白這是使用模擬完成的事情。這是推薦的做法嗎?有什麼好處和缺點?有沒有更好的方法來做到這一點?
謝謝。
您添加以下到Web.config:
<configuration>
<system.web>
<identity impersonate="true"/>
</system.web>
</configuration>
Web服務器將「冒充認證用戶」,你的DBA會看到用戶的網絡ID。您也可以使用配置文件來模擬特定用戶:
<identity impersonate="true" userName="user" password="pwd" />
但這不是您的DBA在這種情況下所尋找的。
是的,「模仿」聽起來可能很奇怪,但這是驗證內部網絡上的Web應用程序用戶的完美標準方式。您必須確保每個用戶都擁有必要的文件夾權限等,以便完成他們需要做的所有事情,因爲Web服務器現在以名稱執行這些操作,而不是以普通應用程序用戶的名義執行操作。當用戶嘗試做他們以前能夠做的事情時,您會很快聽到這些權限問題,並拒絕訪問。但一旦他們每個人都獲得了必要的權限,那就沒問題了。
+1 - 我會補充說,所有的應用程序用戶應該被放置在一個應用程序組中,並且該組應該被授予必要的權限(而不是個人用戶)。 – 2013-03-27 17:15:27
是的,這就是DBA提出的做法是推出組策略。 – Riz 2013-03-27 21:00:19
感謝info @criticalfix。我以前從來沒有遇到過這樣的事情,所以我好像在籬笆上。 – Riz 2013-03-27 21:02:56