我目前正在尝试进行以下工作:我使用ASP.net核心2的默认安全性,因此使用带有策略的授权和使用JWT承载令牌进行身份验证,这将检查Azure Active Directory。另外,我想将Authorize-Attributes与已定义的策略一起使用。也就是说,我希望能够动态地推翻这个安全性,例如自动化集成测试,本地开发等。 不幸的是,这似乎并不容易:
我不能简单地调用.AddAuthentication和.AddAuthorization扩展名。如果我这样做,我得到:
InvalidOperationException: No authenticationScheme was specified, and there was no DefaultChallengeScheme found.
我还试图覆盖IAuthorizationService和AuthenticationHandler。我只是通过依赖注入注入我的空实现。使用它,确实发生了各种奇怪的效果。
从我读过的内容来看,Microsoft确实建议不要覆盖这些类,甚至不要创建自定义的Authorize-Attribute。相反,应该使用框架。通常,我的主要目标是将依赖项抽象为Azure Active Directory。这可能有更好的方法吗?