摘 要:武器裝備科研生產(chǎn)單位保密資格認(rèn)證要求企業(yè)內(nèi)部涉密網(wǎng)絡(luò)普通域用戶不應(yīng)具有本地管理員權(quán)限,用戶安裝軟件需要經(jīng)過審批由系統(tǒng)管理員授權(quán),使用完再由系統(tǒng)管理員取消授權(quán),但在實際操作中由于用戶安裝軟件的時間不可控,無法做到閉環(huán)管理。本文結(jié)合本單位的實際需求,利用活動目錄服務(wù)接口技術(shù),設(shè)計了域用戶本地管理員權(quán)限控制系統(tǒng),通過該系統(tǒng)管理員無需登錄活動目錄平臺,就可實現(xiàn)域用戶軟件安裝權(quán)限的自動添加和刪除,極大地提高了工作效率,具有一定的參考價值。
關(guān)鍵詞:活動目錄;域用戶;活動目錄服務(wù)接口;權(quán)限控制系統(tǒng)
中圖分類號:TP316
各科研單位內(nèi)部涉密網(wǎng)絡(luò)大多采用活動目錄管理平臺,通過該平臺實現(xiàn)了信息資源的統(tǒng)一管理和共享[1],但該平臺在域用戶本地管理員權(quán)限控制方面無法做到權(quán)限的自動添加和刪除。為了滿足武器裝備科研生產(chǎn)單位保密資格認(rèn)證要求,各科研單位內(nèi)部涉密網(wǎng)絡(luò)普通域用戶默認(rèn)取消本地管理員權(quán)限,用戶安裝軟件需要經(jīng)過審批后,由系統(tǒng)管理員登錄活動目錄平臺授權(quán),人工操作效率低維護(hù)量大,而且無法做到權(quán)限的閉環(huán)管理。在這樣的需求背景下,開發(fā)了域用戶本地管理員權(quán)限控制系統(tǒng),以快速高效的實現(xiàn)涉密網(wǎng)絡(luò)域用戶本地管理員授權(quán)及權(quán)限到期自動刪除。
1 系統(tǒng)功能及設(shè)計思路
1.1 系統(tǒng)功能
系統(tǒng)由服務(wù)端和客戶端程序組成,服務(wù)端程序采用B/S(Browser/Server)結(jié)構(gòu),系統(tǒng)管理員通過登錄驗證,實現(xiàn)普通域用戶本地管理員權(quán)限的添加、刪除和查詢;客戶端采用C/S(Client/Server)結(jié)構(gòu),實現(xiàn)普通域用戶本地管理員授權(quán)到期權(quán)限的自動刪除。
1.2 設(shè)計思路
系統(tǒng)管理員通過身份驗證進(jìn)入系統(tǒng),輸入域用戶名、授權(quán)日期、授權(quán)周期或撤銷日期等字段,系統(tǒng)自動獲取域用戶在活動目錄層次結(jié)構(gòu)數(shù)據(jù)庫中的顯示名、所屬部門等信息,然后將授權(quán)信息錄入到授權(quán)信息數(shù)據(jù)庫中,同時把該域用戶自動加入到活動目錄的本地管理員組,這樣就實現(xiàn)了權(quán)限的添加。遍歷授權(quán)信息數(shù)據(jù)庫中的所有記錄,刪除撤銷日期與今天日期匹配的記錄,同時在活動目錄中移除這些域用戶的本地管理員權(quán)限,這樣就實現(xiàn)了權(quán)限的批量刪除。
2 系統(tǒng)的設(shè)計與實現(xiàn)
本系統(tǒng)以Microsoft Visual Studio 2008為開發(fā)平臺,以Microsoft SQL Server 2000為數(shù)據(jù)庫,使用C#編程語言,利用活動目錄服務(wù)接口技術(shù)[1],按照軟件設(shè)計規(guī)范開發(fā)的。
2.1 服務(wù)端程序的設(shè)計與實現(xiàn)
系統(tǒng)管理員進(jìn)入域用戶本地管理員權(quán)限系統(tǒng)登錄頁面,輸入具有管理權(quán)限的域用戶名和密碼,驗證成功,進(jìn)入本地管理員授權(quán)列表,列表顯示出已授權(quán)域用戶信息,如圖1所示。在該頁面可以添加授權(quán)、刪除授權(quán)和查詢授權(quán)。
圖1 域用戶本地管理員列表
(1)添加授權(quán):點擊“添加授權(quán)”按鈕,輸入域用戶名,域控服務(wù)器中若存在此域用戶,系統(tǒng)會自動獲取該域用戶的顯示名和所屬部門,然后錄入授權(quán)日期、授權(quán)期限或撤銷日期等信息,單擊“確定”按鈕,本地管理員權(quán)限添加完成。當(dāng)該域用戶已經(jīng)屬于本地管理員組時,系統(tǒng)會提示該域用戶已經(jīng)屬于本地管理員組。添加完本地管理員,在活動目錄平臺該域用戶隸屬于項中多了一項Local Admin Group。
(2)刪除授權(quán):單擊“刪除授權(quán)”按鈕,彈出刪除確認(rèn)窗口,單擊“確定”按鈕,本地管理員權(quán)限刪除完成,在活動目錄平臺該域用戶隸屬于項中少了一項Local Admin Group。
(3)查詢授權(quán):在查詢框中輸入域用戶名,單擊“搜索”按鈕,可搜索到該域用戶的授權(quán)記錄,單擊“清空”按鈕,可搜索所有授權(quán)的用戶記錄。
2.2 客戶端程序的設(shè)計與實現(xiàn)
批量刪除授權(quán):將客戶端程序編譯成可執(zhí)行文件,在域控服務(wù)器上設(shè)置任務(wù)計劃,每天定期執(zhí)行該任務(wù),系統(tǒng)會自動刪除授權(quán)到期域用戶的本地管理員權(quán)限。
2.3 數(shù)據(jù)庫設(shè)計
該系統(tǒng)涉及到兩個數(shù)據(jù)表,分別是系統(tǒng)登錄驗證表和系統(tǒng)授權(quán)信息表。系統(tǒng)登錄驗證表存儲系統(tǒng)登錄用戶等相關(guān)信息,系統(tǒng)授權(quán)信息表存儲授權(quán)相關(guān)的字段,字段設(shè)置如表1。
表1 系統(tǒng)授權(quán)信息表
字段名類型長度默認(rèn)值描述
idint4 內(nèi)部id號
accountnamevarchar20 域用戶
displaynamevarchar50 顯示名
departmentvarchar50 所屬部門
proposervarchar20 申請人
startdatedatetime8 授權(quán)日期
enddatedatetime 撤銷日期
periodvarchar20一周授權(quán)期限
opevarchar20 操作人
isgroupint40是否為本地管理員(0-否1-是)
distnamevarchar300 OU完整路徑名
flagint41權(quán)限加入方式(0-后臺1-系統(tǒng))
3 系統(tǒng)關(guān)鍵技術(shù)分析
3.1 活動目錄信息提取
該系統(tǒng)需要提取活動目錄層次結(jié)構(gòu)的數(shù)據(jù)信息,使用GetUserDeptName等方法獲取域用戶中文顯示名和所屬部門等信息[2]。
static public string GetUserDisplayName(string sAMAccountName)
{ string s;
DirectoryEntry entry=new DirectoryEntry();
DirectorySearcher ds=new DirectorySearcher(entry);
ds.Filter=\"(((objectCategory=person)(objectClass=user))(sAMAccountName=\"+sAMAccountName+\"))\";
ds.PropertiesToLoad.Add(\"displayName\");
ds.SearchScope=SearchScope.Subtree;
try
{SearchResult result=ds.FindOne();
s=result.GetDirectoryEntry().InvokeGet(\"displayName\").ToString();
return(s);
}
}
3.2 本地管理員權(quán)限添加代碼
系統(tǒng)將指定域用戶添加到Local Admin Group中,使用了AddUserToGroup方法。
public static void AddUserToGroup(string sAMAccountName,string groupName)
{
DirectoryEntry oGroup=GetDirectoryEntryOfGroup(groupName);
DirectoryEntry oUser=GetDirectoryEntry(sAMAccountName);
Group.Properties[\"member\"].Add(oUser.Properties[\"distinguishedName\"].Value);
oGroup.CommitChanges();
oGroup.Close();
oUser.Close();
}
3.3 本地管理員權(quán)限刪除代碼
系統(tǒng)將指定域用戶從Local Admin Group組中刪除,使用了RemoveUserFromGroup方法。
public static void RemoveUserFromGroup(string sAMAccountName,string groupName)
{
DirectoryEntry oGroup=GetDirectoryEntryOfGroup(groupName);
DirectoryEntry oUser=GetDirectoryEntry(sAMAccountName);oGroup.Properties[\"member\"].Remove(oUser.Properties[\"distinguishedName\"].Value);
oGroup.CommitChanges();
oGroup.Close();
oUser.Close();
}
4 結(jié)束語
該系統(tǒng)用戶界面友好、操作簡單,具有良好的擴(kuò)展性,自投入實際運(yùn)行,極大地提高了辦公效率,減低了維護(hù)成本,同時保證了域用戶授權(quán)信息的準(zhǔn)確性。而且該系統(tǒng)可與單位的辦公自動化系統(tǒng)中各項審批表單集成,實現(xiàn)電子審批的閉環(huán)管理。
參考文獻(xiàn):
[1]潘景新.應(yīng)用ADSI實現(xiàn)Windows賬戶與權(quán)限的批量管理[J].韶關(guān)學(xué)院學(xué)報,2008(09).
[2]鄭小長.基于ADSI技術(shù)的網(wǎng)絡(luò)考試系統(tǒng)的設(shè)計與實現(xiàn)[J].福建電腦,2012(09).
作者簡介:祝鳳杰(1978-),女,黑龍江齊齊哈爾人,工程師,學(xué)士學(xué)位,研究方向:計算機(jī)軟件開發(fā)、信息安全技術(shù)研究;范輝華(1974-),男,湖北武漢人,高級工程師,碩士,研究方向:計算機(jī)軟件開發(fā)、信息安全技術(shù)研究。
作者單位:武漢第二船舶設(shè)計研究所,武漢 430064