ocelot

.Net Core微服务入门全纪录(七)——IdentityServer4-授权认证

只愿长相守 提交于 2020-08-04 22:19:00
前言 上一篇【 .Net Core微服务入门全纪录(六)——EventBus-事件总线 】中使用CAP完成了一个简单的Eventbus,实现了服务之间的解耦和异步调用,并且做到数据的最终一致性。这一篇将使用IdentityServer4来搭建一个鉴权中心,来完成授权认证相关的功能。 IdentityServer4官方文档: https://identityserver4.readthedocs.io/ 鉴权中心 创建ids4项目 关于IdentityServer4的基本介绍和模板安装可以看一下我的另一篇博客【 IdentityServer4 4.x版本 配置Scope的正确姿势 】,下面直接从创建项目开始。 来到我的项目目录下执行: dotnet new is4inmem --name IDS4.AuthCenter 执行完成后会生成以下文件: 用vs2019打开之前的解决方案,把刚刚创建的ids项目添加进来: 将此项目设为启动项,先运行看一下效果: 项目正常运行,下面需要结合我们的业务稍微修改一下默认代码。 鉴权中心配置 修改Startup的ConfigureServices方法: // in-memory, code config builder.AddInMemoryIdentityResources(Config.IdentityResources); builder

微服务之:从零搭建ocelot网关和consul集群

故事扮演 提交于 2020-08-04 11:20:07
介绍 微服务中有关键的几项技术,其中网关和服务服务发现,服务注册相辅相成。 首先解释几个本次教程中需要的术语 网关 Gateway(API GW / API 网关),顾名思义,是企业 IT 在系统边界上提供给外部访问内部接口服务的统一入口,简化了外部由于多服务协同完成任务时的繁琐配置。网关组件有Kong,ocelot, 服务发现 :通过网关访问内部各个微服务,网关要找到所需服务的过程称为服务发现 服务注册 :既然有服务发现,前提是要把所需服务提前“录入”,这个录入的过程称为服务注册。服务注册可配置文件(人肉方式不推荐),也可用服务注册组件如Consul或者Eureka等等(推荐) 搭建Consul集群(Windows) 官网下载Consul程序,https://www.consul.io/downloads.html 下载下来就是一个可执行文件Consul.exe Consul有两种代理模式,一种server,一种client,官方建议Server端达到3台以上才可高可用,但不要太多,太多会给集群间数据同步造成压力,client数量不限。 多个server端之间会选择出一个leader,当一个server的leader宕机则会从其他server端”投票“选择新的leader 实践 这里server我们用2台实验 192.168.74.55 192.168.74.54

使用Ocelot、IdentityServer4、Spring Cloud Eureka搭建微服务网关:Step by Step(二)

空扰寡人 提交于 2020-07-29 07:18:29
本文继续介绍使用Ocelot、IdentityServer4以及Spring Cloud Eureka搭建微服务网关的步骤。相关文章: 《 使用Ocelot、IdentityServer4、Spring Cloud Eureka搭建微服务网关:Step by Step(一) 》 Step 4:引入Ocelot API网关 新建一个ASP.NET Core API项目,添加对以下NuGet包的引用: Ocelot IdentityServer4 IdentityServer4.AccessTokenValidation Serilog(我使用了Serilog来输出格式化的日志,如果不使用Serilog,则不需要引用) 首先,修改Startup.cs文件,用来启用Ocelot,并指定身份认证机构为之前我们建好的IdentityServer服务: public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddAuthentication() .AddIdentityServerAuthentication("AuthProviderKey",

ASP.NET Core中Ocelot的使用:API网关的应用

杀马特。学长 韩版系。学妹 提交于 2020-07-28 07:51:58
在向微服务体系架构转型的过程中,我们都会毫不意外地遇到越来越多的现实问题,而这些问题却并不是因为功能性需求而引入的。比如,服务的注册与发现,是应用程序在云中部署、提供可伸缩支持的主要实现方案,在特定的微服务架构中,实践这样的云设计模式是利远远大于弊的。今我们需要讨论的API网关也是这样的一种微服务实现方案,它解决了客户端与服务端之间繁琐的通信问题。 在进一步讨论API网关在微服务架构中的应用前,先一起了解一下目前我手上的两个微服务:A服务提供了数学计算的API,B服务则提供了天气数据查询的API。两者看上去风马牛不相及,然而,B服务中的一个需求使得两者之间产生了密不可分的联系:B服务需要提供某些城市5年来平均气温的标准差,以便用户能够了解各个城市的气温变化情况。业务需求其实挺简单,从一个外部数据源将指定城市的平均气温数据读入,然后计算标准差即可,不过从实现上看,由于A服务已经提供了计算标准差的API,因此,B服务没有必要自己再写一套,只需要调用A服务提供的API即可,也就是A和B之间存在互相调用的情况。另一方面,对于用户来说,也存在需要同时调用A和B两组API的场景,因此,A和B的API也需要向外界曝露,这样一来应用程序的结构大致如下: 也就是上图中B服务的/weather/stddev API将会用到A服务中的/calc/stddev这个API。OK

.NET Core 玩一玩 Ocelot API网关

偶尔善良 提交于 2020-07-24 05:06:58
.net 这几年国内确实不好过。 很多都选择转行。不过.net Core跨平台 开源之后 。社区的生态在慢慢建立。往好的趋势发展。 对于坚守在.NET战线的开发者来说 是个挺不错的消息。 特别是微软收购75亿美金GitHub。.net 生态 社区圈子。肯定会有所上升。 发展趋势越来越好。(当然 这只是我个人祈愿) 最近也比较懒。也有段时间没有写过文章了。 但对于追寻新技术渴望学习 是不会断的 最近微服务比较火热。 将以个大型项目根据业务可以拆分成一个个的较小的独立项目。便于管理 且互相协作 什么是Ocelot Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成 但是现在网上关于Ocelot的文章还是有限。 首先感谢几位大佬 Ocelot的文章 https://www.cnblogs.com/shanyou/p/7787183.html (张友善 大神) https://www.cnblogs.com/Leo_wl/p/7852311.html ( HackerVirus 大神) https://www.cnblogs.com/jesse2013/p/net-core

How set up Ocelot Api Gateway with Azure Active Directory

孤街浪徒 提交于 2020-05-12 05:31:37
问题 I followed this tutorial and managed to use api with Azure Active Directory authentication & authorization. However I would like to consume the api from behind the Ocelot Api Gateway. I could use ocelot with custom basic authorization but could not accomplish to use with Azure Active Directory. I have added Ocelot api gateway url to my api redirect url list already. How should I set ReRoutes values in config.json and Ocelot Api Gateway project StartUp.cs ? Any help will be appreciated. 回答1:

How set up Ocelot Api Gateway with Azure Active Directory

 ̄綄美尐妖づ 提交于 2020-05-12 05:30:04
问题 I followed this tutorial and managed to use api with Azure Active Directory authentication & authorization. However I would like to consume the api from behind the Ocelot Api Gateway. I could use ocelot with custom basic authorization but could not accomplish to use with Azure Active Directory. I have added Ocelot api gateway url to my api redirect url list already. How should I set ReRoutes values in config.json and Ocelot Api Gateway project StartUp.cs ? Any help will be appreciated. 回答1:

.NET Core跨平台微服务学习资源

独自空忆成欢 提交于 2020-04-09 20:05:38
原文: .NET Core跨平台微服务学习资源 一、Asp.net Core基础 微软英文官网:https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-2.1 .NET Core:http://www.dot.net 微软中文官网:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/?view=aspnetcore-2.1&tabs=windows GitHub:https://github.com/aspnet 用ASP.NET内核和Azure构建现代Web应用程序:https://docs.microsoft.com/en-us/dotnet/standard/modern-web-apps-azure-architecture/ 博客园翻译文档:https://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-index.html MSDN:https://blogs.msdn.microsoft.com/ .NET Core开源峰会:https://github.com/dncto/dnc https://dotnet.github.io/ Artech:https://dotnet.github.io

.Net微服务实践(一):微服务框架选型

我与影子孤独终老i 提交于 2020-04-09 18:53:22
目录 微服务框架 SpringCloud SpringCloud技术栈 SpringCloud核心组件 核心组件工作原理 微服务架构组件 最后 微服务框架 微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 以往我们开发应用程序都是单体型,虽然开发和部署比较方便,但后期随着业务的不断增加,开发迭代和性能瓶颈等问题,将会困扰开发团队,微服务就是解决此问题的有效手段。 那么我们在具体实践落地微服务时,我们又需要做什么?一个微服务框架到底又有什么呢?特别是对于.NET生态圈的小伙伴们,一直都有很多困惑,不知该如何下手。 既然我们不知道,又要高清楚,那最好的办法是什么呢?我认为最有效的方式是 研究成熟的产品 。市面上成熟的微服务框架有一些, 而SpringCloud就是可供研究的对象,下面我们一起来看看SpringCloud是什么? SpringCloud SpringCloud技术栈 从上面的技术栈图中可以看出: 微服务框架核心是 服务治理 服务治理的核心组件包括 网关 、 服务注册与发现 、 服务调用 SpringCloud核心组件 组件 选型 备注 网关 Zuul 服务注册与发现

.Net微服务实践(一):微服务框架选型

时光怂恿深爱的人放手 提交于 2020-04-09 18:11:22
目录 微服务框架 SpringCloud SpringCloud技术栈 SpringCloud核心组件 核心组件工作原理 微服务架构组件 最后 微服务框架 微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 以往我们开发应用程序都是单体型,虽然开发和部署比较方便,但后期随着业务的不断增加,开发迭代和性能瓶颈等问题,将会困扰开发团队,微服务就是解决此问题的有效手段。 那么我们在具体实践落地微服务时,我们又需要做什么?一个微服务框架到底又有什么呢?特别是对于.NET生态圈的小伙伴们,一直都有很多困惑,不知该如何下手。 既然我们不知道,又要高清楚,那最好的办法是什么呢?我认为最有效的方式是 研究成熟的产品 。市面上成熟的微服务框架有一些, 而SpringCloud就是可供研究的对象,下面我们一起来看看SpringCloud是什么? SpringCloud SpringCloud技术栈 从上面的技术栈图中可以看出: 微服务框架核心是 服务治理 服务治理的核心组件包括 网关 、 服务注册与发现 、 服务调用 SpringCloud核心组件 组件 选型 备注 网关 Zuul 服务注册与发现