写点什么

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

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

关注

评论

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

Golang easyjson

escray

学习 极客时间 Go 语言 4月日更

硬核系列 | 手写脚本语言编译器

九叔(高翔龙)

Java 编译器 脚本语言 词法分析器 编译器原理

谁说 Java 不能用来跑 Serverless?

张晓辉

Java Serverless Knative Quarkus

新疆重点人员管控系统搭建,指挥调度系统开发

基于区块链技术的去中心化自治组织——核心属性、演进脉络与应用前景

CECBC

区块链

20年研发安全积累,5大研发安全能力让软件“天生安全”

华为云开发者联盟

DevOps 安全 DevSecOps 华为云 devcloud

curl使用

Hex

工具

全球案例 | Dropbox: 在 COVID-19 时代通过 Atlassian 为远程工作提供动力

Atlassian

敏捷 Atlassian Jira 远程工作 Dropbox

全球案例 | Dropbox: 在 COVID-19 时代通过 Atlassian 为远程工作提供动力

Atlassian

DevOps 敏捷 远程办公 Atlassian Jira

拍立淘创始人潘攀博士为你揭开“以图搜图”的神秘面纱!

博文视点Broadview

【Node专题】Buffer理解

南吕

后端 nodejs 4月日更

Python异常的这些知识点你都get到了吗?

老猿Python

Python 编程语言 异常处理

CloudIDE:为开发者写代码开启“加速”模式

华为云开发者联盟

开发者 代码 华为云 CloudIDE HDC2021

BOE(京东方)亮相数字中国 “三驾马车”加速物联网战略转型

爱极客侠

机器学习训练营第一次作业

学习

Java-技术专题-多线程顺序执行的8种方案实现

码界西柚

Java 并发编程 AQS 多线程 JUC

BOE(京东方)成都数字医院开诊,投资60亿打造西南智慧医疗创新典范

爱极客侠

南京的春天

小天同学

随笔 4月日更 春天 南京 散文

6 张图带你彻底搞懂分布式事务 XA 模式

阿里巴巴云原生

Java 数据库 云原生 存储

软件 IT 专业的高校大学生创新创业问卷调查

五分钟学大数据

问卷调查

应“云”而生的 Java 框架 Quarkus:构建小而快的镜像

张晓辉

Java Docker Serverless CloudNative Quarkus

连续三年入围 Gartner 容器竞争格局,阿里云容器服务新布局首次公开

阿里巴巴云原生

容器 运维 云原生 k8s 边缘计算

如何快速准备高质量的AI数据?

华为云开发者联盟

AI 数据 华为云 modelarts 数据标注

FusionInsight MRS:你的大数据“管家”

华为云开发者联盟

大数据 数据湖 云原生 华为云 FusionInsight MRS

老爷子这代码,看跪了!

why技术

Java

Java中&、|、&&、||详解

Sakura

4月日更

干货拉满!阿里公开内部P9级架构师(Java)成长路线图,满满的干货

Java架构追梦

Java 阿里巴巴 架构 面试 成长路线

RocketMQ 在使用上的一些排坑和优化

AI乔治

Java 架构 分布式 RocketMQ 高并发

面向软件 IT 专业的高校大学生职业规划问卷调查

打工人!

IT 问卷调查 职业生涯规划

Rust从0到1-代码组织-路径

rust 路径 代码组织 paths

低功耗深度休眠后无法唤醒、烧录程序,怎么办?(华大半导体HC32L136)

不脱发的程序猿

嵌入式软件 单片机 4月日更 华大半导体 HC32L136

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