2013-03-27 38 views
1

我們組織的Web應用程序主要由擁有Active Directory帳戶的用戶在內部使用。目前,我們的每個應用程序都在自己的AD帳戶下運行。我們授予對數據庫端的應用程序AD帳戶的訪問權限,以進行數據訪問。我應該在asp.net中使用模擬嗎?

我們的數據庫管理員想要擺脫這種審計原因。他希望來自應用程序的每個數據請求都帶有登錄用戶的AD憑證,而不是應用程序的AD憑證。我明白這是使用模擬完成的事情。這是推薦的做法嗎?有什麼好處和缺點?有沒有更好的方法來做到這一點?

謝謝。

回答

1

您添加以下到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

+1 - 我會補充說,所有的應用程序用戶應該被放置在一個應用程序組中,並且該組應該被授予必要的權限(而不是個人用戶)。 – 2013-03-27 17:15:27

+0

是的,這就是DBA提出的做法是推出組策略。 – Riz 2013-03-27 21:00:19

+0

感謝info @criticalfix。我以前從來沒有遇到過這樣的事情,所以我好像在籬笆上。 – Riz 2013-03-27 21:02:56

相關問題