2009-01-10 28 views
2

我正在尋找我的組織的強制門戶。我看到他們中的很多人會允許用戶通過一次。)輸入憑證或b。)付錢。我正在尋找的是有點不同。讓我進入一些關於我的系統的基礎知識,我正在使用活動目錄和內部DNS運行基於Windows的網絡。我有一個內部網,我們的員工每天都使用它,並使用該人員的Windows憑據在系統上對其進行身份驗證。處理我的需求的強制門戶

員工必須每天輸入時間,如果他們不這樣做,那麼我希望有一個強制門戶將他們重定向到他們的時間輸入頁面,而不是讓他們進入浩瀚的互聯網世界,直到他們進入時間。

我是一名開發人員,因此我可以編寫一個向系統返回True或False的腳本,但我需要的是一個可以與AD登錄交互的系統,並且可以在用戶請求訪問外部時運行此腳本網絡。

編輯: 我接受一個答案,回答我的問題,但是,展望編碼插座爲基礎的方法我沒有時間了。

作爲解決方法,我發現我的防火牆有一個可自定義的免責聲明頁面,允許使用javascript。我將查詢web服務以查看是否輸入時間,然後觸發免責聲明頁面的「允許」功能,否則我將重定向到時間輸入頁面。看起來像一個足夠簡單的解決方案,唯一的問題是如果這個人保持他們的瀏覽器會話過夜。

+0

您的答案解決了嗎? – 2009-01-13 07:44:44

回答

0

那麼現在我只能真正在.NET中編寫代碼,一些OSS可能會有更好的想法。

如果不使用代理服務器,最好在網關上使用透明代理服務器,我無法看到這樣做。必須有寫這些東西的人。當然,每個商業WiFi熱點都有一個,但你大概想要一個在服務器上運行而不是設備。

我對此沒有真正的想法,但這是我以前想過的。

您可能能夠找到具有該功能的路由器/防火牆框。微軟IAS我有一個這樣做的插件(它不太可能便宜)。對谷歌的簡要介紹並沒有像其他軟件那樣出現很多。

Wingate - 可以辦得到,我無法弄清楚

否則,你可以編寫一個透明的代理應用程序(這意味着,除非你編寫嵌入式代碼,你需要使用的應用程序服務器作爲默認網關),或只是一個普通的代理,如果你可以鎖定用戶瀏覽器代理設置。我想編碼這可能不是一個簡單的選擇!但這是可能的。你甚至可以使用IIS和ASP.NET。

iisproxy是一個實現爲具有源代碼的IIS ISAPI篩選器的代理。我懷疑這是C或C++。

On Codeplex是一個代理代碼sample。你可以改變它並擴展到一個完整的代理。

你可能可以用套接字完成整個事情,完全離開應用層。這可能會使生活變得更簡單,所以我期望有一個理由不能這樣做!讓基於套接字的代理將不符合規定的用戶重定向到時間記錄應用程序,當他們填寫時間表時只需透明地在套接字之間傳遞所有數據。

我會對你或任何人提出的意見感興趣,因爲我一直希望AUP每天向我們辦公室的用戶出現一個繼續框。更好的是,它可以列出用戶昨天花了多少時間在臉書上等,如果代理收集該信息。剛好足以改變人們的行爲,我想。事實上,有很多有用的東西可以通過易於更改或可擴展的HTTP代理完成。

+0

這看起來是一個很好的計劃,我會看到編碼基於套接字的應用程序。我沒有任何經驗,但我敢打賭,這將是一個偉大的學習努力。 – 2009-01-13 17:20:56

+0

請參閱我上面的編輯,因爲我無法使用此方法。 – 2009-01-13 18:01:03

0

克里斯托弗愛德華茲或多或少是正確的。一個Captive portal基本上是一個防火牆,透明地將所有連接轉發到本地Web服務器,請求用戶驗證。驗證成功後,防火牆規則將重新配置爲已驗證用戶的IP,以便他/她可以訪問Internet或其他網絡。

您可以通過腳本和Web服務器或代理設置您自己的Captive門戶,但是必須強調的是,物理上所有網絡流量都會穿過機器充當防火牆。

我對基於BSD分發的名爲m0n0wall的OSS分發有經驗,它可以直接嵌入到dedicated hardware或安裝在任何PC上。這種分配雖然是OSS,但是非常專業,並且與任何商業FW設備(即Watchguard productsCisco Products)基本上具有相同或更多的功能性。它提供了一個Web管理界面來完整管理防火牆。

如果您決定採取這種方式,唯一的問題是m0n0wall強制門戶只有兩種身份驗證方式:本地用戶數據庫列表或外部Radius服務器。在您的情況下,您需要的是設置集成在AD身份驗證服務中的外部Radius服務器。這是一個example如何做到這一點。

0

這是如何工作的。您需要:

  • 的iptable常見的防火牆,
  • 開放路由器固件像擁有更多的選擇,支持熱點
  • 服務器一樣阿帕奇
  • dhcp3- DD-WRT服務器作爲DHCP服務器
  • bind9作爲DNS服務器,因此用戶在連接到熱點時不必手動配置他們的計算機網絡配置。
  • PHP或其他語言編寫您選擇的服務器端腳本。

您需要標記您不打算重定向到互聯網但到達着陸頁的數據包,當用戶在着陸頁上驗證後,他或她的IP將從列表中刪除,以便他可以瀏覽自由地或者如果他試圖瀏覽他的數據包將被標記,並且你將使用什麼來識別他。我建議你使用linux,因爲iptables的東西。

這是它如何工作的:

  1. 連接到無線熱點的每個用戶都是通過網關連接到互聯網。
  2. 網關本身就像路由器和防火牆一樣(也可能像本實驗一樣充當門戶網站服務器)。
  3. 每個發往互聯網的未認證用戶的HTTP數據包都由防火牆用特殊代碼「標記」,以便攔截(重定向)到門戶網站服務器。
  4. 門戶網站服務器透明地向用戶提供認證網頁並識別他們使用的計算機。
  5. 用戶接受/認證自己的網絡服務器,以便他們的計算機身份(在這種情況下,他們的網絡接口MAC地址)被輸入到防火牆的白名單。
  6. 只要用戶的網絡接口位於防火牆的白名單內,它們發送的數據包就不會標記爲攔截。數據包然後由路由器轉發到互聯網,而不會再被攔截到門戶網站。
0

DNS Redirector是一個強制性的門戶產品,您可以在HTML/ASP /任何開發自己的歡迎/阻止頁面。由於你的服務器已經在運行Windows,爲什麼不使用IIS和ASP呢。