我需要在我的JWT tokens核心API应用程序中实现ASP.NET来处理授权。
我的问题是,在我的API应用程序中生成自己的JWT token的风险是什么,而不是让它通过第三方解决方案(如Azure Active Directory B2C或Identity Server )为我处理?
有一篇关于如何在JWT token核心应用程序中创建ASP.NET的好文章,这看起来很容易,乍一看,我没有看到在我自己的应用程序中创建自己的JWT tokens的任何缺点。
这篇文章是:http://www.blinkingcaret.com/2017/09/06/secure-web-api-in-asp-net-core/
我希望有人能告诉我故事的另一面,这样我才能做出一个健康的决定。谢谢。
发布于 2017-12-21 19:14:07
有可能会有更多的应用程序需要生成令牌。
大多数公司都希望集中安全。为此,他们不希望单个应用程序生成令牌。相反,他们创建一个组件来处理JWT方面,并期望应用程序通过Nuget包使用该组件。这个组件很可能是中间件管道的一部分。然后,所有应用程序使用/生成JWT令牌的方式相同。
一些示例组件代码:
    public static class JwtMiddlewareExtensions
    {
        public static IApplicationBuilder UseJwtMiddleware(this IApplicationBuilder builder);
    }如果下载了Nuget包,然后在启动时使用该组件:
        protected virtual void ConfigureAuthorization(IApplicationBuilder app)
        {
            app.UseJwtMiddleware();
        }如果我们需要一个完整的集成测试,我们可以用我们自己的方法覆盖安全授权。
    protected override void ConfigureAuthorization(IApplicationBuilder app)
    {
        app.UseMiddleware<AuthMiddleware>();
    }其中AuthMiddleware是一个本地实现,如下所示:
        public async Task Invoke(HttpContext context)
        {
            var identity = (IIdentity)new GenericIdentity("myuserid", "JWT");
            var principal = new System.Security.Principal.GenericPrincipal(identity, new[] { "CREATE" });
            context.Authentication.HttpContext.User = principal;
            await _next.Invoke(context);
        }https://softwareengineering.stackexchange.com/questions/362808
复制相似问题