【发布时间】:2020-04-25 23:00:11
【问题描述】:
我想使用 ASP.NET Core 身份和个人用户帐户作为底层授权方法来实现“假”混合身份验证。
流程应该是这样的:
- 数据库用户表中填充了所有员工(即用户名是 John.Smith 或 Jane.Smith)
- 用户打开部署在 IIS 上并启用 Windows 身份验证的 Intranet 应用程序
- 用户在 AD 上通过身份验证,其用户名是 DOMAIN\John.Smith
- 系统使用 John.Smith 作为无密码登录名对数据库数据进行另一次身份验证
- 系统为 John.Smith 颁发新的身份验证票证,其中所有角色和声明均从数据库中提取
我被困在第 4 点,我应该在哪里进行“假”身份验证?
【问题讨论】:
-
“假”身份验证是什么意思? HTTP 请求的当前 HTTP 上下文中的用户已经通过您的 Active Directory 域的身份验证。听起来您需要另一个自定义中间件,该中间件将在身份验证后处理以执行您的自定义数据库相关逻辑。
-
是的,这就是想法。这是一种伪造的混合身份验证,因为唯一启用的方法是 Windows 方法,其底层个人用户帐户身份验证逻辑对用户透明。
-
我不完全确定,但我认为
IClaimsTransformer是满足您要求的方法:benfoster.io/blog/…
标签: .net asp.net-core asp.net-identity windows-authentication mixed-authentication