2012-01-05 135 views
1

我們正在考慮將LDAP與Active Directory一起用於許多Web應用程序的用戶管理,而不是定製的關係數據庫解決方案。這樣做的時候是否有很高的學習曲線,或者是否像1,2,3一樣容易?LDAP和Active Directory學習曲線

回答

5

LDAP有點有趣,比傳統數據存儲有點「不同」 - 所以肯定會涉及一條學習曲線。

最具挑戰性的部分是在LDAP路徑上獲得「控制權」,以及如何構建和使用它們。另外:連接到LDAP的權限總是有點問題。如果你想開始在你的LDAP存儲中搜索對象,那麼LDAP過濾器的相當棘手的語法也可能是一個包圍你的大腦的挑戰:-)

如果你打算談談並使用在Windows上的Active Directory,那麼你一定要看看有很多有用信息的SelfADSI網站。你沒有提到你打算使用什麼語言/編程環境 - 如果你使用的是.NET 3.5或更新的版本(C#,VB.NET),你應該檢查System.DirectoryServices.AccountManagement(S.DS.AM)命名空間。在這裏閱讀全部內容:

基本上,你可以定義域範圍內,並可以輕鬆地查找用戶和/或組AD:

// set up domain context 
PrincipalContext ctx = new PrincipalContext(ContextType.Domain); 

// find a user 
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName"); 

if(user != null) 
{ 
    // do something here....  
} 

// find the group in question 
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere"); 

// if found.... 
if (group != null) 
{ 
    // iterate over members 
    foreach (Principal p in group.GetMembers()) 
    { 
     Console.WriteLine("{0}: {1}", p.StructuralObjectClass, p.DisplayName); 
     // do whatever you need to do to those members 
    } 
} 

的新的S.DS.AM命名空間使得用AD和C#/ VB.NET中的用戶和組玩耍變得非常容易!

0

參見:"LDAP: Programming Practices"的信息,編寫代碼的LDAP服務器的交互將是穩健的,絕緣和來自任何供應商特定的LDAP知識脫敏。編寫具有特定實現知識的代碼將導致代碼變得脆弱難以維護,當服務器實現的某個方面發生變化時(例如服務器本身或服務器的配置或負載平衡器或任何其他類型),可能會遇到意外的結果與基礎設施有關。

避免編寫Microsoft特定代碼或儘可能創建Microsoft特定配置。堅持LDAP標準文件的信件。

+0

感謝您的鏈接。不會使用LDAP符合跨平臺解決方案,下劃線數據源是Active Directory? – 2012-01-06 04:52:52