Imperva 開源域目錄控制器,簡化活動目錄整合
Imperva 已公開發布域目錄控制器 (Domain Directory Controller,DDC)的原始碼,這是一個 Java 庫,用於簡化常見的 Active Directory 整合。
與 Java 的 LdapContext 不同,這個庫構建在 Apache Directory LDAP 之上,旨在簡化管理主 / 輔助伺服器連線、查詢分頁和自動重連線等任務。這個庫旨在支援任意規模的組織,包括存在多個 Active Directory 伺服器且沒有跨林信任 的複雜場景。
DDC 還提供了一套基於 LDAP 查詢語法的抽象 API。這套 API 提供了 Active Directory 欄位列舉,為開發人員提供了一種簡單的方式來構建靜態型別的查詢。這種查詢的語法非常清晰:
複製程式碼
Sentence nameAndDepSentence = queryAssembler .addPhrase(FieldType.FIRST_NAME, PhraseOperator.EQUAL,"Gabriel") .addPhrase(FieldType.DEPARTMENT, PhraseOperator.EQUAL,"IT") .closeSentence(SentenceOperator.AND); Sentence countrySentence = queryAssembler .addPhrase(FieldType.COUNTRY, PhraseOperator.EQUAL,"Italy") .closeSentence(); Sentence finalSentence = queryAssembler .addSentence(nameAndDepSentence) .addSentence(countrySentence) .closeSentence(SentenceOperator.OR);
不使用 DDC 的 LDAP 查詢如下所示:
複製程式碼
(&(&(co=Italy)(department=IT)(division=Security))(|(givenName=Gabriel)(givenName=Noam)))
Darren Mar-Elia(14 次獲得微軟 MVP 稱號,同時也是 Semperis 的產品負責人)解釋說,:“每個企業 IT 部門都希望能夠減少應用程式使用的身份標識儲存。最常見的是 Active Directory、LDAP 和 Kerberos。”
在使用 AD 時,缺乏一致的 API 會導致其自身的問題,而且會導致 AD 的次優使用和應用程式的脆弱性。這個開源 AD 庫為那些正在尋找以一致和安全的方式將應用程式整合到 AD 中的標準化組織提供了極大的幫助。
這套查詢 API 還採取措施來緩解 LDAP 查詢的安全問題,例如LDAP 注入 (遠端攻擊者通過字串連線來控制查詢過程)。
Active Directory 中的一個常見活動是使用者 / 使用者組解析。使用者組成員身份通常被用來確定某個使用者是否應該訪問應用程式中的某些資產或許可權。隨著組織的發展,這種成員資格變得越來越複雜,因為使用者的許可權變成了授權、角色和巢狀遞迴使用者組的組合。DDC 通過 ddc-service isMemberOf 方法簡化了這種複雜的查詢。在通過 Spring Security 或Apache Shiro 等通用框架執行身份驗證之後,應用程式開發人員可以將其用於細粒度訪問控制,以便確定授權。
域目錄控制器由首席工程師 Gabriel Beyo 建立,可在 Apache 2 許可下使用。