簡體   English   中英

使用Windows身份驗證針對活動目錄進行身份驗證,並提供與組相關的視圖

[英]Authenticating against active directory with windows authentication, and providing group-dependent views

問題

我是ASP.NET新手,他的任務是創建一個多用戶密碼管理系統,以在安全的Intranet中使用。 本質上,用戶將通過Windows身份驗證自動登錄,然后根據他們的組為他們提供適當的視圖。 例如,組“ admin”的用戶將能夠訪問所有密碼條目,組開發人員的用戶將能夠訪問屬於“開發人員”活動目錄組中用戶的所有密碼條目。 用戶應該能夠創建,更新和隱藏(刪除)密碼條目。

到目前為止我有什么

到目前為止,我基本上已經在弄清楚什么將是不可能的,以及將不會是不可能的,並正在研究技術。 Windows身份驗證本身似乎很容易,但是當我啟用角色提供程序時,Windows身份驗證會中斷,這似乎是為用戶提供不同視圖所必需的。 “中斷”是指仍可以識別特定的用戶,但整個組都不能識別。

必須自動提供不同的視圖,並且我想出了兩種方法來做到這一點:

  1. 檢查家庭控制器上的角色(組),並提供適當的視圖。 但是,這將需要一長串凌亂的“ if”語句。

  2. 提供共同的觀點,並允許或禁止根據組查看某些元素。 據我所知,這需要在視圖中放入很多邏輯。

將有一個password.cs模型類,該類將保存有關密碼條目的所有信息,包括哪些組應有權訪問它。 我真的無法想到任何其他必要的模型,因為不需要存儲用戶信息。

安全問題

我了解將此類敏感數據存儲在單個位置可能會導致災難。 密碼將使用我也可以訪問的預先存在的庫進行適當的加密。 我將在這方面提供幫助。 此外,密碼在系統上將不能以純文本形式查看,以免出現肩部沖浪現象,但會顯示為星號,並且可以復制到用戶剪貼板。

我的問題

本質上,我希望獲得有關如何構建系統以及使用Windows身份驗證啟用活動目錄授權的最簡單方法的一些建議。 我想就如何為用戶提供合適的視圖以及如何將不同區域融合在一起提出一些建議。 我沒有明確要求在密碼安全方面提供任何幫助,但是任何見解或討論都將受到熱烈歡迎。 從本質上講,我非常感謝您的幫助,教程鏈接或建議的閱讀材料。

我的工具

我可以使用Visual Studio Professional 2010,MVC 4.0和.NET Framework 4.0,以及對服務器的標准(非管理員)訪問權限。

我將能夠提供我明天要准備的實驗代碼(格林尼治標准時間22:30,明天早上我會回到辦公室)。 讓我知道您是否需要更多信息。

我已經實現了兩個解決方案,其中我必須將MVC與Active X Directory集成在一起。 有多種解決方案(例如,企業庫中的安全應用程序塊)。 但是,我最終使用了AzMan和RoleManagerAzManProvider。 我最終得到了這種結合,因為我不需要部署任何其他庫。

我從這篇文章開始:[ http://msdn.microsoft.com/en-us/library/ff649313.aspx] [1 ]

即使它是為ASP.NET編寫的,我也可以將其用於MVC。 我將XML本地策略存儲放置在app_data下並配置了Web配置

<add name="LocalPolicyStore" connectionString="msxml://~/app_data/MyPolicyStore.xml" />

這對我來說很好,因為策略存儲允許我定義應用程序角色,並在將其部署到客戶端時將這些角色映射到AD帳戶。

之后,我實現了在全局過濾器中注冊的自定義授權屬性。 這是我決定用戶登錄應用程序時將重定向到哪個頁面的地方。 最后,我在基於組名的控制器上使用了標准的Authorize Attribute。

我考慮過要編寫一組考慮角色的“定制編輯器模板”和“顯示模板”,以便我可以根據用戶的應用程序角色為控件呈現不同的UI(呈現范圍而不是輸入)。

盡管您的應用程序可能已經編寫了,但希望對您有所幫助。

卡盤

暫無
暫無

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

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