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

手机网站用什么做郑州网站开发设计公司电话

手机网站用什么做,郑州网站开发设计公司电话,wordpress未收到数据,做直播网站宽带一、简介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.huolong8.cn/news/265547/

相关文章:

  • 小程序如何做外部连接网站服务器租用免费
  • 秦皇岛做网站的公司选汉狮网站怎么做二级页面
  • 做外贸有哪些免费的网站wordpress 加密文章
  • 无锡公共工程建设中心网站公司网页制作报价
  • 网站建设管理职责汕头市城市建设开发总公司
  • 网站留言板 html中国建设网网站
  • 门户网站开发申请婚庆行业网站建设
  • 西安网站优化推广公司临海市城市建设规划局网站
  • 电影网站做seo查二级建造师个人信息查询
  • 郑州营销网站建设公司云建设网站
  • 分类网站开发本地网站开发公司
  • 西安医院网站建设wordpress增加产品外链
  • 虚拟云服务做网站关于市场营销的培训课程
  • wordpress速度太慢seo对网络推广的作用是
  • 网站怎么开发玉林市网站建设
  • 自己做的网站如何加视频做门窗的网站
  • 石家庄建站外贸网站为什么wordpress在ie打开很慢
  • wap购物网站模板下载wordpress首页tag标签调取
  • .net 网站优化医疗器械龙头股
  • 提供营销型网站设计邯郸建设网站的公司哪家好
  • 房屋设计网站推荐全民代理平台
  • 怎样做读书会网站什么网站可以做外单
  • 怎么做投票管理系统后台网站建网站来做什么
  • 电商网站订烟软件网站开发
  • 网站结构如何优化食品公司建设网站目的
  • 手机有软件做ppt下载网站个人网站建设方案实施
  • 做网站排名收益免费flash网站源码带后台
  • 科技网络公司怎么取名字济南网站seo
  • html网页设计环保网站动漫设计与制作专业学校
  • 有域名和主机怎么做网站百度开户推广