`
peterwanghao
  • 浏览: 128523 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java连接Active Directory进行用户认证

 
阅读更多

将Windows2003 升级为域控制器:

在运行对话框里输入dcpromo,进入AD安装向导。一步步执行即可。

执行完后可通过管理工具在AD中添加用户。使用新建的用户登录系统时会出现问题:

1)点击管理工具,域安全策略或域控制器安全策略时,提示错误:“未能打开组策略对象 企图在不存在的网络连接上操作

gpedit.msc是可以打开本地组策略的。

原因是服务中的Computer Browser服务没有启动。启动后解决。

2)此系统的本地策略,不允许您采用交互式登录

原因:域控制器缺省状态下不允许新创建的用户登录。
解决办法:
在 这台域控制器中的“Active Directory用户和计算机”中创建一个组,假设组名为“NC Group”,然后打开[开始]→程序→管理工具→域控制器安全策略,在出现的窗口打开“安全设置”→“本地策略”→“用户权利指派”,把“在本地登录” 的权限赋给组“NC Group”,同时把所有要在这台域控制器上登录的终端服务用户添加到组“NC Group”中。
注意:
从设置该策略到策略生效需要一段时间,如果要使策略立即生效,可重启计算机或是运行一次 gpupdate /force 的cmd命令刷新。

创建好用户后可以使用java程序访问AD进行身份认证,方法同访问LDAP相同:

public class AuthenticationTest {

	public static void main(String[] args) {

		String userName = "zhangsan"; // 用户名称
		String password = "123456"; // 密码
		String host = "192.168.131.111"; // AD服务器
		String port = "389"; // 端口
		String domain = "@example.com"; // 邮箱的后缀名
		String url = new String("ldap://" + host + ":" + port);
		String user = userName.indexOf(domain) > 0 ? userName : userName + domain;
		Hashtable<String, String> env = new Hashtable<String, String>();
		DirContext ctx;
		env.put(Context.SECURITY_AUTHENTICATION, "simple");
		env.put(Context.SECURITY_PRINCIPAL, user); 
		env.put(Context.SECURITY_CREDENTIALS, password);
		env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
		env.put(Context.PROVIDER_URL, url);

		try {
			ctx = new InitialDirContext(env);
			ctx.close();
			System.out.println("验证成功!");
		} catch (NamingException e) {
			e.printStackTrace();
			System.out.println("验证失败!");
		}
	}
}




分享到:
评论

相关推荐

    java连接AD进行用户登陆

    ### Java 连接 Active Directory 进行用户登录验证的知识点 #### 一、概述 在企业环境中,Active Directory (AD) 是一种广泛使用的目录服务,它可以帮助管理组织内的用户、设备和其他资源。对于需要集成 AD 的 ...

    java通过LDAP验证Active Directory服务

    本文将详细介绍如何使用Java通过LDAP协议来验证Active Directory服务,并获取用户信息。 #### 二、基础知识 ##### LDAP - **定义**:LDAP是一种开放的标准协议,用于访问和维护分布式目录信息。 - **特点**: - ...

    java通过LDAP验证ActiveDirectory服务.pdf

    Java通过LDAP验证Active Directory服务是一种常见的身份验证方法,特别是在企业环境中,用于整合用户账户管理和安全性。以下是关于这个主题的详细说明: **LDAP (Lightweight Directory Access Protocol)** LDAP是...

    java使用ldap修改ad域用户密码

    在 Java 中,我们可以使用 LDAP 客户端库来连接到 Active Directory 域控制器,并对用户密码进行修改。下面是一个简单的示例代码: ```java public static void main(String[] args) throws UnknownHostException, ...

    java使用ldap修改ad域用户密码收集.pdf

    5、要使用 Java 修改 Active Directory 域用户密码,需要安装 Active Directory 域控制器、安装证书服务、安装 JAVA 应用程序服务器。 6、在安装证书服务的服务器中,需要导出域根证书和计算机证书,并使用 Java 的...

    java验证AD域用户登录

    AD(Active Directory)域是由微软Windows Server操作系统提供的目录服务,用于集中管理用户账户、资源权限和网络策略。在Java中实现AD域用户登录验证,主要涉及到以下知识点: 1. **JNDI (Java Naming and ...

    JAVA通过LDAP+SSL(证书)实现用户和组织(部门)增删改查.zip

    这些功能通常用于大型企业的用户管理,例如Active Directory(AD)服务。 首先,让我们理解LDAP。LDAP是一种目录服务协议,它允许快速查找分布式数据库中的信息,如用户账户、组、资源等。在Java中,我们可以使用...

    cognos 第三方用户认证 JAVA版本

    总的来说,这个主题涵盖的内容包括理解Cognos的URL访问机制、权限模型,以及如何用Java实现与Cognos的第三方认证集成,特别是通过JDBC连接数据库进行身份验证。通过这些知识,你可以为你的组织构建一个安全且高效的...

    ibm cognos 第三方java认证操作详解

    在IBM Cognos中配置第三方Java认证,你需要创建一个定制的身份验证模块,这个模块将与你的企业认证服务器(如LDAP或Active Directory)交互,验证用户的凭证。 1. **配置步骤**: - **安装和配置Cognos**:确保你...

    Java AD域插入用户和密码修改

    在IT行业中,尤其是在企业网络管理领域,Active Directory(AD)域是微软提供的一个关键服务,用于集中管理和控制网络中的用户账户、计算机和其他资源。本文将深入探讨如何利用Java编程语言来实现AD域用户插入和密码...

    Java连接Dynamics 365 CRM_DEMO.zip

    在本文中,我们将深入探讨如何使用Java连接到Microsoft Dynamics 365 CRM系统,并通过一个DEMO示例来展示具体实现过程。Java作为一款广泛使用的编程语言,具有丰富的库和工具,可以方便地与各种服务进行集成,包括...

    java ad域操作

    总结起来,Java通过JNDI和相关的库提供了强大的能力来操作AD域,包括连接、查询、读写属性、用户认证、对象的创建与删除等。在实际开发中,应确保遵循最佳实践,确保代码的健壮性和安全性。理解并熟练掌握这些概念和...

    AD域单点登陆NTLM

    在IT领域,特别是企业网络管理中,Active Directory(AD)域单点登录(Single Sign-On,简称SSO)是一项至关重要的技术。它允许用户在验证一次身份后,无需再次输入凭证即可访问多个受保护的资源。NT LAN Manager...

    Azure_Active_Directory_Scripts

    3. **连接到Azure AD**:在运行任何Azure AD PowerShell cmdlet之前,需要先连接到Azure AD实例,这可以通过`Connect-AzureAD`命令完成,需要提供有效的Azure AD认证凭据。 4. **脚本编写**:了解PowerShell语法,...

    java ftp服务器实例

    可以自定义认证机制,或者集成现有的身份验证服务如LDAP或Active Directory。 2. **会话管理**:当客户端连接到服务器时,服务器需要创建一个会话,并维护该会话直到客户端断开连接。会话中包含了用户的上下文信息...

    Tomcat SPNEGO/Active Directory Authnz:Tomcat SPNEGO / Kerberos身份验证器和Active Directory领域-开源

    这意味着该工具允许用户通过其在AD域中的凭证进行无痛的单点登录(SSO)认证。 **描述解析:** "适用于Apache Tomcat的功能齐全的一流SPNEGO / Kerberos(和当前Windows身份)身份验证器和Active Directory(和...

    LDAP实现AD域账号验证 - Java/SpringBoot

    在IT行业中, Lightweight Directory Access Protocol (LDAP) 是一种用于存储和检索目录信息的标准协议,而Active Directory (AD) 是微软提供的目录服务,广泛应用于企业环境中进行用户身份验证和权限管理。Java和...

    java操控AD域源码

    Java操控AD域源码主要涉及的是使用Java编程语言与Active Directory(AD)域进行交互,实现AD用户账户的管理操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Check)等功能。在企业环境中,AD域是用于...

    JAVA ldap AD 域 免证书 查询 修改 删除 新增 启用 禁用 修改密码

    AD 域(Active Directory Domain)是 Microsoft 提供的一种目录服务,用于存储和管理用户、组、计算机和其他对象的信息。 在这篇文章中,我们将使用 JAVA 实现 LDAP 的 AD 域免证书查询、修改、删除、新增、启用、...

Global site tag (gtag.js) - Google Analytics