使用 Digest 在 LDAP 中进行身份验证?

发布于 2024-11-30 10:28:10 字数 276 浏览 0 评论 0原文

我的 Web 应用程序正在使用摘要式身份验证。服务器端没有用户密码。现在我需要在 LDAP 中对用户进行身份验证。

是否可以? .Net/C# 中有什么例子吗?

我可以修改我的摘要实现算法,但由于要求,我无法将其更改为基本或任何其他身份验证。

编辑: 据我所知,有 System.DirectoryServices.Protocols.LdapConnection.AuthType 属性可以设置为 AuthType.Digest。我该如何使用这个设置?

My web application is using Digest authentication. There is no user password on server side. Now I need to authenticate a user in LDAP.

Is it possible? Any example in .Net/C#?

I can modify my Digest implementation algorithm, but I can not change it to Basic or any other authentication due to requirements.

Edit: As far as I see there is System.DirectoryServices.Protocols.LdapConnection.AuthType property that can be set to AuthType.Digest. How do I use this setting?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贵在坚持 2024-12-07 10:28:11

简短的回答:不。

需要以编程方式向 LDAP 身份验证例程提供纯文本密码,而您无法从 Digest 获取该密码 - 这就是 Digest 的要点。

我能想到的唯一解决方法是使用高级帐户连接到 LDAP,并检查用户是否可以执行他们想要执行的操作。

如果您尝试使用 LDAP 验证用户的登录,那么您确实有点不知所措。这就是为什么大多数针对 AD 进行身份验证的 Web 服务要么通过 HTTPS 进行基本身份验证,要么使用 NTLM 身份验证...

Short answer: no.

You are required to supply a plain-text password to the LDAP auth routine programmatically, which you cannot get from Digest - that's kind of the point of Digest.

The only work around I can think of is to connect to LDAP with a high-level account, and check whether the user could do what they are trying to do with that.

If you are trying to validate the user's login with LDAP, your a bit stuffed really. This is why most web services that authenticate against AD are either Basic auth over HTTPS, or use NTLM auth...

铜锣湾横着走 2024-12-07 10:28:11

如果你建造一些新的东西,这是可能的。

您可以在创建用户时将 HA1 添加为 LDAP 中的属性。 HA1 = MD5(用户名:领域:密码)用于 Http 摘要。

然后,当用户访问 Web 服务器并提供授权标头时。您可以使用 LDAP 中的 HA1 重建授权并比较结果...但是您需要使用系统管理员凭据访问用户 HA1 值,这不是最好的方法。

It could be possible if your building something new.

You could add the HA1 as an attribute in LDAP when you create the user. HA1 = MD5(username : realm : password) for Http digest.

Then when the user access the web server and provide a Authorization header. You could rebuild the authorization using the HA1 from LDAP and compare the result... But you would need to access the user HA1 value using the system admin credential which is not the best way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文