今天来给我们的项目增加API网关,使用Ocelot 它是系统暴露在外部的一个访问入口,这个有点像代理访问的家伙,就像一个公司的门卫承担着寻址、限制进入、安全检查、位置引导、等等功能。同时我们还要在网关中集成了Identity Server(Identity Server在项目中的使用见上一篇文章),当网关需要请求认证信息的时候会与Identity Server服务器进行交互来完成。多说也无益,直接上项目吧。

  1. 新建一个空的.netcore项目,命名为Zhengwei.Gateway新建好后引入Ocelot包,我们之前项目中已有Zhengwei.Identity和Zhengwei.Use.Api,项目结构图如下:

    aaarticlea/png;base64,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" alt="">

  2. 在上图中我们看到一个Ocelot.json文件,里面设置了所有对当前这个网关的配置。它会接收所有的客户端请求,并路由到对应的下游服务器进行处理,再将请求结果返回。而这个上下游请求的对应关系也被称之为路由。配置如下:

{
"GlobalConfiguration": {
"BaseUrl": "http://localhost"
},
"ReRoutes": [
{
"DownstreamPathTemplate": "/api/users",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": ""
}
],
"UpstreamPathTemplate": "/users",
"UpstreamHttpMethod": [ "Get" ],
"AuthenticationOptions": {
"AuthenticationProviderKey": "zhengwei",
"AllowedScopes": []
}
},
{
"DownstreamPathTemplate": "/connect/token",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": ""
}
],
"UpstreamPathTemplate": "/connect/token",
"UpstreamHttpMethod": [ "Post" ] } ] }

其中,DownstreamPathTemplate是下游服务。DownstreamScheme是下游服务http schema。DownstreamHostAndPorts是下游服务的地址,如果使用LoadBalancer的话这里可以填多项。UpstreamPathTemplate: 上游也就是用户输入的请求Url模板。UpstreamHttpMethod: 上游请求http方法,可使用数组

从配置文件中我们可以看出本来通过http://localhost:33545/api/users访问的use api现在可以通过http://localhost: 4157/api/users来访问,本来通过http://localhost: 1110/connect/token来访问的现在可以通过http://localhost: 4157/connect/token来访问,http://localhost: 4157是网关项目的地址。

3、在项目启动时来引入我们的配置文件Ocelot.json吧,写在Program.cs文件中,代码如下:

public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
} public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((webhost,builder)=>{
builder.SetBasePath(webhost.HostingEnvironment.ContentRootPath)
.AddJsonFile("Ocelot.json");
})
.UseStartup<Startup>()
.UseUrls("http://+:80")
.Build();
}

4、 在Startup.cs文件中加入我们的认证服务吧,注意这里的authenticationProviderKey=“zhengwei”,要与我们Ocelot.json文件中的"AuthenticationProviderKey": "zhengwei"一致,代码如下:

public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
} public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
var authenticationProviderKey = "zhengwei"; services.AddAuthentication()
.AddIdentityServerAuthentication(authenticationProviderKey, options=> {
options.Authority = "http://localhost:1110/";
options.ApiName = "gateway_api";
options.SupportedTokens = SupportedTokens.Both;
options.ApiSecret = "secret";
options.RequireHttpsMetadata = false;
});
services.AddOcelot();
} // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
} app.UseOcelot();
}
}

5、一切就序,那我们就开始测试吧,右键解决方案---》属性-->多个项目启动----》操作中将三个项目都设置为启动,关闭后点击启动,启动好后,打开postman,输入网址http://localhost:4157/users

可惜,给我们返回的验证吗是401未认证,然来是我们没有提交对应的token.那就先获取token值吧。输入网址:http://localhost:4157/connect/token,得到如下的返回值,其中access_token就是我们要的token值,复制下来吧。

6、复制下我们的token后,再次请求http://localhost:4157/users前要加入参数,在Headers中输入key:   Authorization   输入对应的值:bearer  + 复制过来的access_token,再次请求,会获取到useapi接口正常返回的值了。如下图

至此,我们的ocelot和Identity Server在我们的项目中集成完毕。

NetCore项目实战篇05---添加Ocelot网关并集成identity server4认证的更多相关文章

  1. NetCore项目实战篇06---服务注册与发现之consul

    至此,我们的解决方案中新建了三个项目,网关(Zhengwei.Gateway).认证中心(Zhengwei.Identity)和用户资源API(Zhengwei.Use.Api).当要访问用户API的 ...

  2. NetCore项目实战篇08---Docker挂载mysql并连接.netCoreWeb

    我们的项目之前在直接连接的mysql,今天我们将通过docker挂载mysql 并与我们开发的webapi项目连接. 1. 安装docker 下载地址: https://download.docker ...

  3. NetCore项目实战篇04---集成IdentityService4

    大家都知道我们的项目中已有web api,现在可以正式访问,不论任何人只要通过输入对应的api网址就可以访问到我们的api 资源,这样是很不安全的,我们需求对当前用户进行身份验证,因此我们在项目中使用 ...

  4. NetCore项目实战篇02---全局异常处理

    在 .netcore中可以自定义自己的异常类型,步骤如下: 1.自定义自己的异常类型UserOperationException 并继承自Exception public class UserOper ...

  5. NetCore项目实战篇03---HTTP Patch 更新数据

    一.什么是HTPP Patch HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 ...

  6. NetCore项目实战篇07---服务保护之polly

    1.  为什么要用polly 前面的项目中,一个服务调用另一个(Zhengwei.Identity调用Zhengwei.Use.Api)服务时是直接调用的,在这个调用的过程中可能会发生各种瞬态故障,这 ...

  7. 洗礼灵魂,修炼python(82)--全栈项目实战篇(10)—— 信用卡+商城项目(模拟京东淘宝)

    本次项目相当于对python基础做总结,常用语法,数组类型,函数,文本操作等等 本项目在博客园里其他开发者也做过,我是稍作修改来的,大体没变的 项目需求: 信用卡+商城: A.信用卡(类似白条/花呗) ...

  8. C# Xamarin移动开发项目实战篇

    一.课程介绍 在前面阿笨的<C# Xamarin移动开发基础进修篇>课程中,大家已经熟悉和了解了Xamarin移动App开发的基础知识和原理.本次分享课<C# Xamarin移动开发 ...

  9. 洗礼灵魂,修炼python(73)--全栈项目实战篇(1)——【转载】前提准备之学习ubuntu

    本篇是为项目实战做准备,学习Linux是必备的,不然都不好意思叫全栈对吧?下面是一位资深大神写的文章,够详细,我也不用浪费时间再写了 原文链接:Ubuntu学习——第一篇 内容: 一. Ubuntu简 ...

随机推荐

  1. Redis学习二:Redis高并发之主从模式

    申明 本文章首发自本人公众号:壹枝花算不算浪漫,如若转载请标明来源! 感兴趣的小伙伴可关注个人公众号:壹枝花算不算浪漫 22.jpg 前言 前面已经学习了Redis的持久化方式,接下来开始学习Redi ...

  2. EFCore.Sharding(EFCore开源分表框架)

    EFCore.Sharding(EFCore开源分表框架) 简介 引言 开始 准备 配置 使用 按时间自动分表 性能测试 其它简单操作(非Sharing) 总结 简介 本框架旨在为EF Core提供S ...

  3. 数据类型、运算符、Scanner的使用

              一.常见的基本数据类型      数值型  byte(最小,2字节)      short(4字节) int (默认 8字节)    long(16字节)      浮点型   f ...

  4. Linux服务器压力测试总结(CPU、Memory、IO等)

    测试工具:sysbench.memtester.htop 1.htop安装使用 yum install ncurses-devel # 安装依赖包 tar zxvf htop-2.2.0.tar.gz ...

  5. [转+自]SSH工作原理

    SSH工作原理 熟悉Linux的人肯定都知道SSH.SSH是一种用于安全访问远程服务器的网络协议.它将客户端与服务端之间的消息通过加密保护起来,这样就无法被窃取或篡改了.那么它安全性是如何实现的呢? ...

  6. 理解RESTful API

    近日妹子向我求助RESTful API到底是个什么东西.原因是她们公司一个新启动的项目因为RESTful API起了争执.服务端同学坚持要用RESTful API,而前端同学则认为服务端用RESTfu ...

  7. 使用openmp进行并行编程

    预处理指令pragma 在系统中加入预处理器指令一般是用来允许不是基本c语言规范部分的行为.不支持pragma的编译器会忽略pragma指令提示的那些语句,这样就允许使用pragma的程序在不支持它们 ...

  8. /sbin/mount.vboxsf: mounting failed with the error: Protocol error

    公司换了新电脑,需要把之前的虚拟机的配置全部备份下来,在移动的过程中挂载共享文件夹时候出现了 /sbin/mount.vboxsf: mounting failed with the error: P ...

  9. php最快捷的插入数据,3000万仅需5秒

    <?phpheader('content-type:text/html;charset=utf-8');//采集数据$url="http://www.keepclub.com/club ...

  10. 2019-2020-1 20199325《Linux内核原理与分析》第十二周作业

    什么是ShellShock? Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开.许多互联网守护进程,如网页服务器 ...