当前位置: 首页 > news >正文

自己做应用的网站贵阳软件开发公司排名

自己做应用的网站,贵阳软件开发公司排名,做网站公司常熟,开一个素材设计网站怎么做.NET网关与Gateway实战-Envoy与kong课程什么是OAuth2认证简单说#xff0c;OAuth 就是一种授权机制。数据的所有者告诉系统#xff0c;同意授权第三方应用进入系统#xff0c;获取这些数据。系统从而产生一个短期的进入令牌#xff08;token#xff09;#xff0c;用来代… .NET网关与Gateway实战-Envoy与kong课程什么是OAuth2认证简单说OAuth 就是一种授权机制。数据的所有者告诉系统同意授权第三方应用进入系统获取这些数据。系统从而产生一个短期的进入令牌token用来代替密码供第三方应用使用。而IdentityServer4就是一个开源的OAuth2认证系统。网关与IdentityServer4集成之后我们可以避免为内部的每个微服务集成IdentityServer4可以避免很多重复的工作而这也是网关的一个重要优势。新建IdentityServer4服务1新增WebApi并引用Nuget包IdentityServer42.新增校验证书其中的证书文件通过openssl创建     2.1安装生成证书程序:https://slproweb.com/products/Win32OpenSSL.html对应操作系统     2.2找到openssl安装位置生成证书Country Name (2 letter code) [AU]:跳过所有步骤openssl req -newkey rsa:2048 -nodes -keyout chester.key -x509 -days 365 -out chester.ceropenssl pkcs12 -export -in chester.cer -inkey chester.key -out chester.pfx3.新增配置信息public class Config{public static IEnumerableApiResource GetApiResources(){return new ListApiResource{new ApiResource(api1, 我的第一个API){UserClaims {JwtClaimTypes.Audience},Scopes new Liststring{api},}};}public static IEnumerableClient GetClients(){return new ListClient{new Client{ClientIdclient,//定义客户端IDClientSecrets{new Secret(secret.Sha256())//定义客户端秘钥},AllowedGrantTypes GrantTypes.ResourceOwnerPassword,//授权方式为用户密码模式授权类型可参考GrantTypes枚举AllowedScopes{ api }//允许客户端访问的范围}};}public static IEnumerableApiScope ApiScopes new ApiScope[] { new ApiScope(api) };public static IEnumerableIdentityResource GetIdentityResources(){return new IdentityResource[]{new IdentityResources.OpenId()};}}4.注入IdentityServer4public void ConfigureServices(IServiceCollection services){services.AddIdentityServer()//注册服务//.AddDeveloperSigningCredential().AddSigningCredential(new X509Certificate2(chester.pfx,123456) ).AddInMemoryApiResources(Config.GetApiResources())//配置类定义的授权范围.AddInMemoryClients(Config.GetClients())//配置类定义的授权客户端.AddInMemoryApiScopes(Config.ApiScopes).AddTestUsers(new ListTestUser { new TestUser { Username Admin, Password 123456, SubjectId 001, IsActive true } });//模拟测试用户这里偷懒了用户可以单独管理最好不要直接在这里Newservices.AddControllers();}5.开启IdentityServer4中间件app.UseIdentityServer();//添加中间件6.然后启动IdentityServer4服务配置Envoy我们需要用到Envoy的envoy.filters.http.jwt_authn需要注意的有以下几点Envoy的过滤器加载是自上而下的因此我们需要将此过滤器放到envoy.filters.http.router前另外我们需要在配置文件中配置jwt的jwks地址/.well-known/openid-configuration/jwksjwks是JSON Web密钥集—一种用于共享公钥的JSON表示法用于验证JWT签名并且我们需要配置ids4服务的cluster。具体配置如下需要注意的地方已标红admin:address:socket_address:protocol: TCPaddress: 0.0.0.0port_value: 9902 static_resources:listeners:- name: listener_0address:socket_address:protocol: TCPaddress: 0.0.0.0port_value: 10000filter_chains:- filters:- name: envoy.filters.network.http_connection_managertyped_config:type: type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManagerscheme_header_transformation:scheme_to_overwrite: httpstat_prefix: ingress_httproute_config:name: local_routevirtual_hosts:- name: local_servicedomains: [*]routes:- match:prefix: /route:host_rewrite_literal: 192.168.43.94cluster: service_envoyproxy_iohttp_filters:- name: envoy.filters.http.jwt_authntyped_config:type: type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthenticationproviders:jwt_provider:issuer: http://192.168.43.94:7000audiences:- api1forward: trueremote_jwks:http_uri:uri: http://192.168.43.94:7000/.well-known/openid-configuration/jwkscluster: jwtservertimeout: 5srules:- match:prefix: /requires:provider_name: jwt_provider- name: envoy.filters.http.routerclusters:- name: jwtserverconnect_timeout: 0.25stype: STRICT_DNSlb_policy: ROUND_ROBINload_assignment:cluster_name: jwtserverendpoints:- lb_endpoints:- endpoint:address:socket_address:address: 192.168.43.94port_value: 7000- name: service_envoyproxy_ioconnect_timeout: 30stype: strict_dns# Comment out the following line to test on v6 networksdns_lookup_family: V4_ONLYlb_policy: ROUND_ROBINload_assignment:cluster_name: service_envoyproxy_ioendpoints:- lb_endpoints:- endpoint:address:socket_address:address: 192.168.43.94port_value: 5000启动envoydocker run --rm -it -p 9902:9902 -p 10000:10000 -v D:/gateway/envoy/config/static/:/etc/envoy/ -v D:/gateway/envoy/logs:/logs envoyproxy/envoy-dev  -c /etc/envoy/envoy-jwt.yaml验证jwt我们直接访问http://192.168.43.94:10000/Name不携带token可以看到请求被拒绝返回401 下面我们调用ids4的/connect/token接口获取token将获取到的token放到Name接口的Header里再次调用成功至此我们通过EnvoyIdentityServer4实现了网关的JWT认证可以节省内部微服务与IdentityServer4重复的集成工作实现了统一处理认证逻辑。
http://www.pierceye.com/news/102705/

相关文章:

  • 深圳市企业网站建设企业品牌设计
  • 做图网站有哪些内容惠州抖音推广
  • 郑州中原区建设局网站公司网站建设素材
  • 企业手机网站源码下载企查查网页版
  • 金科网站建设ps做网站难吗
  • 如何在年报网站上做遗失公告wordpress默认摘要
  • 中国网站服务器哪个好有哪些做公司网站
  • 做宠物的网站有哪些如何做电商生意
  • 具有品牌的常州做网站关于网站建设的广告词
  • 孝感网站推广品牌策划公司都有哪些
  • 保洁公司用哪些网站做推广wordpress aj提交评论
  • 互联网金融p2p网站建设模板简历模板免费下载网站
  • 绍兴建设网站制作3免费做网站
  • 东莞运营推广网站建设费用wordpress 单栏 主题
  • 律师事务所网站制作WordPress 经典博客
  • 建立网站功能wordpress微博头条
  • 多就能自己做网站取名网站怎么做
  • 网站域名百度云网站环境建设国家城乡建设规划部网站
  • 网站设计的实例wordpress 微博备份
  • 网络推销黑河网站seo
  • 天津市建设工程管理总队网站wordpress 自媒体模版
  • 用网站做宣传的方案郴州买房网站
  • 微信网站前景wordpress 主题开发教程
  • 基于php旅游网站的毕业设计太原网站建设主页
  • 硅谷网站开发薪酬网站建设 数据可视化
  • 绍兴网站建设设计制作高端的网站开发公司
  • 网站建设包括内容南阳网站建设价格
  • 天津平台网站建设哪里好深圳网络营销推广专员
  • 手机网站建设哪家好嘉定房地产网站建设
  • 酒店网站建设需求分析wordpress 文档模板