web项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统.事实上客户就是仅仅要一套账号能够訪问全部的OA.CRM等办公系统. 这就是第三方验证.一般有AD域,Ldap,Radius,邮件server等.最经常使用的要数AD域了.由于window系统在国内占领了大量的江山. 做起来也非常方便. 我这篇文章就是写.怎样用java去实现AD域的身份验证. 好了,直接看代码吧: package com.test; import java.util.Hashtable; impor…
eb项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统.其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统.这就是第三方验证.一般有AD域,Ldap,Radius,邮件服务器等.最常用的要数AD域了.因为window系统在国内占据了大量的江山.做起来也很方便.我这篇文章就是写,如何用java去实现AD域的身份验证.好了,直接看代码吧: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24…
import org.springframework.boot.autoconfigure.SpringBootApplication; import java.util.Hashtable; import javax.naming.AuthenticationException;import javax.naming.Context;import javax.naming.directory.DirContext;import javax.naming.directory.InitialDir…
正常情况下,JAVA修改AD域用户属性,只能修改一些普通属性, 如果要修改AD域用户密码和userAccountControl属性就得使用SSL连接的方式修改, SSL连接的方式需要操作以下步骤: 1.安装AD域证书服务 2.证书颁发机构中设置以web的方式获取证书 3.访问http://localhost/certsrv/下载证书文件 4.将证书导入开发电脑的C:\tmp目录下,使用keytool -import -keystore命令 (以上步骤,在上一篇文章里介绍了https://www.…
1.安装证书服务和IIS服务,不需要启动asp.(其会在c盘生成一个crt文件)2.获取crt证书文件 windows 2003:文件位于系统盘根目录 windows 2008: 文件位于C:\Windows\System32\CertSrv\CertEnroll3.将该文件通过keytool导入idm的jdk keytool -importcert -trustcacerts -keystore "C:\Progra~1\Java\jdk1.6.0_23\jre\lib\security\ca…
博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户,请参阅:AD 域服务简介(二)- Java 获取 AD 域用户 一.前言 在日常的开发中,为了实现单点登录,需要对域用户进行增删改查操作,以维持最新的用户信息,确保系统的安全. 二.Java 对 AD 域用户的增删改查操作 package com.moonxy.ad; import java.uti…
博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 一.前言 先简单简单回顾上一篇博文中关于 AD 域和 LDAP目录访问协议的基本概念. AD(Active Directory)活动目录,动态的建立整个域模式网络中的对象的数据库或索引,使用的协议为 LDAP,安装了AD 的服务器称为 DC 域控制器,存储整个域的对象的信息并周期性更新,其中的对象分为三大类:资源(如印表机).服…
1.活动目录(AD) Active Directory 是用于 Windows Server 的目录服务.它存储着网络上各种对象的有关信息,并使该信息易于管理员和用户查找及使用.Active Directory 目录服务使用结构化的数据存储作为目录信息的逻辑层次结构的基础. 通过登录验证以及目录中对象的访问控制,将安全性集成到 Active Directory 中. 目录服务,如 Active Directory,提供了用于存储目录数据并使该数据可由网络用户和管理员使用的方法.例如,Active…
一.添加引用 System.DirectoryServices System.DirectoryServices.AccountManagement 二.验证代码 声明域 string domainName = "bitdao.cn"; 验证代码 PrincipalContext context = new PrincipalContext(ContextType.Domain, domainName, account, password); if (!context.Validate…
唉,网上的资料比较少,找了好久,压根不知道如入告诉 phoenix 客户端来使用 kerberos 啊.. 然后就想到了,这东西开源的应该有相关的单元测试吧..啊哈哈哈哈哈哈,果然 https://github.com/apache/phoenix/blob/master/phoenix-core/src/test/java/org/apache/phoenix/jdbc/SecureUserConnectionsTest.java private String joinUserAuthenti…
1.获取环境变量 string strAuthUser = request.ServerVariables["AUTH_USER"] 以上这行代码是用来获取当前用户的登录名 2.IIS站点设置,除了windows验证启用,其余的全部设置禁用 3.对WEB配置 web.config中加入(针对本站点,建议采用) <httpRuntime maxRequestPathLength="360" maxQueryStringLength="1024"…
@Controller@RequestMapping(value = "api/item/cat")public class ApiItemCatController { @Autowired private ItemCatService itemCatService; @RequestMapping(method = RequestMethod.GET) public ResponseEntity<String> queryItemCatAll(@RequestParam…
1.java Ldap基础类 package com.common; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Hashtable; import java.util.List; imp…
因为工作需求近期做过一个从客户AD域获取数据实现单点登录的功能,在此整理分享. 前提:用户可能有很多系统的情况下,为了方便账号的统一管理使用AD域验证登录,所以不需要我们的系统登录,就需要获取用户的AD域组织和用户信息,实现域认证和单点登录. LDAP: LDAP是轻量目录访问协议 AD域:微软基于域模式的集中化管理 1.常规的AD域登陆验证 LdapContext dc = null;             Hashtable<String, String> env = new Hasht…
项目上遇到的需要在集成 操作域用户的信息的功能,第一次接触ad域,因为不了解而且网上其他介绍不明确,比较费时,这里记录下. 说明: (1). 特别注意:Java操作查询域用户信息获取到的数据和域管理员在电脑上操作查询的数据可能会存在差异(同一个意思的表示字段,两者可能不同). (2). 连接ad域有两个地址: ldap://XXXXX.com:389 和 ldap://XXXXX.com:636(SSL). (3). 端口389用于一般的连接,例如登录,查询等非密码操作,端口636安全性较高,用…
域服务数据读写,有俩种模式 1.轻量级的数据读取 _domain是服务器的域名 获取连接PrincipalContext pc = new PrincipalContext(ContextType.Domain, _domain) 验证账号密码pc.ValidateCredentials(jobNumber, password)引用System.DirectoryServices.AccountManagement命名空间后,按照如下如下方法,AD域验证 using (PrincipalCont…
1.获取windows AD域用户信息,首先需要有一个ad域管理员权限的账号,用这个账号连接ad域,获取所有域用户信息 用LdapContext,它继承自DirContext public Object getAllAdUserNames() { List<String> list = new ArrayList<>(); String username = "lisi@ad.com"; String password = "123@abc.com&q…
1.ad域介绍: windos server 2008R2服务器下的ad域,见下图(我是在虚拟机安装到windos server) 2.连接ad域代码:(里面代码自行修改) public ResultMsg<User> loginAd(User user) throws Exception { ResultMsg<User> msg; //通过ad域登录 Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT…
站点集成AD域验证 服务器机器入域 计算机右键属性-->“更改设置”-->“更改”-->填写所属域,确认后重启机器生效. 部署测试站点,localhost.ip.域名三种方式登录效果 站点部署至IIS,config配置文件<authentication mode="Windows" />,站点关闭Forms.匿名身份验证.登出需要关闭浏览器才能登出. 使用localhost方式打开直接显示如下: 使用IP方式会弹出登录窗和使用域帐号登录后效果如下图: 使用…
Novell.Directory.Ldap.NETStandard是一个在.NET Core中,既支持Windows平台,又支持Linux平台,进行Windows AD域操作的Nuget包. 首先我们新建一个.NET Core控制台项目:NetCoreLdap,并下载如下Nuget包: Novell.Directory.Ldap.NETStandard 然后我们新建一个.NET Core类LDAPUtil,用来对域账号进行验证: using System; using Novell.Direct…
public partial class _Default : Page { [DllImport("advapi32.dll")] private static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); protected void Page_L…
AD域登录验证 作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/5799699.html 需求 系统在登录的时候,需要根据用户名和密码验证连接域服务器进行验证此用户是否为域用户. 条件 域服务器地址:x.x.x.x 域验证端口:xxx AD域为:DC=adservice,DC=com 某个域用户是:abc@adservice.com 密码:abc123. 实现 Java版 ADAuthJava.java package com.hui.advalid…
随着我们的习大大上台后,国家在网络信息安全方面就有了非常明显的改变!所以如今好多做网络信息安全产品的公司和须要网络信息安全的公司都会提到用AD域server来验证,这里就简单的研究了一下! 先简单的讲讲AD域和LdAP文件夹訪问协议:AD(active directory)活动文件夹,动态的建立整个域模式网络中的对象的数据库或索引,协议为LDAP,安装了AD的server称为DC域控制器,存储整个域的对象的信息并周期性更新!当中的对象分为三大类--资源(如印表机).服务(如电子邮件).和人物(即…
近期一段时间发现AD这东西老火了,尤其是涉及到安全这一方面的,所以AD域用户认证成了如今网络安全方面的产品必备!这里就简单的分享一下,Java通过jcifs集成AD域用户实现认证,以实现网络安全! 我们通过一个demo来看看jcifs实现SSO,SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户仅仅须要登录一次就能够訪问全部相互信任的应用系统.它包含能够将这次基本的登录映射到其它应用中用于同一个用户的登录的机制.它是眼下比較流行的企业业务整合的解决方式之中的一个…
流程: 1.用户调登录接口,传用户名和密码2.用户名和密码在ad验证,验证通过后,返回当前用户的相关信息.(注:ldap为java自带的api不需要maven引入其他的)3.根据返回的用户信息,实现自己系统的业务逻辑 @RequestMapping("/getMsg") @ResponseBody public String getAllPersonNamesWithTraditionalWay(@RequestParam String username,@RequestParam S…
'''函数功能:查询域用户信息 '''参数说明:strAdmin-域管理账户:Password-域帐户密码:Domain-域服务器. ''' ''' 参考资料:http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/ASP/Q_23947512.html ''' 搜索:Query LDAP For Existing User   Classic ASP 在 www.experts-exchange.com f…
Java虚拟机JVM学习03 连接过程:验证.准备.解析 类被加载后,就进入连接阶段. 连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去. 连接阶段三个步骤:验证.准备和解析. 类的验证 类的验证内容: 1.类文件的结构检查 确保类文件遵从Java类文件的固定格式. 2.语义检查 确保类本身符合Java语言的语法规定,比如验证final类型的类没有子类,以及final类型的方法没有被覆盖. 注意,语义检查的错误在编译器编译阶段就会通不过,但是如果有程序员通过非编译的手段生成了…
目前,公司有多个系统,RTX,邮箱(MD),OA,NC. 这些系统之间,如果要实现单点登录的话,账户肯定需要同步,或者某一种映射机制. 如果所有数据都和中央账号数据库(LDAP,这里是AD域)看齐,那就可以省去很多麻烦.即使做映射,那么仅仅根据用户名也可以实现这样的功能.不过单点登录还是需要额外的代码,最好是架设一个cas服务器. ———————————————————————————— 邮箱MD的工具比较丰富,可以直接在服务器工具端,设置和ad的轮询次数和时间间隔.自动进行账号密码同步. 而R…
当用jdbc连接Oracle数据库的时候 private Connection getConnection() throws SQLException { OracleDataSource ods = new OracleDataSource(); ods.setUser("biaoJM"); ods.setPassword("123456"); ods.setURL("jdbc:oracle:thin:@localhost:1521:orcl"…
一.服务器要求 Radius服务器:centos6.6.hostname.selinux  disabled.stop iptables AD域服务器:Windows Server 2008 R2 Enterprise.AD-host.example.com(提前搭建好的AD域) 目的:只做用户名密码的认证 域名先解析:#vim /etc/hosts IP  AD-host.example.com IP  hostname 二.RADIUS的工作过程 1. 用户输入用户名密码等信息到客户端 2.…