快速业务通道

使用Acegi保护Java应用程序,第2部分: 使用LDAP目录服务器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

使用Acegi保护Java应用程序,第2部分: 使用LDAP目录服务器

时间:2011-09-07 ibm Bilal Siddiqui

使用 ApacheDS 和 Acegi 实现访问控制

了解了 Acegi 安全系统(Acegi Security System)的 基础知识 后,我们 将介绍该系统的更加高级的应用。在本文中,Bilal Siddiqui 向您展示了如何 结合使用 Acegi 和一个 LDAP 目录服务器,实现灵活的具有高性能的 Java™ 应用程序的安全性。还将了解如何编写访问控制策略并将其存储在 ApacheDS 中,然后配置 Acegi 使其与目录服务器交互,从而实现身份验证和授 权的目的。

这期共分三部分的系列文章介绍了如何使用 Acegi 安全系统保护 Java 企业 应用程序。在 本系列第一篇文章 中,我介绍了 Acegi 并解释了如何使用安全 过滤器实现一个简单的基于 URL 的安全系统。在第二篇文章中,我将讨论 Acegi 的更加高级的应用,首先我将编写一个访问控制策略并将其存储在 ApacheDS 中,ApacheDS 是一个开源的 LDAP 目录服务器。我还将展示配置 Acegi 的方法,使它能够与目录服务器交互并实现您的访问控制策略。本文的结 尾提供了一个示例应用程序,它使用 ApacheDS 和 Acegi 实现了一个安全的访 问控制策略。

实现访问控制策略通常包含两个步骤:

将有关用户 和用户角色的数据存储在目录服务器中。

编写安全代码,它将定义有权 访问并使用数据的人员。

Acegi 将减轻代码编写的工作,因此在这篇文 章中,我将展示如何将用户和用户角色信息存储到 ApacheDS 中,然后实现这些 信息的访问控制策略。在该系列的最后一篇文章中,我将展示如何配置 Acegi, 实现对 Java 类的安全访问。

LDAP 基础知识

轻量级目录访问协 议(Lightweight Directory Access Protocol,LDAP)可能是最流行的一种定 义数据格式的协议,它针对常见的目录操作,例如对存储在目录服务器中的信息 执行的读取、编辑、搜索和删除操作。本节将简要解释为什么目录服务器是属性 文件存储安全信息的首选,并展示如何在 LDAP 目录中组织和托管用户信息。

为什么要使用目录服务器?

本系列第一部分向您介绍了一种简单的方法,可以将用户信息以属性文件的 形式保存起来(参见 第 1 部分,清单 6)。属性文件以文本格式保存用户名、 密码和用户角色。对于大多数真实应用程序而言,使用属性文件存储安全信息远 远不够。各种各样的理由表明,目录服务器通常都是更好的选择。其中一个原因 是,真实的企业应用程序可以被大量用户访问 —— 通常是几千名用户,如果应 用程序将其部分功能公开给用户和供应商时更是如此。频繁搜索文本文件中随意 存储的信息,这样做的效率并不高,但是目录服务器对这类搜索进行了优化。

第 1 部分的清单 6 中的属性文件演示了另一个原因,该文件组合了用户和 角色。在真实的访问控制应用程序中,您通常都需要分别定义和维护用户和角色 信息,这样做可以简化用户库的维护。目录服务器为更改或更新用户信息提供了 极大的灵活性,例如,反映职位升迁或新聘用人员。

LDAP 目录设置

如果希望将用户信息存储在一个 LDAP 目录中,您需要理解一些有关目录设 置的内容。本文并没有提供对 LDAP 的完整介绍,而是介绍了一些在尝试结合使 用 Acegi 和 LDAP 目录之前需要了解的基本概念。

LDAP 目录以节点树的形式存储信息,如图 1 所示:

图 1. LDAP 目录的树状结构

在图 1 中,根节点的名称为 org。根节点可以封装与不同企业有关的数据。 例如,本系列第 1 部分开发的制造业企业被显示为 org 节点的直接子节点。该 制造业企业具有两个名为 departments 和 partners 的子节点。

partners 子节点封装了不同类型的合作伙伴。图 1 所示的三个分别为 customers、employees 和 suppliers。注意,这三种类型

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号