日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一日一技:Ocelot网关使用IdentityServer4认证

發布時間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一日一技:Ocelot网关使用IdentityServer4认证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

Ocelot是一個用.NET Core實現的開源API網關技術。IdentityServer4是一個基于OpenID Connect和OAuth2.0的針對ASP.NET Core的框架,以中間件的形式存在。OAuth是一種授權機制。系統產生一個短期的token,用來代替密碼,供第三方應用使用。

下面來看下如何實現Ocelot基于IdentityServer4統一認證。

主要代碼實現

1、新建認證項目,nuget安裝id4

2、appsettings.json?配置

{"Logging": {"LogLevel": {"Default": "Warning"}},"SSOConfig": {"ApiResources": [{"Name": "testapi","DisplayName": "testapiname"}],"Clients": [{"ClientId": "a","ClientSecrets": [ "aa" ],"AllowedGrantTypes": "ClientCredentials","AllowedScopes": [ "testapi" ]}]},"AllowedHosts": "*" } public static IEnumerable<ApiResource> GetApiResources(IConfigurationSection p){List<ApiResource> resource = new List<ApiResource>();if (p != null){List<ApiConfig> configs = new List<ApiConfig>();p.Bind("ApiResources", configs);foreach (var config in configs){resource.Add(new ApiResource(config.Name, config.DisplayName));}}return resource.ToArray();}/// <summary>/// 定義受信任的客戶端 Client/// </summary>/// <returns></returns>public static IEnumerable<Client> GetClients(IConfigurationSection p){List<Client> clients = new List<Client>();if (p != null){List<ClientConfig> configs = new List<ClientConfig>();p.Bind("Clients", configs);foreach (var config in configs){Client client = new Client();client.ClientId = config.ClientId;List<Secret> clientSecrets = new List<Secret>();foreach (var secret in config.ClientSecrets){clientSecrets.Add(new Secret(secret.Sha256()));}client.ClientSecrets = clientSecrets.ToArray();GrantTypes grantTypes = new GrantTypes();var allowedGrantTypes = grantTypes.GetType().GetProperty(config.AllowedGrantTypes);client.AllowedGrantTypes = allowedGrantTypes == null ?GrantTypes.ClientCredentials : (ICollection<string>)allowedGrantTypes.GetValue(grantTypes, null);client.AllowedScopes = config.AllowedScopes.ToArray();clients.Add(client);}}return clients.ToArray();}

3、Startup?配置

public void ConfigureServices(IServiceCollection services){var p = Configuration.GetSection("SSOConfig");services.AddIdentityServer().AddDeveloperSigningCredential().AddInMemoryApiResources(SSOConfig.GetApiResources(p)).AddInMemoryClients(SSOConfig.GetClients(p));services.AddControllers().SetCompatibilityVersion(CompatibilityVersion.Latest);}// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseRouting();// app.UseAuthorization();app.UseIdentityServer();app.UseEndpoints(endpoints =>{endpoints.MapControllers();});}

4、網關項目配置

<ItemGroup><PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.1" /><PackageReference Include="Ocelot" Version="14.0.3" /></ItemGroup> {"DownstreamPathTemplate": "/connect/token","DownstreamScheme": "http","DownstreamHostAndPorts": [{"Host": "localhost","Port": 5002}],"UpstreamPathTemplate": "/token","UpstreamHttpMethod": [ "Post" ],"Priority": 2}, var identityBuilder = services.AddAuthentication();IdentityServerConfig identityServerConfig = new IdentityServerConfig();Configuration.Bind("IdentityServerConfig", identityServerConfig);if (identityServerConfig != null && identityServerConfig.Resources != null){foreach (var resource in identityServerConfig.Resources){identityBuilder.AddIdentityServerAuthentication(resource.Key, options =>{options.Authority = $"http://{identityServerConfig.IP}:{identityServerConfig.Port}";options.RequireHttpsMetadata = false;options.ApiName = resource.Name;options.SupportedTokens = SupportedTokens.Both;});}}// services.AddControllers();services.AddOcelot(Configuration);

測試

1、沒有添加token訪問,返回401

2、獲取訪問的token

3、帶上token訪問接口

總結

以上是生活随笔為你收集整理的一日一技:Ocelot网关使用IdentityServer4认证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧洲成人在线视频 | 成人av色| 夜色在线影院 | 欧美一区二区三区视频在线 | 国产12页 | 偷拍超碰 | 国产四区视频 | 午夜国产| 亚洲四虎影院 | a级片免费视频 | 久久婷婷av | 亚洲图片另类小说 | 深夜激情网站 | 亚洲视频 中文字幕 | 综合成人在线 | 麻豆视频免费网站 | 想要视频在线观看 | 黄色污污视频网站 | 国产一区二区小说 | 精品成人无码一区二区三区 | 国产日韩欧美综合 | 亚洲人人人 | 大陆一级黄色片 | 久久少妇av | 射射射综合网 | 日本男男激情gay办公室 | h视频在线观看网站 | 国产特级视频 | 国产精品主播在线 | 欧美性猛交99久久久久99按摩 | 在线观看免费视频一区二区 | 日韩午夜伦 | 免费视频福利 | 玖色视频| 成年人激情视频 | 无码国模国产在线观看 | 懂色a v | 欧美日韩在线免费观看视频 | 日本裸体xx少妇18在线 | 亚洲石原莉奈一区二区在线观看 | 亚洲图片视频小说 | 国产日韩亚洲 | 国产三级伦理片 | 欧美日韩国产亚洲一区 | 超碰在线一区 | 色狠狠一区二区 | 亚洲国产成人av | 午夜三级在线观看 | 思思99精品视频在线观看 | 亚洲一区在线电影 | 日本少妇做爰全过程毛片 | 黑人vs亚洲人在线播放 | 成人教育av | av色欲无码人妻中文字幕 | av第一福利大全导航 | 色桃视频| 91尤物视频在线观看 | av天天堂| 中文字幕理伦片免费看 | 国产在线无码精品 | 国产精品人八做人人女人a级刘 | 日韩精品福利视频 | 成人免费毛片网 | 伊人久久艹 | 最新av观看| 亚洲经典久久 | 国产一区二区在线免费观看视频 | 色视频免费看 | 精品国产综合区久久久久久 | 波多野结衣黄色网址 | 樱花草涩涩www在线播放 | 国产精品xxx在线观看 | 麻豆91茄子在线观看 | 国产对白羞辱绿帽vk | 国产精品久久久久久免费免熟 | 丁香婷婷久久 | 免费日韩在线视频 | 免费色片 | 97久久国产亚洲精品超碰热 | 欧美视频日韩视频 | 亚洲欧美激情另类校园 | 国产精品23p | 一级坐爱片 | 精品在线二区 | av青青 | 欧美性爱视频久久 | 韩日黄色片 | 成人午夜免费福利视频 | 完全免费在线视频 | 香蕉茄子视频 | 免费不卡av | 色碰视频 | 亚洲欧美v | 91免费高清在线观看 | 国产网站大全 | 黄色小说网站在线观看 | 五月天黄色网 | 暴力调教一区二区三区 | 一级黄色片免费看 |