写点什么

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:005222
用户头像

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

关注

评论

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

Spring 5(一)概述

浅辄

Java Spring5 11月月更

Set集合和其之类HashSet、LinkedHashSet

共饮一杯无

Java set 11月月更

架构误区系列4:volatile task

agnostic

延迟任务 领域建模

案例体验HTTP2.0多路复用

小鑫同学

前端 HTTP2.0 11月月更

tips-mac安装jdk及设置环境变量

无崖子Z

【C语言】extern 关键字

謓泽

11月月更

数据治理的核心:大数据开发平台

小鲸数据

大数据 数据开发 数据平台 数据开发平台 调度平台

What's new in dubbo-go v3.0.3

apache/dubbo-go

沿着公路,驶入隧道,寻访OpenHarmony的桃花源记

脑极体

【愚公系列】2022年11月 微信小程序-app.json配置属性之subpackages和preloadRule

愚公搬代码

11月月更

CSS学习笔记(七)

lxmoe

CSS 前端 学习笔记 11月月更

Java实现List去重的5种方式

共饮一杯无

Java List 11月月更

深入分析Java的序列化与反序列化

石臻臻的杂货铺

Java 11月月更

Redhat持久化日志与实战练习

阿柠xn

Linux 运维 11月月更

如何在 Kubernetes 中创建命名空间?

wljslmz

Kubernetes 命名空间 11月月更

ubuntu安装 GitLab、创建 group、user 和 project 并授权

忙着长大#

gitlab

Verilog代码的风格规范

梦笔生花

Module Verilog 11月月更

【简历优化】如何在简历中最大化体现出自己的学习能力?

王中阳Go

高效工作 面试 高效学习 简历 11月月更

极客时间运维进阶训练营第三周作业

LiaoWD

企业级业务架构设计:方法论与实践学习笔记二

程序员架构进阶

架构 业务架构 11月日更 11月月更

读《计算机是怎样跑起来的》体会

听风go

刨根问底 Redis, 面试过程真好使

蔡农曰

Java 编程 面试 后端

List集合按照某个字段或者属性分组的两种方式

共饮一杯无

Java List 11月月更

计算机网络:局域网的基本概念和体系结构

timerring

计算机网络 局域网 11月月更

9位资深技术专家!来自香山团队、平头哥等大咖云集的龙蜥RV专场回顾来了

OpenAnolis小助手

芯片 risc-v 龙蜥社区 2022云栖大会 技术专场

Spring 5(二)IOC容器

浅辄

Java Spring5 11月月更

Zebec 创始人Sam Thapaliya11月12日Twitter Space 发言内容回顾

股市老人

第一章TCP/IP协议

初学者

TCP/IP 11月月更

第三章TCP/IPip地址概念与应用

初学者

TCP/IP IP地址 11月月更

极客时间运维进阶训练营第三周作业

老曹

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