问题标签 [adsi]
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.
winapi - 如何枚举跨域的嵌套组?
我正在使用 MemberOf Attribute 来枚举嵌套组。我有 2 个域、2 个组和一个用户。配置见下图:
- 域 DOMAIN-A 具有域全局组 GROUP-A 和 USER-A。
- 域 DOMAIN-B 具有域本地组 GROUP-B。
- USER-A 是 GROUP-A 的成员。
- GROUP-A 是 GROUP-B 的成员。
理想情况下,GROUP-A 应该在 MemberOf 属性中包含 GROUP-B,但它甚至没有 MemberOf 属性。(我使用的是 Softerra LDAP Browser 2.6)
复制后会填充吗?如果是,如何更改复制间隔?我想要即时复制。
谢谢
delphi - "Network path not found" when using WinNT provider and Delphi to query ADSI
I am querying ADSI using the WINNT provider with code similar to this :
where GetObject is defined as :
This has been working for a few years now without problem I have one installation though where on a particular domain, I get a Network Path Not Found error when querying from a different domain. This setup has 4 different domains. There is full trust between the domains, and the query works fine on the offending domain when queried from within the domain. It's just when this is tried from one of the other domains. It is possible to query the domain using a number of other tools, so everything seems ok. Any ideas why this particular domain might be giving this problem?
active-directory - 使用 ADSI 打开新创建的 AD LDS 实例
我使用 Active Directory 轻型目录服务设置向导创建了一个新实例,其专有名称为CN=MyName,DC=MyComponent
成功。我将该实例视为正在运行的 Windows 服务。在 ADSI 中,每当我尝试连接到该可分辨名称时,我都会得到:
手术失败。错误代码 0x202b 从服务器返回了引用。数据 0, 1 接入点
我的路径是: LDAP://CN=MyName,DC=MyComponent
windows - 寻找使用 ADSI API 以编程方式创建 Windows 组的示例
寻求使用 ADSI API 以编程方式创建 Windows 组的示例。AD 是 Windows 活动目录http://en.wikipedia.org/wiki/Active_Directory
“SI”也许是服务接口?
无论如何,这个领域只是没有很好的记录。. . 我看过一些 PowerShell 脚本。. . 但真的不想确保已安装 PowerShell 等。运行并确保将 MY_XYZ_GROUP 添加到 Window 的组集的简单程序.....
应该很容易......看起来并不那么容易。
c# - 列出所有使用目录服务的本地用户
我创建的以下方法似乎不起作用。foreach 循环总是发生错误。
NotSupportedException 未处理...提供程序不支持搜索,无法搜索 WinNT://WIN7,computer。
我正在查询本地机器
permissions - 如何查询 Active Directory 对象的有效权限?
我正在尝试以编程方式确定当前用户是否对给定的 Active Directory 对象具有某些权限(特别是在这种情况下,我正在尝试确定用户是否具有另一个 Exchange 用户或通讯组列表对象的“发送为”权限)。
我已经想出了如何ntSecurityDescriptor
使用 ADSI 访问属性:我可以枚举IADsSecurityDescriptor
'sDiscretionaryACL
属性中的 ACE。但:
- 我如何从该数据中确定受托人是否明确允许或拒绝“发送为”权限?
- 当通过组成员身份间接授予权限时,我如何发现这一点?我真的必须通过(递归地)检查用户所属的所有组来自己解析有效权限吗?当然,该任务必须有一个 API ......
FWIW,我正在使用 ActiveDs.dll 类型库在 Delphi(即本机 Win32 代码)中进行编码,因此特定于 .NET 的解决方案对我没有太大帮助,除非它们的源代码为我提供了如何在本机中做同样事情的线索代码。PowerShell 也是如此。
在任何人开始之前:我已经知道PR_EMS_AB_PUBLIC_DELEGATES
和PR_EMS_AB_PUBLIC_DELEGATES_BL_O
扩展 MAPI 属性。然而,这不是我所追求的。这些属性指的是“代表发送”权限(又名代表),而不是“发送为”权限,这是完全不同的事情。
asp.net - 使用应用程序池标识的 IIS 应用程序丢失主令牌?
(这是一个关于模糊问题的问题。我尝试提供所有相关数据,希望有人提供有用的信息;对于冗长的描述表示歉意。)
我们的网络应用程序
我们有一个在 IIS 7.5 中运行的 .NET 4 Web 应用程序,它访问 Active Directory 和一个 SQL Server 数据库。
通过将应用程序池的标识设置为ApplicationPoolIdentity ,此 Web 应用程序在虚拟“应用程序池标识”下运行。虚拟身份的简明描述可以在StackOverflow 答案和它所引用的博客文章中找到:应用程序池身份只是一个附加组,它添加到作为“网络服务”运行的 Web 应用程序的工作进程中。然而,一位消息人士含糊地暗示“网络服务和 ApplicationPoolIdentity 确实存在 IIS.net 站点文档未发布的差异”。因此,虚拟身份可能不仅仅是一个附加组。
我们选择使用 ApplicationPoolIdentity,而不是 NetworkService,因为它成为 IIS 7.5 中的默认设置(参见,例如,此处),并且根据 Microsoft 的建议:“此身份允许管理员指定仅与应用程序所在身份相关的权限池正在运行,从而提高了服务器的安全性。” (来自为 applicationPools [IIS 7 Settings Schema] 添加的 processModel 元素)“应用程序池标识是一种强大的新隔离功能”,它“使运行的 IIS 应用程序更加安全和可靠。”(来自IIS.net 文章“应用程序池标识” )
该应用程序使用集成 Windows 身份验证,但使用<identity impersonate="false"/>
, 以便不是最终用户的身份而是虚拟应用程序池身份用于运行我们的代码。
此应用程序使用System.DirectoryServices类(即 ADSI API)查询 Active Directory 。在大多数地方,这是在不指定额外的用户名/密码或其他凭据的情况下完成的。
Integrated Security=true
此应用程序还使用连接字符串连接到 SQL Server 数据库。如果数据库是本地的,那么我们看到IIS APPPOOL\OurAppPoolName
是用来连接数据库的;如果数据库是远程的,则使用机器帐户OURDOMAIN\ourwebserver$
。
我们的问题
我们经常遇到工作安装以下列方式之一开始失败的问题。
当数据库位于远程系统上时,数据库连接开始失败:“用户 'NT AUTHORITY\ANONYMOUS LOGON' 登录失败。原因:基于令牌的服务器访问验证因基础结构错误而失败。检查以前的错误。” 上一个错误是“错误:18456,严重性:14,状态:11”。所以现在似乎
OURDOMAIN\ourwebserver$
不再使用,而是尝试匿名访问。(我们有轶事证据表明这个问题发生在 UAC 关闭时,并且在打开 UAC 后它消失了。但请注意,更改 UAC 需要重新启动......)IIS.net 线程中报告了类似的问题“使用 ApplicationPoolIdentity连接到 SQL”,特别是在一个回复中。通过 ADSI (System.DirectoryServices) 的 Active Directory 操作开始失败,出现错误 0x8000500C(“未知错误”)、0x80072020(“发生操作错误。”)或 0x200B(“指定的目录服务属性或值不存在”) .
从 Internet Explorer 登录应用程序开始失败,出现 HTTP 401 错误。但是如果在 IIS 中我们将 NTLM 放在 Negotiate 之前,那么它会再次起作用。(请注意,Kerberos 需要访问 AD,但 NTLM 不需要。)IIS.net 线程“Window Authentication Failing with AppPool Identity”中报告了类似的问题。
我们的假设和解决方法
至少在将应用程序池从 ApplicationPoolIdentity 切换到 NetworkService 时,AD 和登录问题似乎总是消失了。(我们发现一份报告证实了这一点。)
页面“对 ASP 页面上的身份验证问题进行故障排除”有一些与主令牌和辅助令牌相关的建议,我发现令人鼓舞的是它链接了我们的前两个错误:它提到了NT AUTHORITY\ANONYMOUS LOGON
访问和 AD 错误 0x8000500C 和“指定的目录服务”属性或值不存在”。
(同一页还提到了 ADSI 模式缓存问题,但我们可以找到的关于该主题的所有内容都是旧的。现在我们认为这无关紧要。)
基于上述,我们目前的工作假设是,只有在虚拟应用程序池身份下运行时,我们的 Web 应用程序(IIS?工作进程?)才会突然失去其主令牌,因此 IIS 只有一个辅助令牌,所以所有对 Active Directory 和 SQL Server 的访问是匿名完成的,导致上述所有错误。
现在我们打算从 ApplicationPoolIdentity 切换到 NetworkService。希望这可以消除上述所有问题。但我们不确定;如果可能的话,我们想换回去。
我们的问题
上述假设是否正确,如果正确,这是 IIS/Windows/.NET 中的错误吗?在什么情况下会发生这种主要的令牌丢失?
sql-server-2008 - 从 sql server 2008 查询 AD 描述字段给出错误
我正在尝试使用以下 SQL 查询来查询 Active Directory,它运行良好。
当我添加description
属性时,出现以下错误:
消息 7346,级别 16,状态 2,第 6
行无法从链接服务器“ADSI”的 OLE DB 提供程序“ADSDSOObject”获取行的数据。由于符号不匹配或溢出以外的原因,无法转换数据值。
sql - 通过 SQL Server 2008 验证 LDAP 用户
是否可以使用 LDAP 通过 SQL Server 从 Active Directory 对用户进行身份验证?假设我在 ADSI SQL Select 查询中输入了 Windows 域用户名和密码。
delphi - 使用 LDAP 或 ADSI 与 Delphi 进行用户帐户管理
我们为大型医疗索赔处理组织和企业提供大型交易处理系统(批处理)ERP 解决方案。我们目前实施我们自己的用户帐户管理。即,具有适当权限/角色的用户可以创建、编辑或删除帐户,并根据需要分配权限和角色。
每个用户使用分配的帐户登录,并根据权限和角色分配对功能的访问。
客户询问我们是否支持 LDAP 或 Active Directory,用户帐户是否在虚拟域控制器上进行管理,并且一旦登录,用户就无需登录其他软件......例如,我们的。
我一直在查看 LDAP 协议和 Active Directory 服务接口。
只是想知道是否有人有这方面的经验,以及实现支持这些过渡的最佳方法是什么?我特别关心我们是否必须停止使用我们目前的帐户管理和登录系统?
我们目前正在使用 Delphi 2010 和 UNIDAC(用于数据库连接)进行开发。
谢谢