前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP.NET Core分布式项目实战(客户端集成IdentityServer)--学习笔记

ASP.NET Core分布式项目实战(客户端集成IdentityServer)--学习笔记

作者头像
郑子铭
发布2021-01-13 15:35:38
9650
发布2021-01-13 15:35:38
举报

任务9:客户端集成IdentityServer

新建 API 项目

代码语言:javascript
复制
dotnet new webapi --name ClientCredentialApi

控制器添加验证

代码语言:javascript
复制
using Microsoft.AspNetCore.Authorization;

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

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

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

添加 Nuget 包之后

代码语言:javascript
复制
dotnet restore

注册服务

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

使用服务

代码语言:javascript
复制
app.UseAuthentication();

在 Program.cs 中配置启动端口

代码语言:javascript
复制
webBuilder.UseUrls("http://localhost:5001");

启动程序

代码语言:javascript
复制
dotnet run

访问地址

代码语言:javascript
复制
http://localhost:5001/weatherforecast

返回 401,未授权

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

访问地址

代码语言:javascript
复制
http://localhost:5000/.well-known/openid-configuration

获取 token_endpoint

代码语言:javascript
复制
"token_endpoint": "http://localhost:5000/connect/token",

通过 Postman 获取 token

使用 Post 的方式访问 token_endpoint

代码语言:javascript
复制
http://localhost:5000/connect/token

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

发送请求获取 access_token

通过 access_token 访问客户端

访问地址

代码语言:javascript
复制
http://localhost:5001/weatherforecast

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

返回200,授权访问成功

课程链接

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 任务9:客户端集成IdentityServer
  • 课程链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档