Mac*_*ius 7 asp.net openid-connect
我正在开发一个AspNetCore 2应用程序,具有Web视图旁边的API(带有前缀/ API),我想有网络视图中使用OpenIdConnect +饼干进行身份验证,而/ API前缀的路由与JWT令牌进行身份验证(移动应用兼容性).
到目前为止,我已经设法使用以下代码注册和配置cookie,OpenIdConnect和JWT中间件:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie()
.AddOpenIdConnect(options => {
var optionsSetup = new OpenIdConnectOptionsSetup(b2cOptions);
optionsSetup.Configure(options);
});
services.AddAuthentication()
.AddJwtBearer(options => {
var optionsSetup = new JWTBearerOptionsSetup(b2cOptions);
optionsSetup.Configure(options);
});
Run Code Online (Sandbox Code Playgroud)
与Configure方法上的这一行一起:
app.UseAuthentication();
Run Code Online (Sandbox Code Playgroud)
OpenIdConnectOptionsSetup取自(稍作修改)aspnetcore AD B2C示例存储库.
JWTBearerOptionsSetup是来自aspnetcore AD B2C样本仓库的重构,用于将JWT配置代码提取到外部类中.
现在,对于/ api端点的AJAX调用正在满足我们AD的登录策略端点的OpenId重定向,因此Cookie/OpenIdConnect中间件正在处理这些.我需要一种让/ api直接进入JWTBearer中间件的方法.
这可能吗?我必须将Web和API项目分开吗?
我建议您将 Web 和 api 分成单独的服务,因为否则将很难推断系统的行为。系统故障排除也将变得更加容易。
cookie和JWtBearer处理程序都将尝试从会话 cookie 或访问令牌在您的系统中创建ClaimsPrincipal用户对象。
也许这篇博文可以给你一些提示:
归档时间: |
|
查看次数: |
1469 次 |
最近记录: |