ASP.NET Core分布式项目实战(客户端集成IdentityServer)

任务9:客户端集成IdentityServer

新建 API 项目

dotnet new webapi --name ClientCredentialApi

控制器添加验证

using Microsoft.AspNetCore.Authorization;

namespace ClientCredentialApi.Controllers
{
    [ApiController]
    [Route("[controller]")]
    [Authorize]
    public class WeatherForecastController : ControllerBase

添加验证之后这个 API 就无法访问,需要添加认证授权模式

因为这是客户端,所以只需要添加 IdentityServer4.AccessTokenValidation

添加 Nuget 包之后

dotnet restore

注册服务

services.AddAuthentication("Bearer")
        .AddIdentityServerAuthentication(options => {
            options.Authority = "http://localhost:5000";// 获取授权地址
            options.RequireHttpsMetadata = false;
            options.ApiName = "api";
        });

使用服务

app.UseAuthentication();

在 Program.cs 中配置启动端口

webBuilder.UseUrls("http://localhost:5001");

启动程序

dotnet run

访问地址

http://localhost:5001/weatherforecast
ASP.NET Core分布式项目实战(客户端集成IdentityServer)

返回 401,未授权

VS Code 添加另一个控制台,启动 IdentityServerCenter

访问地址

http://localhost:5000/.well-known/openid-configuration

获取 token_endpoint

"token_endpoint": "http://localhost:5000/connect/token",

通过 Postman 获取 token

使用 Post 的方式访问 token_endpoint

http://localhost:5000/connect/token

Body 添加三个参数(参数在 IdentityServerCenter 的 Config.cs 中定义)

发送请求获取 access_token

ASP.NET Core分布式项目实战(客户端集成IdentityServer)

通过 access_token 访问客户端

访问地址

http://localhost:5001/weatherforecast

Headers 添加参数 Authorization,Value 为 Bearer + access_token

ASP.NET Core分布式项目实战(客户端集成IdentityServer)

返回200,授权访问成功

课程链接

http://video.jessetalk.cn/course/explore

相关文章

ASP.NET Core分布式项目实战(业务介绍,架构设计,oAuth2,IdentityServer4)–学习笔记

ASP.NET Core分布式项目实战(课程介绍,MVP,瀑布与敏捷)–学习笔记

ASP.NET Core快速入门 — 学习笔记汇总
欢迎各位读者加入微信群一起学习交流,在公众号后台回复“加群”即可~~

ASP.NET Core分布式项目实战(客户端集成IdentityServer)

原文出处:微信公众号【郑子铭 DotNet NB】

原文链接:https://mp.weixin.qq.com/s/iuTHaGM6qnrdO5xM9uNBCg

本文观点不代表Dotnet9立场,转载请联系原作者。

发表评论

登录后才能评论