创建IdentityServer4

Posted hwxing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建IdentityServer4 相关的知识,希望对你有一定的参考价值。

该项目使用dotnet版本3.1 ,vs code创建

创建Web Api项目

创建命令

dotnet new webapi --name WebApi

修改./properties/launchSettings.json

"profiles": {
    "WebApi": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "weatherforecast",
      "applicationUrl": "http://localhost:5001",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }

运行下面命令安装

dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer --version 3.1.0

在startup.cs文件的configureservices添加
技术图片

services.AddAuthentication("Bearer")
    .AddJwtBearer("Bearer", options =>
    {
        options.RequireHttpsMetadata = false;
        options.Authority ="http://localhost:5000";
        options.Audience = "api1";
    });
                    

在startup.cs文件的configure添加
技术图片

app.UseAuthentication(); 

在controller/WeatherForecastController.cs文件添加 [Authorize]
技术图片

然后开启AuthServer、WebApi的程序

使用postman访问 http://localhost:5001/api/value 结果报401,没有认证

技术图片

使用postman 访问 http://localhost:5000/connect/token 来获取 access_token

技术图片

再将access_token加载 http://localhost:5001/api/value 中的Authorization进行请求

技术图片

以上是关于创建IdentityServer4 的主要内容,如果未能解决你的问题,请参考以下文章

IdentityServer4 管理界面

创建IdentityServer4

创建IdentityServer4

如何使用 IdentityServer4 创建 RsaSecurityKey.KeyId

IdentityServer4 + SignalR Core +RabbitMQ 构建web即时通讯

IdentityServer4授权和认证集成Identity和profile