Microsoft Identity包中Scheme、Handler及相关认证问题咨询
Microsoft Identity 认证核心概念答疑
1. Scheme 和 Handler 的定义与关联
- Scheme(认证方案):是认证方式的唯一标识字符串,用来区分不同的认证渠道(比如Cookie、JWT、第三方OAuth登录等),可以理解为给每种认证方式起的“代号”。
- Handler(认证处理器):是实现具体认证逻辑的类,负责完成凭证验证、生成用户身份(ClaimsIdentity)、处理登录/登出流程等实际工作。
- 关联关系:每个Scheme都和一个Handler一一绑定。当系统需要执行认证操作时,会根据指定的Scheme名称,找到对应的Handler来执行具体的认证逻辑。比如默认的Cookie认证方案
IdentityConstants.ApplicationScheme,对应的处理器就是CookieAuthenticationHandler。
2. ClaimsIdentity构造函数中的authenticationType是什么?和Scheme、Handler有关吗?
authenticationType是用来标识当前ClaimsIdentity是通过哪种认证方式生成的字符串,它的取值就是对应的认证Scheme名称。- 直接关联:当Handler完成认证流程后,会创建
ClaimsIdentity实例,并将当前使用的Scheme名称作为authenticationType参数传入构造函数。这样后续系统可以通过这个值,识别该用户身份的认证来源,比如在授权判断时确认身份是否来自特定的认证方案。
3. SignInManager.PasswordSignInAsync默认使用哪个Scheme?
- 默认情况下,使用的是
IdentityConstants.ApplicationScheme,这是Microsoft Identity包内置的、专门用于应用内账号密码登录的Cookie认证方案。 - 如果你在项目的认证配置中自定义了Scheme,并且修改了SignInManager的相关配置,才会使用你指定的自定义Scheme;否则都会沿用这个默认值。
内容的提问来源于stack exchange,提问作者Hossam Zaki
相关产品推荐
相关产品推荐

