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許可下使用。

查看英文原文https://www.infoq.com/news/2019/02/imperva-ad-java

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章