Blazor与IdentityServer4的集成(五)

本文介绍如何将Blazor与IdentityServer4集成,实现Web Api的认证。通过配置IdentityServer,创建Web Api项目并添加JwtBearer认证,修改Blazor的配置以携带Token。详细步骤包括添加包、修改Startup、更新appsettings.json,以及处理Token过期。源代码可在提供的链接中查看。
摘要由CSDN通过智能技术生成

保护你的Web Api

前面几篇集成了Blazor和IdentityServer,完成了登录以及指定页面的授权操作。本篇来实现与Web Api的集成,当然主要还是Web Api的认证操作。

在MVC模式下,通常是借助Cookie,但是Web Api更主流的还是借助Access Token(尤其是Json Web Token),具体的概念这里就不展开说了。

结合IdentityServer的例子,具体流程如下:

  • Blazor通过IdentityServer完成登录。
  • Blazor向IdentityServer请求一个Access Token用来访问对应的Api(默认是Json Web Token)。
  • Blazor访问Api的时候在Http头里面带上Token。
  • Api解析Token,并向IdentityServer验证合法性,然后完成认证操作。

1 配置IdentityServer

其实在前面的例子中,我们已经配好了IdentityServer,回顾一下IdentityServer的Config.cs文件:

我们已经配置好了ApiScopes:

public static IEnumerable<ApiScope> ApiScopes =>
    new ApiScope[]
    { 
        //这里的ApiScope就是Web Api对应的标识
        new ApiScope("api")
    };

public static IEnumerable<Client> Clients =>
    new Client[]
    {
        new Client
        {
            //对应上面的ApiScope
            AllowedScopes = {  "api" },
        }
    };

注意区分ApiScope和ApiResource, 这里的ApiScope并不会生成Access Token里面的Audience属性,因此我们设置EmitStaticAudienceClaim=true(见IdentityServer的Starup文件)来指定一个固定的Audience。
如果需要使用Api的名称作为Audience,则要使用ApiResource
参考:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值