gpt4 book ai didi

java - 如何通过 LDAP 将 userWorkstation 传递到 Active Directory 进行登录?

转载 作者:行者123 更新时间:2023-11-30 11:08:21 25 4
gpt4 key购买 nike

关于这个问题的类似问题。

LDAP/Java auth: How to specify workstation?

Why do you need to include the AD server in "userWorkstations"?

我有一个产品可以处理使用 LDAP 的客户端的用户身份验证。客户端计算机不直接针对 Active Directory 进行身份验证。产品服务器处理登录请求,代表该用户直接针对 LDAP 进行身份验证。问题是一位客户在 Active Directory 中启用了用户工作站白名单。因为 LDAP 请求来自产品服务器,而不是客户端机器,所以它没有通过用户工作站检查。下面是我尝试将用户工作站值作为环境变量传递但在客户环境中不起作用的代码。如何为 Active Directory 正确传递属性?

部分代码片段:

        env.put(Context.REFERRAL, "follow");
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");

env.put(Context.PROVIDER_URL, url);
env.put(Context.SECURITY_AUTHENTICATION, authentication);

// Specify the Security Protocol
if (!protocol.equals(""))
env.put(Context.SECURITY_PROTOCOL, protocol);

// Use whatever was passed to us
env.put(Context.SECURITY_PRINCIPAL, dn);
env.put(Context.SECURITY_CREDENTIALS, password);

String userWorkstations = "test.example.com";
env.put("userWorkstations", userWorkstations);
env.put("User-Workstations", userWorkstations);
log.info(String.format(
"Found property server.ldap.user.workstations. Adding value %s to the LDAP context.",
userWorkstations));
log.info("Context dump: " + env);

// Get a reference to a directory context
dirContext = new InitialDirContext(env);

最佳答案

我也试图解决这个问题,但得出的结论是这没有任何意义。

如果您能够发送用户的工作站名称,您将能够在每台计算机上进行身份验证。

我认为您的解决方案是将运行服务器软件的计算机的名称添加到 Activity 目录中每个参与用户的“登录到”列表中。

关于java - 如何通过 LDAP 将 userWorkstation 传递到 Active Directory 进行登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28589034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com