簡體   English   中英

在公共域上自動進行Windows身份驗證?

[英]Automatic Windows Authentication on public domain?

我正在開發一個Asp.NET Core Web應用程序,並且按照官方的Microsoft指南在其上啟用了Windows身份驗證:

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-2.2&tabs=visual-studio

身份驗證有效,但是有一件事我不清楚。 如果我使用Windows域中的計算機上的瀏覽器訪問網站,則根據訪問方式,我有兩種不同的行為:

  • 如果我使用地址中的機器名稱(例如: https:// devmachine01 / )進行訪問,瀏覽器將自動登錄並進行身份驗證,而無需用戶執行任何操作
  • 如果我使用計算機的公共域名(例如: https : //mypublicwebsite.com )訪問,瀏覽器將要求我輸入Windows憑據,如下圖所示: 在此處輸入圖片說明

我現在的問題是:

  1. 即使我使用公共域而不是計算機名進行訪問,有沒有辦法使瀏覽器自動登錄? (顯然,只有運行瀏覽器的計算機登錄到域中時,我才希望它能夠自動運行)
  2. 如果第一個問題的答案是否定的,那么我是否至少可以配置Asp.NET Core Web應用程序,以便它記住用戶,因此用戶僅需登錄一次(使用Cookie或類似機制)? 使用上面我鏈接的文章中提供的說明,用戶每次關閉並重新打開瀏覽器時都必須重新輸入其憑據,這不是最方便的。

Windows身份驗證是允許自動登錄的身份驗證方案,它基於屬於同一域的所有內容:身份提供程序(AD),Web服務器和客戶端(本地計算機)。 從定義上講,公共網站不是域的一部分,因此Windows Auth(或至少其自動登錄功能)在這種環境中無法運行。

通常,您仍然可以總體上使用Windows Auth或AD。 例如,Azure Active Directory旨在在分布式環境中工作。 但是,您必須手動進行身份驗證(通過傳統的用戶名和密碼或通過OAuth流)。 您不能使用公共網站自動登錄。

編輯

抱歉,我起初對您的問題不夠了解。 雖然它不會改變我的答案,但確實需要更多說明。 從技術上講,這台機器是在領域內的,但它的朝外立面不是 這就是為什么可以通過主機名訪問它,但不能通過實際的Web域訪問它的原因。 這就是說,你在大你的域暴露在計算機到互聯網絕對瘋狂 即使您可以使用它,打開的漏洞的安全風險也遠遠超過了自動登錄等簡單功能。 你的內部網絡應該是內部的 ,並且你應該從域名立即刪除本機。

暫無
暫無

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

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