问题标签 [lds]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
27729 浏览

ssl - 在 Active Directory 中设置 SSL 操作方法

我需要通过 Active Directory 设置 SSL。我用谷歌搜索了很多,但找不到一篇关于如何做到这一点的像样的文章。如果你知道一些关于这方面的好资源,请告诉我。谢谢!

0 投票
0 回答
321 浏览

certificate - 从 LDS 中删除过期的证书(ADAM 的新版本)

这是我的情况:

我们正在使用 Microsoft 的轻量级目录服务(带有 Server 2008 的 ADAM 的新版本)替换当前托管在 Sun 的 iPlanet 上的证书存储。

这些证书已被导入 LDS 到应用程序分区(例如 o=myorg,C=AU)。在这种结构下,我有大约 40,000 个 OU,每个代表一个客户,每个客户 OU 是一个或多个用户 (iNetOrg) 对象(总共大约 60,000 个)。每个用户的 UserCertificate 属性中都有一个或多个证书。

内部编写的应用程序代码和专有 PKI 代码的组合读取并发布这些证书以验证金融交易。

由于证书的 LDAP 路径存储在客户证书中(以及应用程序代码中),并且对更改任何代码的兴趣为零,因此我不得不将 iPlanet 目录作为一个整体提取并转储到 LDS 中相同的结构。

(我不会使用或托管 Microsoft CA,只是实施符合 LDAP 的目录来托管这些证书)

我们已经使用 LDS 中的数据对应用程序进行了全面测试,一切正常 - 这是我的困境和问题(最后,唷!)

没有为删除已撤销或过期的证书设置任何流程,因此绝大多数数据完全无用,系统已经运行了大约 8 年!我做了一个快速分析,我估计至少 80% 的数据不再有效。

当我负责管理目录时,我想从一个干净的目录开始。有谁知道如何清理这些过期的证书。我不是一个经验丰富的脚本编写者,但有一些 VB 的背景。我一直在研究 CAPICOM 的使用,感觉这可能可以使用,但我不确定具体是什么方式?

我更愿意编写一个脚本,我可以指定一个到期日期(比如任何在 2010 年之前到期的证书),然后针对 LDS 分区运行。这样我可以定期重用脚本来清理目录(如上所述 - 我无法调整正在编写证书的应用程序,这是与第三方合作的)。

另一种不太吸引人的替代方法是在导入之前按摩 LDIF 文件(270 万行!)以撕掉证书

非常感谢任何帮助和建议。

干杯

乔恩

0 投票
1 回答
630 浏览

c# - AD LDS 上下文密码间歇性重置

使用 C# 中的 DirectoryServices.AccountManagement 库,我正在建立一个 PrincipalContext,然后使用该上下文来验证用户。

似乎我用来建立上下文的用户名正在间歇性地损坏/重置,或者正在发生其他事情导致建立上下文失败。

手动重置密码以使用 ADSIEdit 后,我​​可以正常建立上下文。

我正在建立上下文,如图所示:

PrincipalContext ldsUserContext = new PrincipalContext( ContextType.ApplicationDirectory, "[servername]:389", "CN=USERS,CN=XXX,O=XXX", ContextOptions.SimpleBind, "CN=[username],CN=PEOPLE,CN=XXX ,O=XXX", "[密码]");

然后我使用 ValidateCredentials,如下所示:

context.ValidateCredentials("CN=[login],CN=USERS,CN=XXX,O=XXX", [userpassword], ContextOptions.SimpleBind)

目前大约有 15 个用户在一天中每个用户登录大约 5 次。每次出现问题之间可能有几天或几个月的时间。

关于可能发生什么的任何想法?

谢谢,

马特

0 投票
1 回答
2279 浏览

active-directory - 在 LDAP (LDS) 上创建自定义用户属性

我正在运行一个连接到 LDAP (LDS) 的 webapp。在应用程序中,我需要在用户类上检查属性 userAccountControl 的值。

在我的安装中,我的用户类没有这样的属性,即使我在创建实例时导入了 MS-User*.ldf 文件。

所以,我需要在用户类中创建这个属性。我正在使用 ADSI Edit 连接到我的 LDS 实例,但它不提供任何工具来创建新属性。我该怎么办?

0 投票
1 回答
6848 浏览

.net - ContextType.ApplicationDirectory 的 AD LDS ValidateCredentials 无法进行身份验证

我正在尝试在我的 MVC 应用程序中使用 AD LDS 进行用户身份验证。我设法编写了一些代码,允许我创建/编辑/删除用户和组,但我似乎无法对它们进行身份验证。这是我的示例代码:

不幸的是,这永远不会到达“Writeline”,只会给出密码或用户名不正确的错误。

我玩过 ContextOptions 但没有任何运气。

有任何想法吗?

0 投票
1 回答
2625 浏览

.net - AD LDS (ADAM) 通过 SSL 更改密码

我已经在互联网上搜索了几天试图解决这个问题。

我正在做一个项目,我需要允许用户使用 ASP.NET Web 应用程序更改他们的密码。

我必须使用“ChangePassword”而不是“SetPassword”,因为我必须强制执行密码历史记录,并且不允许 LDS 中的任何用户拥有超出他们需要的任何权限。我正在尝试在开发环境中完成此任务。我有两台机器“Server1”(LDS、PingFederate、CA)和“Server2”(IIS)。我想我可能会遇到问题,因为我没有在两个盒子之间设置 SSL,所以我昨天花了半天时间设置 CA 并为两台机器创建证书。我相当确定它正在工作,因为我不再在错误日志中看到任何错误,并且我可以使用 LDP 使用端口 636 并检查 SSL 登录到 LDS。我还应该提到,这些机器不在域环境中。我已经编辑了测试网络上所有机器上的主机文件。

我尝试了不同的代码变体:

我在 Object obj = de.NativeObject; 的第一个版本中遇到异常。我使用它来确定绑定是否正确发生,并作为调试步骤插入,因为这是我通过端口 389 验证用户的方式。例外是“登录失败:未知用户名或密码错误”。

我在 de.Options.PasswordEncoding = PasswordEncodingMethod.PasswordEncodingSsl; 的第二个版本上遇到异常;例外是“登录失败:未知用户名或密码错误”。

我在 SearchResult sr = ds.FindOne(); 的第三个版本上遇到了一个异常;例外是“登录失败:未知用户名或密码错误”。

如果我确实尝试使用 AuthenticatioTypes.None | 在端口 389 下运行此代码 AuthenticationTypes.FastBind,它将失败 de.Invoke("ChangePassword", new object[] { pwd, newPwd }); 除了“未知名称”。我真的很想让它在 SSL 下运行,或者至少不以明文形式传输任何密码。我确实有通过 HTTPS 运行的网站。我确实尝试修改 LDS 上的 dsHeuristics 值,以便可以通过非 SSL 连接更改密码,但这也不起作用。

任何人可能有的任何建议将不胜感激。

0 投票
2 回答
4659 浏览

active-directory - 将 AD LDS 用户与 AD 用户关联的最佳实践

我们有一个使用 AD LDS (ADAM) 的应用程序,它包含一个扩展的用户类(自定义属性,特定于我们的应用程序)。我们的一位客户希望我们的用户链接到他们的域用户 (AD)。当他们在他们的系统中创建用户时,必须创建我们这边的用户。当他们在他们的系统上删除一个用户时,相应的用户应该在我们这边被删除。与基本属性(姓名、电子邮件、...)相同。应用程序特定属性将由我们的工具修改。

使这些用户保持同步的最佳或最可靠的方法是什么?客户端不允许我们修改他们的架构。

我正在考虑自己创建一个网络服务来添加/删除/修改我们这边的用户,可以从他们的系统中调用该用户。但也许有更好的解决方案。谢谢。

0 投票
1 回答
444 浏览

dynamic-programming - USACO - 动态规划 - 最大递减子序列

我对 USACO Training 的 TEXT Dynamic Programming 部分中关于经典问题(查找最大递减子序列)的代码感到困惑。这是文章链接。请帮我搞定!

这是代码:

我有3个问题:

1) 第 14-17 行到底是做什么的?例如对于序列 10, 2, 8, 9, 4, 6, 3 ,该代码的结果是 4 但它的子序列是 10, 8, 4, 2 是错误的,因为原始序列中的元素 2 是在 8 和 4 之前,但在结果子序列中是在 8 和 4 之后!

2)考虑序列5,10,8,9,4,6,3。根据上面的代码,最大递减子序列的长度是4,这个子序列是10,5,4,3。但是在这个子序列中相反原始序列 5 在 10 之后。

3)是否有必要检查num[i] < bestrun[j+1]内循环中的条件?我认为它以前满足num[i] > bestrun[j]条件。

我在等你有用的答案。
谢谢你的帮助!

0 投票
1 回答
2179 浏览

powershell - Powershell 拉取 LDS/ADAM 属性值

我正在从 ADAM 环境中提取用户属性,特别是我需要“manageddepartmentnumber”和“manageddepartment”。不过几个小时后,我仍然不知道提取这些信息的最佳方法是什么?

目前正在尝试

这当然......不起作用。任何帮助是极大的赞赏。

谢谢

0 投票
1 回答
712 浏览

active-directory - 在没有凭据的情况下连接到 ad-lds

我在 Windows Server 2008 R2 上生成了一个 AD-LDS 实例,并通过 Windows 7 机器上的 ADSI Edit 成功连接到它(两台计算机都位于同一个域中)。

我的目标是创建一个由所有域用户运行的轻量级 .NET 程序,并确定特定用户是否可以执行特定操作(角色和组)。

到目前为止,我已经设法编写了大部分内容,但我现在面临一个小安全问题:虽然从服务器本身运行时不需要凭据,从另一个用户(当然在同一个域中)运行时,LDS连接需要实例的管理员凭据 - 我不太愿意将这种事情留在我的代码中。

我在网上搜索了很多绕过它的方法(Active Directory 绑定?/ SimpleBinding?),但我发现的所有解决方案都涉及 SSL 和证书安装。

域中的用户是否有一种简单的方法可以在不暴露他/服务器凭据的情况下连接 LDS 实例?

谢谢。