首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在内部创建JWT令牌

在内部创建JWT令牌
EN

Software Engineering用户
提问于 2017-12-21 17:54:22
回答 1查看 379关注 0票数 1

我需要在我的JWT tokens核心API应用程序中实现ASP.NET来处理授权。

我的问题是,在我的API应用程序中生成自己的JWT token的风险是什么,而不是让它通过第三方解决方案(如Azure Active Directory B2CIdentity Server )为我处理?

有一篇关于如何在JWT token核心应用程序中创建ASP.NET的好文章,这看起来很容易,乍一看,我没有看到在我自己的应用程序中创建自己的JWT tokens的任何缺点。

这篇文章是:http://www.blinkingcaret.com/2017/09/06/secure-web-api-in-asp-net-core/

我希望有人能告诉我故事的另一面,这样我才能做出一个健康的决定。谢谢。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2017-12-21 19:14:07

有可能会有更多的应用程序需要生成令牌。

大多数公司都希望集中安全。为此,他们不希望单个应用程序生成令牌。相反,他们创建一个组件来处理JWT方面,并期望应用程序通过Nuget包使用该组件。这个组件很可能是中间件管道的一部分。然后,所有应用程序使用/生成JWT令牌的方式相同。

一些示例组件代码:

代码语言:javascript
复制
    public static class JwtMiddlewareExtensions
    {
        public static IApplicationBuilder UseJwtMiddleware(this IApplicationBuilder builder);
    }

如果下载了Nuget包,然后在启动时使用该组件:

代码语言:javascript
复制
        protected virtual void ConfigureAuthorization(IApplicationBuilder app)
        {
            app.UseJwtMiddleware();
        }

如果我们需要一个完整的集成测试,我们可以用我们自己的方法覆盖安全授权。

代码语言:javascript
复制
    protected override void ConfigureAuthorization(IApplicationBuilder app)
    {
        app.UseMiddleware<AuthMiddleware>();
    }

其中AuthMiddleware是一个本地实现,如下所示:

代码语言:javascript
复制
        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);
        }
票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/362808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档