asp.net-mvc-5 - 使用 LDAP 作为数据存储验证 ASP.Net Identity 2 中的密码
问题描述
我正在使用 ASP.Net Identity 2 和 LDAP 作为用户的存储来实现 ASP.Net MVC5 页面的身份验证。我没有使用 OWIN。
我开始创建我自己的 IUserStore 派生自IUserPasswordStore
. 该接口需要实现三个方法:
GetPasswordHashAsync
SetPasswordHashAsync
HasPasswordAsync
我现在想知道如何验证用户的密码,因为UserManager
只提供了一个CheckPasswordAsync
接受用户对象和输入密码的方法。我的假设如下:
- 此方法使用
Passwordhasher
and it'sVerifyHashedPassword
方法。 VerifyHashedPassword
IUserStore
然后接收sGetPasswordHashAsync
方法提供的哈希密码。- 因此,我可以实现自己的密码哈希并根据保存的密码哈希验证提供的密码
如果这个假设是正确的,这可能是我想知道安全性的解决方案。执行散列和验证此散列的正确位置是什么...应该全部发生在 LDAP 内部(该解决方案不起作用),或者最好在发送到 LDAP 进行存储之前散列密码,然后检查散列密码我自己?从 LDAP 中检索密码哈希是否会成为至少获取哈希的攻击媒介?
ASP.Net Identity 中是否存在针对 LDAP 进行身份验证的完全不同的方法?我知道有可能针对外部机制进行身份验证,但我希望这是为 Google/Facebook 等登录而设计的。它提供自己的凭据输入表单,因此不适合 LDAP。
解决方案
推荐阅读
- file-transfer - 如何将文件从 OPC UA 客户端传输到服务器
- r - DCC 多元 GARCH 估计
- rendering - 在 MapBox Android 8.x 中调试 CPU 消耗和拖拽延迟
- javascript - 允许用户通过 Facebook 分享他们在我的网页游戏中的成就
- java - MediaStore.MediaColumns.DATA is deprecated, and I want to load images from gallery to my app
- python - Keras 小型网络占用大量 GPU 内存
- javascript - 在 React 中的函数内部声明函数
- django - 如何使用其外键在管理员中预填充模型列?
- visual-studio-2012 - SSRS 中的折线图交互式缩放
- reactjs - 为什么 TypeScript 不能对 React props 进行类型检查?