Tag: active directory

如何配置JDBC连接以使用与当前用户不同的AD用户?

服务器“HOSTNAME”上托管的MS SQL Server 2008 R2数据库“dbname”可由Active Directory用户从域“ABC”访问 ,让我们称他为“dbuser”或“ABC \ dbuser” 。 我们以AD用户“ABC \ appuser”运行我们的应用程序。 “appuser”和“dbuser”位于不同的AD组中。 当由在“ABC \ appuser”下运行的服务运行时,连接使用用户“ABC \ appuser”连接到数据库: DriverManager.getConnection( “jdbc:sqlserver://HOSTNAME:1433;databaseName=dbname;integratedSecurity=true”, “”, “” ); 使用相同的连接字符串并提供“ABC \ dbuser”和密码“dbpass” ,连接将忽略这些值,而是再次尝试使用服务正在运行的AD信息“ABC \ appuser” : DriverManager.getConnection( “jdbc:sqlserver://HOSTNAME:1433;databaseName=dbname;integratedSecurity=true”, “ABC\\dbuser”, “dbpass” ); 删除flag integratedSecurity=true ,连接将“ABC \ dbuser”视为SQL帐户而不是AD帐户,抛出SQLServerException : DriverManager.getConnection( “jdbc:sqlserver://HOSTNAME:1433;databaseName=dbname”, “ABC\\dbuser”, “dbpass” ); 投 com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user ‘ABC\dbuser’. 到目前为止,我将假设这是不可能的,并且我将让数据库团队提供对数据库的“ABC […]

使用JNDI启用Active Directory帐户

我已经通过JNDI在Active Directory中成功创建了一个禁用用户,但我不确定如何启用它。 我应该直接操纵userAccountControl属性吗? 谢谢。

密码的SPNEGO身份validation问题

我已将我的应用程序配置为通过SPNEGO与Websphere一起使用Kerberos身份validation。 这是细节 的krb5.conf [libdefaults] default_realm = ABC.MYCOMPANY.COM default_keytab_name = FILE:C:\IBM\WebSphere\AppServer\kerberos\MyServer.keytab default_tkt_enctypes = rc4-hmac des-cbc-md5 default_tgs_enctypes = rc4-hmac des-cbc-md5 forwardable = true renewable = true noaddresses = true clockskew = 300 [realms] ABC.MYCOMPANY.COM = { kdc = TEST.abc.mycompany.com:88 default_domain = mycompany.com } [domain_realm] .mycompany.com = ABC.MYCOMPANY.COM login.conf的 spnego-client { com.sun.security.auth.module.Krb5LoginModule required; }; spnego-server { com.sun.security.auth.module.Krb5LoginModule required […]

每次从Ldap连接池返回新连接时

我已经在我的项目中实现了LDAP连接池,并注意到一个奇怪的行为,每次新连接请求到来时,我配置的LDAP连接池都返回新连接,而不是重新使用返回池的现有连接。 LDAP JNDI日志 : 00:07:10,824 ERROR [stderr] (IPAdminGlobalDataReloader) Create and use com.sun.jndi.ldap.LdapClient@46728c0f[eun2p3-be.stp-qa.st.com:636] 00:07:12,222 ERROR [stderr] (IPAdminGlobalDataReloader) Release com.sun.jndi.ldap.LdapClient@46728c0f 00:07:46,704 ERROR [stderr] (Thread-65) Expired com.sun.jndi.ldap.LdapClient@674b68bd expired 00:08:46,707 ERROR [stderr] (Thread-65) Expired com.sun.jndi.ldap.LdapClient@46728c0f expired 00:22:26,329 ERROR [stderr] (IPAdminGlobalDataReloader) Create com.sun.jndi.ldap.LdapClient@386bfda[eun2p3-be.stp-qa.st.com:636] 00:22:26,333 ERROR [stderr] (IPAdminGlobalDataReloader) Create and use com.sun.jndi.ldap.LdapClient@6d9f3716[eun2p3-be.stp-qa.st.com:636] 00:22:27,748 ERROR [stderr] (IPAdminGlobalDataReloader) Release com.sun.jndi.ldap.LdapClient@6d9f3716 00:22:46,730 ERROR [stderr] […]

使用JAAS LdapLoginModule通过ActiveDirectory进行身份validation时遇到FailedLoginException

我正在拉我的头发试图让LDAP身份validation与Active Directory一起使用。 我们刚刚设置了一个SharePoint Server 2010,我们认为根据Active Directory对用户进行身份validation也是一个好主意,因为它已经存在于SharePoint中。 我们的环境是Windows Server 2008 R2 Standard。 我有一个用户名为ahsieh@rdl.com.tw用户 根据这个答案https://serverfault.com/a/130556我的提供者URL应该是ldap://192.168.0.81:389/CN=Users,DC=rdl,DC=com,DC=tw (注意,而不是使用vm-sps.rdl.com.tw的主机名,我选择使用IP地址,因为我没有时间为所述服务器配置DNS条目) 为了确保,我在服务器上运行了dsquery命令: 但是,我只是无法获得身份validation工作。 我根据LdapLoginModule API尝试了所有三种类型的JAAS配置 以下是我遇到的错误: 1.搜索优先模式: 注意:我没有指定authzIdentity,因为我在AD上没有设置 JAAS配置: AESLogin_AD1 { com.sun.security.auth.module.LdapLoginModule REQUIRED userProvider=”ldap://192.168.0.81:389/CN=Users,DC=rdl,DC=com,DC=tw” userFilter=”(&(uid={USERNAME})(objectClass=User))” useSSL=false debug=true; }; 结果: [LdapLoginModule] search-first mode; SSL disabled [LdapLoginModule] user provider: ldap://192.168.0.81:389/CN=Users,DC=rdl,DC=com,DC=tw [LdapLoginModule] searching for entry belonging to user: ahsieh@rdl.com.tw [LdapLoginModule] authentication failed [LdapLoginModule] aborted authentication […]

在Java中使用LDAP的最简单方法(Eclipse)

我目前正在开发一个小项目,我必须在Eclipse中使用LDAP(用于Active-Directory访问)。 我想获取用户名,创建新用户,删除用户。 我以前从未使用过LDAP,而且在找到一个很好解释的分步教程时遇到了一些困难。 此外,似乎每个教程似乎都使用不同的API(OpenLDAP,Apache Directory,UnboundID,Spring Framework等),这让我很困惑。 我应该使用哪种API? 如果您对如何开始使用LDAP有一些提示,我将非常感激。

为什么JDK1.8.0u121无法找到kerberos default_tkt_enctypes类型? (KrbException:default_tkt_enctypes没有支持的默认etypes)

以下是我的环境细节: – KDC服务器 :Windows Server 2012 目标机器 :Windows 7 JDK版本 :Oracle 1.8.0_121(64位) 我在Windows 7机器上运行Java的kinit命令时遇到以下exception: – C:\Program Files\Java\jdk1.8.0_121\bin>kinit -k -t “C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\tomcat_ad.keytab” HTTP/dev26.devdevelopment.com@DEVDEVELOPMENT.COM Exception: krb_error 0 no supported default etypes for default_tkt_enctypes No error KrbException: no supported default etypes for default_tkt_enctypes at sun.security.krb5.Config.defaultEtype(Config.java:844) at sun.security.krb5.internal.crypto.EType.getDefaults(EType.java:249) at sun.security.krb5.internal.crypto.EType.getDefaults(EType.java:262) at sun.security.krb5.KrbAsReqBuilder.build(KrbAsReqBuilder.java:261) at sun.security.krb5.KrbAsReqBuilder.send(KrbAsReqBuilder.java:315) at sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:361) […]

通过ssl作为匿名用户进行Active Directory身份validation

我可以使用Spring-ldap为使用为ContextSource生命周期配置的用户validationActive Directory。 我的Spring xml配置看起来像lilke: 用于validation用户的java代码是: public boolean login(String username, String password) { AndFilter filter = new AndFilter(); this.ldapTemplate.setIgnorePartialResultException(true); // Active Directory doesn’t transparently handle referrals. This fixes that. filter.and(new EqualsFilter(“objectCategory”,”****”)); filter.and(new EqualsFilter(“objectClass”,”****”)); filter.and(new EqualsFilter(“sAMAccountName”, username)); return this.ldapTemplate.authenticate(“OU=myBaseOu,DC=xyz,DC=def”, filter.encode(), password); } 即使我没有在contextSource bean中设置userDn和password属性,同样适用于Linux打开Ldap v3。 我只需要配置这个xml,以便我可以作为匿名用户访问Active Directory(无需设置userDn和密码)。 此外,我需要通过SSLvalidation用户。 为此我用过 但我有例外: Exception in thread “main” org.springframework.ldap.CommunicationException: simple bind […]

安全Java SOAP Web服务 – Active Directory身份validation信任

我想在Java生产者和Java消费者之间构建一个安全的Web服务。 我想使用生产者和消费者运行的域帐户使用Active Directory进行身份validation。 你能举个例子吗? (即:AD可信任的自动替代手动密钥库。)

在ssl(ldaps)的支持下连接活动目录

我试图在ssl的支持下与活动目录连接。 我尝试了以下网站的步骤。 http://confluence.atlassian.com/display/CROWD/Configuring+an+SSL+Certificate+for+Microsoft+Active+Directory 当我尝试从java代码连接活动目录时,它会出现以下错误。 Exception in thread “main” javax.naming.CommunicationException: simple bind fail ed: 172.16.12.4:636 [Root exception is java.net.SocketException: Connection rese t] at com.sun.jndi.ldap.LdapClient.authenticate(Unknown Source) at com.sun.jndi.ldap.LdapCtx.connect(Unknown Source) at com.sun.jndi.ldap.LdapCtx.(Unknown Source) at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(Unknown Source) at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(Unknown Source) at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(Unknown Source) at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(Unknown Source) at javax.naming.spi.NamingManager.getInitialContext(Unknown Source) at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source) at javax.naming.InitialContext.init(Unknown Source) at javax.naming.InitialContext.(Unknown Source) at […]