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

网站建站建设首选上海黔文信息科技有限公司2wordpress 数据 清理

网站建站建设首选上海黔文信息科技有限公司2,wordpress 数据 清理,成都建设银行分行招聘网站,动漫制作专业前景前言SSO的系列还是以.Net Core作为实践例子与大家分享#xff0c;SSO在Web方面复杂度分同域与跨域。本篇先分享同域的设计与实现#xff0c;跨域将在下篇与大家分享。如有需要调试demo的#xff0c;可把SSO项目部署为域名http://sso.cg.com/#xff0c;Web1项目部署为http:… 前言SSO的系列还是以.Net Core作为实践例子与大家分享SSO在Web方面复杂度分同域与跨域。本篇先分享同域的设计与实现跨域将在下篇与大家分享。如有需要调试demo的可把SSO项目部署为域名http://sso.cg.com/Web1项目部署为http://web1.cg.com,http://web2.cg.com可以减少配置修改量源码地址https://github.com/SkyChenSky/Core.SSO效果图SSO简介单点登录全称为Single Sign On在多个应用系统中用户只需要登录一次就可以访问所有相互信任的应用系统。它是一个解决方案目的是为了整合企业内多个应用系统仅由一组账号只需进行一次登录就可被授权访问多个应用系统。流程描述未登录状态访问业务Web应用会引导到认证中心。用户在认证中心输入账号信息通过登录后认证中心会根据用户信息生成一个具有安全性的token将以任何方式持久化在浏览器。此后访问其他Web应用的时候必须携带此token进行访问业务Web应用会通过本地认证或者转发认证而对token进行校验。从上图可以简单的分析出三个关键点Token的生成Token的共享Token校验Token的生成方式有多种可以通过Web框架对用户信息加密成Token。Token编码方式也可以为JSON WEB TOKENJWT也可以是一段MD5通过字典匹配保存在服务器用户信息与MD5值Token的共享浏览器存储有三种方式Cookie容量4KB限制过期时间localStorage容量5MB限制生命周期永久sessionStorage容量5MB限制生命周期当前会话关闭浏览器则失效无法与服务端交互作为拥有会失效的会话状态更因选择Cookie存储。那么Cookie的使用是可以在同域共享的因此在实现SSO的时候复杂度又分为同域与跨域。同域的共享比较简单在应用设置Cookie的Domain属性进行设置就可以完美的解决。Token校验校验分两种情况转发给认证中心认证 由谁授权就由谁进行身份认证。授权与认证是成对的。如果是以Cookie认证那就是服务端对token进行解密。如果是服务端保存用户信息则匹配token值。业务应用自身认证 不需要转发那就意味着业务应用认证规则与认证中心的认证规则必须是一致的。设计要点原则上来讲只要统一Token的产生和校验方式无论授权与认证的在哪认证系统或业务系统也无论用户信息存储在哪浏览器、服务器其实都可以实现单点登录的效果。此次使用.NET Core MVC框架以Cookie认证通过业务应用自身认证的方式进行同父域的SSO实现。为什么要使用Cookie认证方式?1.会话状态分布在客户浏览器避免大量用户同时在线对服务端内存容量的压力。2.横向扩展良好性可按需增减节点。统一应用授权认证将以Core的Cookie认证进行实现那么意味着每个应用对用户信息的加解密方式需要一致。因此对AddCookie的设置属性DataProtectionProvider或者TicketDataFormat的加密方式进行重写实现。.NET Core的SSO实现Cookie认证认证中心AddCookie的设置业务应用AddCookie的设置基于设计要点的“统一应用授权认证”这一点两者的区别不大ticket的加密方式统一使用了AES都指定Cookie.Domain  .cg.com保证了Cookie同域共享设置了HttpOnly避免XSS攻击。两者区别在于options.Events.OnRedirectToLogin BuildRedirectToLogin; options.Events.OnSigningOut BuildSigningOut;这是为了让业务应用引导跳转到认证中心登录页面。OnRedirectToLogin是认证失败跳转。OnSigningOut是注销跳转。登录注销认证中心与业务应用两者的登录注册基本一致。HttpContext.SignInAsync的原理使用的是Cookie认证那么就是通过Microsoft.AspNetCore.Authentication.Cookies库的CookieAuthenticationHandler类的HandleSignInAsync方法进行处理的。源码地址https://github.com/aspnet/Security/blob/master/src/Microsoft.AspNetCore.Authentication.Cookies/CookieAuthenticationHandler.cs从源码我们可以分析出流程根据ClaimsPrincipal的用户信息序列化后通过加密方式进行加密获得ticket。默认加密方式是的KeyRingBasedDataProtecto。源码地址https://github.com/aspnet/DataProtection再通过之前的初始化好的CookieOption再AppendResponseCookie方法进行设置Cookie最后通过Events.RedirectToReturnUrl进行重定向到ReturnUrl。Ticket加密两种设置方式CookieAuthenticationOptions.DataProtectionProviderCookieAuthenticationOptions.TicketDataFormatDataProtectionProvider如果做了集群可以设置到共享文件夹在第一个启动的应用则会创建如下图的文件options.DataProtectionProvider DataProtectionProvider.Create(new DirectoryInfo(D:\sso\key));TicketDataFormat重写数据加密方式本次demo使用了是AES.options.TicketDataFormat new TicketDataFormat(new AesDataProtector()); 结尾以上为.NET Core MVC的同域SSO实现思路与细节 。因编写demo的原因代码复用率并不好冗余代码比较多大家可以根据情况进行抽离封装。下篇会继续分享跨域SSO的实现。如果对本篇有任何建议与疑问可以在下方评论反馈给我。原文地址https://www.cnblogs.com/skychen1218/p/9773466.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.yutouwan.com/news/480650/

相关文章:

  • 宝钢工程建设有限公司网站亚马逊站外推广网站
  • 做网站开发要装什么软件广东美食网页怎么制作
  • 苏州吴中网站建设公司百度收录网站之后又怎么做
  • 中国建设网官方网站下载e路下载中国移动商旅100最新版本
  • 深圳石岩做网站西安看个号网络科技有限公司
  • 织梦调用网站类型本科自考难吗
  • 建设银行手机外汇网站wordpress truepixel
  • 如何访问未备案的网站扶风网站开发
  • 苏州做网站建设有口碑的镇江网站优化
  • 温州市鹿城区建设小学网站工业产品设计软件
  • 济南网站建设凡科网络购物商城网站建设
  • 东莞优秀网站建设金融商城快捷申请网站模板下载
  • 营销型企业网站优点在线制作头像图片生成器
  • 现在网站建设用什么语言公司创建一个网站需要多少钱
  • 大良网站智能推广机构网站建设需要确定的问题
  • 可以做砍价链接的网站电脑培训班价目表
  • 网站 数据库办公室装修设计怎么设计
  • 公司做网站的费用怎么入账wordpress首页不显示指定分类
  • 网站专题二级页怎么做杭州百度推广公司有几家
  • 电子网站开发东营建设网
  • 浙江建设职业技术学院oa网站互联网舆情监测中心待遇
  • 咸宁住房和城乡规划建设局网站免费做链接的网站吗
  • 自己开个网站全国认可企业信息查询平台
  • 厦门网站建设中心网站建设用宝塔
  • 网站建设宗旨是指设计良好的网站一般需要怎么做
  • 上海哪个网站专门做宝宝宴的长沙传媒公司招聘信息
  • 怎样建自己的网站网站开发实例教程实训心得
  • 免费域名网站哪个最好怎么找到网站的空间服务商
  • 案例查询网站颍上网站建设
  • word模板网站wordpress菜单分级