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

山东省个人网站备案证券公司客户经理怎么拉客户

山东省个人网站备案,证券公司客户经理怎么拉客户,石家庄做商城网站的公司,开封搜索引擎优化一、简介IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架。将IdentityServer4部署到您的应用中具备如下特点#xff1a;1#xff09;、认证服务2#xff09;、单点登陆3#xff09;、API访问控制4#xff09;、联合网关5#xff09;、专注于定制6  1、认证服务  2、单点登陆  3、API访问控制  4、联合网关  5、专注于定制  6、成熟的开源系统  7、免费和商业支持二、整体部署   目前大多数的应用程序或多或少看起来是上图所示这样的最常见的交互场景有浏览器与Web应用程序、Web应用程序与WebApi通讯、本地应用程序狱WebApi通讯、基于浏览器的应用程序与WebApi 通讯、基本服务器的应用程序与WebApi通讯、WebApi与WebApi通讯  前端、中间层、后端各个层级为了保护资源经常要针对相同的用户仓储区实现身份认证和授权但是如果我们把这些基本的安全功能统一颁发给一个安全令牌服务就可以不必再让这些应用和端点之间重复实现这些基础安全功能重组应用程序以支持安全令牌服务将会引导出以下体系结构和协议   这样的设计将会把安全问题分为两个部分身份验证和API访问三、IdentityServer4如何提供帮助  IdentityServer是将规范兼容的OpenID Connect和OAuth 2.0端点添加到任意ASP.NET Core应用程序的中间件。通常您构建或重新使用包含登录和注销页面的应用程序IdentityServer中间件会向其添加必要的协议头以便客户端应用程序可以与其对话 使用这些标准协议。 四、术语      1、Users用户用户是使用已注册的客户端访问资源的人     2、Clients客户端客户端就是从identityserver请求令牌的软件你可以理解为一个app即可既可以通过身份认证令牌来验证识别用户身份又可以通过授权令牌来访问服务端的资源。但是客户端首先必须在申请令牌前已经在identityserver服务中注册过。实际客户端不仅可以是Web应用程序app或桌面应用程序你就理解为pc端的软件即可SPA服务器进程等  3)、Resources资源  资源就是你想用identityserver保护的东东可以是用户的身份数据或者api资源。  用户的身份信息实际由一组claim组成例如姓名或者邮件都会包含在身份信息中将来通过identityserver校验后都会返回给被调用的客户端。  API资源就是客户端想要调用的功能通常以json或xml的格式返回给客户端例如webapiwcf,webservice通常通过webapi来建立模型但是不一定是webapi我刚才已经强调可以使其他类型的格式这个要看具体的使用场景了。  4、Identity Token身份令牌  一个身份令牌指的就是对认证过程的描述。它至少要标识某个用户Called the sub aka subject claim的主身份信息和该用户的认证时间和认证方式。但是身份令牌可以包含额外的身份数据具体开发者可以自行设定但是一般情况为了确保数据传输的效率开发者一般不做过多额外的设置大家也可以根据使用场景自行决定。  5、Access Token访问令牌   访问令牌允许客户端访问某个 API 资源。客户端请求到访问令牌然后使用这个令牌来访问 API资源。访问令牌包含了客户端和用户如果有的话这取决于业务是否需要但通常不必要的相关信息API通过这些令牌信息来授予客户端的数据访问权限。五、代码快速入门 (使用客户端凭据保护)  1、IdentityServer     a)、定义Api资源和客户端      Api 是您系统中要保护的资源资源的定义可以通过多种方式      客户端代码中的ClientId和ClientSecret你可以视为应用程序本身的登录名和密码它将您的应用程序标识到IdentityServer 服务器以便它知道哪个应用程序正在尝试与其连接using IdentityServer4.Models; using System.Collections.Generic; namespace IdentityServer { public static class Config { public static IEnumerableApiResource Apis new ListApiResource { new ApiResource(api1,My API) }; public static IEnumerableClient Clients new ListClient { new Client { ClientIdclient, AllowedGrantTypes GrantTypes.ClientCredentials, ClientSecrets{ new Secret(aju.Sha256()) }, AllowedScopes{ api1} } }; } }        b)、配置IdentityServerusing Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; namespace IdentityServer { public class Startup { // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID398940 public void ConfigureServices(IServiceCollection services) { var builder services.AddIdentityServer() .AddInMemoryApiResources(Config.Apis) .AddInMemoryClients(Config.Clients); builder.AddDeveloperSigningCredential(); } // 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.UseIdentityServer(); //app.UseRouting(); //app.UseEndpoints(endpoints //{ // endpoints.MapGet(/, async context // { // await context.Response.WriteAsync(Hello World!); // }); //}); } } }        c)、测试如果配置合适在浏览器访问 http://localhost:5000/.well-known/openid-configuration  出现如下表示配置OK首次启动时IdentityServer将为您创建一个开发人员签名密钥该文件名为tempkey.rsa。您无需将该文件签入源代码管理中如果不存在该文件将被重新创建。    d)、所需的包  2、添加Api资源      a)、添加一个名为IdentityController的控制器using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Linq; namespace Api.Controllers { [Route(identity)] [Authorize] public class IdentityController : ControllerBase { public IActionResult Get() { return new JsonResult(from c in User.Claims select new { c.Type, c.Value }); } } }        b)、配置将身份认证服务添加到DI并将身份验证中间件添加到管道    using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; namespace Api { 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) { services.AddControllers(); services.AddAuthentication(Bearer).AddJwtBearer(Bearer, options { options.Authority http://localhost:5000; options.RequireHttpsMetadata false; options.Audience api1; }); } // 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.UseAuthentication();//认证 app.UseAuthorization();//授权 app.UseEndpoints(endpoints { endpoints.MapControllers(); }); } } }        AddAuthentication将身份认证服务添加到DI比配置Bearer为默认   AddAuthentication将身份认证服务添加到管道中以便对主机的每次调用都将自动执行身份验证   AddAuthentication添加授权中间件以确保匿名客户端无法访问我们的API资源   http://localhost:5001/identity 在浏览器上访问应返回401状态代码。这意味着您的API需要凭据并且现在受IdentityServer保护。          c)、所需的包3、创建客户端已控制台的形式using IdentityModel.Client; using Newtonsoft.Json.Linq; using System; using System.Net.Http; using System.Threading.Tasks; namespace Client { class Program { static async Task Main(string[] args) { // Console.WriteLine(Hello World!); var client new HttpClient(); var disco await client.GetDiscoveryDocumentAsync(http://localhost:5000); if (disco.IsError) { Console.WriteLine(disco.Error); return; } var tokenResponse await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address disco.TokenEndpoint, ClientId client, ClientSecret aju, Scope api1 }); if (tokenResponse.IsError) { Console.WriteLine(tokenResponse.Error); return; } Console.WriteLine(tokenResponse.Json); Console.WriteLine(\n\n); //call api var apiClient new HttpClient(); apiClient.SetBearerToken(tokenResponse.AccessToken); var response await apiClient.GetAsync(http://localhost:5001/identity); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content await response.Content.ReadAsStringAsync(); Console.WriteLine(JArray.Parse(content)); } Console.ReadLine(); } } }        a)、所需的包   4、使用客户端访问Api资源  六、参考文献  http://docs.identityserver.io/en/latest/index.html扫码关注您将得到及时的文章推送信息
http://www.zqtcl.cn/news/741535/

相关文章:

  • 婚介网站方案小说网站架构
  • 英文在线购物网站建设湖北建设厅举报网站
  • 漯河网络推广哪家好宁波网站seo公司
  • 网站设计ppt案例做物流用哪个网站好
  • 做网站官网需多少钱天元建设集团有限公司财务分析
  • 一般网站建设用什么语言网络规划设计师历年考点
  • 做网站卖菜刀需要什么手续江苏网站优化
  • 花生壳内网穿透网站如何做seo优化鞍山58同城网
  • 怎么为一个网站做外链跨境电商app
  • 医疗网站不备案seo技巧课程
  • 网页和网站有什么区别湖南省郴州市邮编
  • 公考在哪个网站上做试题武威做网站的公司
  • 河南如何做网站常州网站建设价位
  • 昆山网站建设培训班成都百度
  • 兰山网站建设郑州最好的网站建设
  • 手机网站后台源码枣庄市建设局网站
  • 网站建设傲鸿wordpress 获取分类下的文章
  • 网站运行速度优化wordpress国内优化
  • wordpress全站网易云音乐播放网站建设案例公司
  • 湘潭网站建设多少钱 报价表湘潭磐石网络北京百度seo点击器
  • 什么做的网站电子商务网站的建设的原理
  • 河北建站科技网络公司媒体平台
  • 做同城信息类网站如何赚钱石景山网站建设多少钱
  • 用ip的网站要备案吗网站的建设维护及管理制度
  • dedecms 百度网站地图南宁比优建站
  • 沈阳大熊网站建设制作怎么增加网站的权重
  • 网站建设 价格低建设网站大约多少钱
  • 好看简单易做的网站北京网站建设华网天下定制
  • 黑群晖做网站云主机搭建网站
  • 网站首页默认的文件名一般为微信app网站建设