Skip to content
This repository was archived by the owner on Apr 19, 2022. It is now read-only.

资源服务器 与 IdentityServer4 JWT Token效验 #3

Open
yiyungent opened this issue Jan 29, 2021 · 0 comments
Open

资源服务器 与 IdentityServer4 JWT Token效验 #3

yiyungent opened this issue Jan 29, 2021 · 0 comments

Comments

@yiyungent
Copy link
Owner

资源服务器 应向 ids4 请求,验证 JWT Token 是否合法,否则如何判断此token是否是ids4颁发,而不是他人本地伪造
没错,JWT是可以自己本地效验,而无需ids4,但由自己签名生成的,不就可以通过效验了吗?
此时,若是解析出 JWT Token 中的 UserId (sub),再利用此 UserId 查询 用户角色拥有的权限,岂不是很危险

补充:ASP.NET Core从 请求头 Authorization 中取出 JWT Token,再解析放到 User.Claims

没看到 资源服务器ids4 请求,没办法看到这个过程吗?倒是有前端 oidc.js 前端的,

资源服务器如下:

#region for UHub IdentityServer4
// accepts any access token issued by identity server
services.AddAuthentication("Bearer")
    .AddJwtBearer("Bearer", options =>
    {
        options.Authority = _configuration["Rem:Authority"];

        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateAudience = false,
            // 多长时间来验证以下 Token
            ClockSkew = TimeSpan.FromSeconds(5),
            // 我们要求 Token 需要有超时时间这个参数
            RequireExpirationTime = true,
        };

        options.RequireHttpsMetadata = false;
    });
#endregion

上方代码参考官方文档:https://identityserver4.readthedocs.io/en/latest/quickstarts/1_client_credentials.html#configuration

测试了下,

  1. Authority 地址错误,则需 policy.RequireAuthenticatedUser() 处,报错
    image

  2. 若 注释掉 options.Authority = _configuration["Rem:Authority"];,则 需 policy.RequireAuthenticatedUser() ,报错 401

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant