2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Imperva 开源域目录控制器,简化活动目录集成

  • 2019-02-28
  • 本文字数:1082 字

    阅读完需:约 4 分钟

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


2019-02-28 08:005309
用户头像

发布了 731 篇内容, 共 467.1 次阅读, 收获喜欢 2006 次。

关注

评论

发布
暂无评论
发现更多内容

团队基建系列 - 组织知识传承3 破局

搬砖的周狮傅

Spring 扩展之自定义类型转换器

chenssy

死磕 Java 死磕 Spring

38 K8S之CNI插件与选型

穿过生命散发芬芳

k8s 28天写作 12月日更

学生管理系统架构设计

tony

「架构实战营」

在线MySQL,SQL Server建表语句生成JSON测试数据工具

入门小站

工具

MySQL探秘(八):InnoDB的事务

程序员历小冰

MySQL 事务 28天写作 12月日更

模块1

Geek_59dec2

[Pulsar] Consumer如何消费消息

Zike Yang

Apache Pulsar 12月日更

聊聊IT行业的项目管理模式

圣迪

项目管理 敏捷 pmp 开发 瀑布

Java jar 如何防止被反编译

xcbeyond

28天写作 12月日更

你了解集合?那你倒是给我说说啊!【1】

XiaoLin_Java

12月日更

记录:今年最骄傲的一件事

将军-技术演讲力教练

在K8s里部署Eureka集群

xiaoboey

Kubernetes Spring Cloud Eureka Gateway 服务发现

毕业总结

毛先生

架构训练营作业一

supermenG

架构师训练营 4 期

Redis为何这么快?

JavaEdge

12月日更

字典树之旅02.Trie 的标准实现

极客志

自然语言处理 数据结构 算法 Trie 字典树

技术人创业过程中应保持开放的心态

wood

创业 技术 28天写作

盘点JavaScript哪些常用的字符串对象

你好bk

JavaScript 大前端 字符串 基础知识 12月日更

学习能力

Nydia

Spring 扩展之深入分析 PropertyPlaceholderConfigurer

chenssy

死磕 Java 死磕 Spring

Spring 扩展之深入分析 PropertyOverrideConfigurer

chenssy

死磕 Java 死磕 Spring

架构实战营 第4期 模块一作业

架构实战营 模块一 「架构实战营」

面试官synchronized连环问,学会Monitor之后轻松拿下

李子捌

Java、 28天写作 12月日更

字典树之旅01.开篇

极客志

自然语言处理 数据结构 算法 nlp 字典树

SQS 和 SNS 对比分析

liuzhen007

28天写作 12月日更

面试官问我:什么是缓存击穿,该怎么解决?

喵叔

28天写作 12月日更

Spring 扩展之深入分析 BeanFactoryPostProcessor

chenssy

死磕 Java 死磕 Spring

Spring 扩展之之 PropertyPlaceholderConfigurer 的应用

chenssy

死磕 Java 死磕 Spring

Spring 扩展之深入分析 Bean 的类型转换体系

chenssy

死磕 Java 死磕 Spring

毕业设计

毛先生

Imperva开源域目录控制器,简化活动目录集成_语言 & 开发_Erik Costlow_InfoQ精选文章