繁体   English   中英

如何使用 LDAPS 知道当前 windows 用户是否在 AD 组中

[英]How to know if the current windows user is in a AD group by using LDAPS

为了保护我的 c# winform 应用程序,我需要知道当前登录的用户 (windows 10) 是否属于 Active Directory 中的一个组以下代码有效,但我认为它依赖于 LDAP,我需要做通过 LDAPS

WindowsIdentity CurrentIdentity = WindowsIdentity.GetCurrent(); System.Security.Principal.WindowsPrincipal MyPrincipal = new System.Security.Principal.WindowsPrincipal(CurrentIdentity); 返回 MyPrincipal.IsInRole("测试组");

在用户已经登录 windows 的情况下,如何在不强制用户在应用程序中重新输入登录名/密码的情况下实现这一点? 是否可以?

提前致谢

在用户已经登录 windows 的情况下,如何在不强制用户在应用程序中重新输入登录名/密码的情况下实现这一点? 是否可以?

查找支持通过 SSPI 进行 GSSAPI 或 GSS-SPNEGO 身份验证的 LDAP 客户端库(Windows GSSAPI 库)。

为了保护我的 c# winform 应用程序,我需要知道当前登录的用户 (windows 10) 是否属于 Active Directory 中的一个组以下代码有效,但我认为它依赖于 LDAP,我需要做通过 LDAPS

如果是,则它依赖于受 Kerberos 保护的LDAP。除此之外,您可能不需要 LDAPS。 Active Directory LDAP 和 RPC 通信已经通过这种方式得到保护——它们不仅使用 Kerberos 进行身份验证,还用于传输加密(每个 Kerberos 票据都带有一个 AES session 密钥),并且 Kerberos 的性质确保了服务器的身份与 TLS 证书的方式相同。

(虽然看起来 function 实际上使用的不是 LDAP,而是 .NETLOGON 安全通道——与 Windows 在操作系统登录期间用来检索用户信息的通道相同。)

但是,客户端组检查并不能真正保护应用程序本身。 如果您担心有人能够伪造 LDAP 流量 – 您的 C# WinForms 应用程序将很容易反编译并删除任何客户端限制(并窃取应用程序可能使用的任何嵌入式凭据)。 唯一真正的安全来自服务器端检查(例如,通过服务器端 ACL 限制数据库访问)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM