簡體   English   中英

用於 Intranet/Internet 的 Windows 身份驗證

[英]Windows authentication for Intranet/Internet

我正在為我的公司開發 ASP.net web 應用程序。 有些用戶在內部網絡(Intranet)中使用這個站點,有些用戶使用 Internet 站點。 我正在使用 Windows 身份驗證模式。

我需要找到一種方法,不對內網用戶提示Windows Authentication mode 並為 Internet 用戶提示 Windows Authentication mode。

我怎樣才能做到這一點?

根據您的描述,IIS 中的 Windows 身份驗證可以解決問題。

首先是一些鏈接:

但是請注意以下幾點:

如果滿足以下所有條件,將發生單點登錄 (SSO)(即在不提供用戶名和密碼的情況下訪問應用程序):

  • 客戶端計算機和服務器屬於同一個 Active Directory 域。
  • 客戶端計算機上的用戶 session 是來自 AD 域的用戶。
  • 客戶端計算機可以訪問域服務器(即負責用戶登錄的服務器)
  • 瀏覽器是 Internet Explorer。
  • 使用的 URL 指向服務器的 FQDN(即http://SERVERNAME.DOMAIN.NAME/不僅僅是http://SERVERNAME/
  • 如果您使用模擬,授權用戶必須具有對應用程序目錄的讀取權限。 該應用程序將基本上使用他們的憑據運行。 (更多詳情見MSDN 文章

在任何其他情況下,系統都會提示用戶輸入 Active Directory 域中帳戶的憑據(用戶名和密碼)。 因此,從互聯網訪問您的網絡服務器的用戶會收到一個彈出窗口,要求他們提供用戶名和密碼。

請注意,對於不使用單點登錄的用戶(提示用戶輸入用戶名和密碼),HTTP 身份驗證模式很可能是 BASIC,這意味着任何可以攔截該連接的人都可以看到正在交換的用戶名和密碼。 如果您使用此技術 go 使客戶端和服務器之間的連接被加密(HTTPS 或者可能是 VPN)。

確保您的網絡服務器在域上運行,並且您的所有 Intranet 用戶都具有對 Web 服務器上包含您的網站的文件夾的讀取權限。

然后,確保您的 web.config 中有(假設您想檢測哪個域用戶正在訪問您的站點。

最后,打開 IIS 管理器並右鍵單擊該網站並選擇“屬性”。 從那里單擊“目錄安全”選項卡,然后單擊“身份驗證和訪問控制”中的“編輯”。 取消選中“匿名訪問”並確保選中“集成 Windows 身份驗證”。 這應該使網站按預期運行(假設您的 Intranet 客戶端使用 IE)

據我所知,windows 身份驗證只能用於 Intranet,但您也可以包括 forms 身份驗證來驗證互聯網用戶。 此頁面包含一些信息和有關如何執行此操作的教程的鏈接。

我可能會將應用程序部署在兩個不同的服務器上。 windows 身份驗證在防火牆內的服務器上進行,windows 身份驗證的用戶可以訪問和使用。 在公眾面前,您將 web 配置設置為使用 forms 身份驗證,然后擔心保護與后端的連接。

但是,如果您想為此使用單個服務器,您可能需要閱讀此 MSDN 文章: Mixing Forms and Windows Security in ASP.NET

暫無
暫無

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

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