簡體   English   中英

使用帶有模擬的Windows身份驗證的Web應用程序的IIS

[英]IIS with a Web Application using Windows Authentication with Impersonation

我沒有使用它,但這是一個有趣的問題。 如果我在IIS上設置Web應用程序以使用Windows身份驗證並模擬經過身份驗證的用戶和我的ConnectionString到SQLServer數據庫使用Integrated Security=true; ,我的應用程序在嘗試連接數據庫時將使用由應用程序驗證的用戶?

如果是的話,這是一件好事嗎? (該數據庫具有LDAP / AD“域用戶”權限。考慮一個可審計的數據庫,其中每個用戶都將記錄您的操作。)

我相信只有在使用kerberos身份驗證的情況下,EK的答案才是真實的。 你所描述的被稱為“雙跳”。 實質上,如果用戶對“Server-A”進行身份驗證,則“Server-A”上運行的代碼無法轉向並使用這些憑據訪問其他網絡資源,例如“Server-B”上的SQL Server。 這是詳細的,但這是一個直接鏈接: 博客文章

如果您在kerberos架構網絡上運行,則可以將服務器標記為受信任的委派服務器。 但對大多數人來說,情況並非如此。 如果您想了解有關如何執行此操作的詳細信息,請參閱此鏈接

是的,與SQL Server的連接將在這些用戶之下。

一般來說,這並不好。 但這取決於具體情況。 以下是需要考慮的主要因素:

  1. 每個用戶都需要自己的連接。 即使使用連接池,也無法重用來自不同用戶的連接。 創建連接是相對昂貴的操作。 每個連接都需要一點內存
  2. 每個用戶都需要登錄(或者至少是用戶所屬的Windows組需要登錄)。 這可以是創建登錄等的額外維護。另一方面,可以以不同的方式保護每個這樣的登錄。 重要的是,如果使用單個帳戶連接到SQL Server,也可以實現為不同用戶保護對象

是的,它將使用經過身份驗證的用戶並模擬“經過身份驗證的用戶”訪問數據庫的權限。 有關更多信息,請查看此鏈接如何:在ASP.NET 2.0中使用模擬和委派

另一種方法是使用服務帳戶,該帳戶具有對數據庫的完全訪問權限的非交互式Windows域帳戶。

這允許連接池消除復雜的權限模型,以允許所選用戶對一組數據執行刪除。

但這確實意味着必須將審計邏輯添加到應用程序的數據層以及訪問數據庫的存儲過程,以確保將調用用戶記錄為數據庫訪問的一部分,否則服務帳戶將是唯一的帳戶。審計表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM