openid

ASP.NET Core 运行原理解剖[5]:Authentication

半世苍凉 提交于 2020-05-02 10:17:16
原文: ASP.NET Core 运行原理解剖[5]:Authentication 在现代应用程序中,认证已不再是简单的将用户凭证保存在浏览器中,而要适应多种场景,如App,WebAPI,第三方登录等等。在 ASP.NET 4.x 时代的Windows认证和Forms认证已无法满足现代化的需求,因此在ASP.NET Core 中对认证及授权进行了全新设计,使其更加灵活,可以应付各种场景。在 上一章 中,我们提到HttpContext中认证相关的功能放在了独立的模块中,以扩展的方式来展现,以保证HttpContext的简洁性,本章就来介绍一下 ASP.NET Core 认证系统的整个轮廓,以及它的切入点。 目录 本系列文章从源码分析的角度来探索 ASP.NET Core 的运行原理,分为以下几个章节: ASP.NET Core 运行原理解剖[1]:Hosting ASP.NET Core 运行原理解剖[2]:Hosting补充之配置介绍 ASP.NET Core 运行原理解剖[3]:Middleware-请求管道的构成 ASP.NET Core 运行原理解剖[4]:进入HttpContext的世界 ASP.NET Core 运行原理解剖[5]:Authentication(Current) AuthenticationHttpContextExtensions

ASP.NET Core 认证与授权[4]:JwtBearer认证

烈酒焚心 提交于 2020-05-02 10:17:00
在现代Web应用程序中,通常会使用Web, WebApp, NativeApp等多种呈现方式,而后端也由以前的Razor渲染HTML,转变为Stateless的RESTFulAPI,因此,我们需要一种标准的,通用的,无状态的,与语言无关的认证方式,也就是本文要介绍的JwtBearer认证。 目录 Bearer认证 JWT(JSON WEB TOKEN) 头部(Header) 载荷(Payload) 签名(Signature) 示例 模拟Token 注册JwtBearer认证 添加受保护资源 运行 扩展 自定义Token获取方式 使用OIDC服务 源码探索 JwtBearerPostConfigureOptions JwtBearerHandler Bearer认证 HTTP提供了一套标准的身份验证框架:服务器可以用来针对客户端的请求发送质询(challenge),客户端根据质询提供身份验证凭证。质询与应答的工作流程如下:服务器端向客户端返回401(Unauthorized,未授权)状态码,并在WWW-Authenticate头中添加如何进行验证的信息,其中至少包含有一种质询方式。然后客户端可以在请求中添加Authorization头进行验证,其Value为身份验证的凭证信息。 在HTTP标准验证方案中,我们比较熟悉的是"Basic"和"Digest"

ASP.NET Core 认证与授权[4]:JwtBearer认证

◇◆丶佛笑我妖孽 提交于 2020-05-02 09:40:26
在现代Web应用程序中,通常会使用Web, WebApp, NativeApp等多种呈现方式,而后端也由以前的Razor渲染HTML,转变为Stateless的RESTFulAPI,因此,我们需要一种标准的,通用的,无状态的,与语言无关的认证方式,也就是本文要介绍的 JwtBearer 认证。 目录 Bearer认证 JWT(JSON WEB TOKEN) 头部(Header) 载荷(Payload) 签名(Signature) 示例 模拟Token 注册JwtBearer认证 添加受保护资源 运行 扩展 自定义Token获取方式 使用OIDC服务 源码探索 JwtBearerPostConfigureOptions JwtBearerHandler Bearer认证 HTTP提供了一套标准的身份验证框架:服务器可以用来针对客户端的请求发送质询(challenge),客户端根据质询提供身份验证凭证。质询与应答的工作流程如下:服务器端向客户端返回401(Unauthorized,未授权)状态码,并在WWW-Authenticate头中添加如何进行验证的信息,其中至少包含有一种质询方式。然后客户端可以在请求中添加Authorization头进行验证,其Value为身份验证的凭证信息。 在HTTP标准验证方案中,我们比较熟悉的是"Basic"和"Digest"

.Net外包篇:我是怎么看待外包的(二)

爷,独闯天下 提交于 2020-05-02 07:10:34
延续上篇文章 .net外包篇:我是如何看待外包的 。 从这家公司辞职以后,得益于我校园信息平台和高校信息管理的经验,我进入了一个互联网类型公司。以前的经历,环环相扣,步步提升。 互联网时代 第四家客户(未谈成) 这个是属于网上自己找的项目,和负责人探妥了条件后,就出发去他们公司了,里面已经有部分开发人员了。简单了过了下需求,发现让我做的,比负责人谈的要多很多。经过周末的试开发,发现他们提供的接口还有bug,由于时间和预期目标关系不符,所以选择了退出。 按道理,没谈成的项目不应该列出来,但这个还有后话。 收获 接一个项目,如果没有足够的时间,要有自己的预期,不符合预期就不要接下来,以防后期不好交付。更大的收获是和其中的几个开发人员互加了微信,后期为我带来了另外的一个项目。 第五个客户 这个就是程序媛妹妹登场的时候了,音乐响起来! 第四个客户过后一段时间,快过年了,一个叫静静的程序媛联系了我,说有个项目是否有兴趣,很融洽的商量了下来,功能模型类似我 实用中小型公司支付中心搭建那篇文章列举模型,会员分销提成。 这个项目我收获很大,但遗憾也不少。 由于是兼职,所以大多说都是晚上撸代码,也经常视频聊天沟通需求。大晚上有个美女视频着开发,感觉还是挺好的。然后就到了过年。因为我回老家,家里也没网,就牵了电信的网。那几天矛盾挺多的,静静一直很着急,但我那段时间准备结婚事宜和网络原因,没法敲代码

分析RESTful API安全性及如何采取保护措施

谁说我不能喝 提交于 2020-04-29 10:14:48
本文中讨论了API安全性和采用安全措施的重要性,如身份验证,API密钥,访问控制和输入验证。 API设计的第一步是撰写接口文档 根据TechTarget(海外IT专业媒体)的定义,RESTful API是一个应用程序接口,它使用HTTP请求来获取GET,PUT,POST和DELETE等数据。从技术层面上看,RESTful API(也称为RESTful Web服务)是一种基于代表性状态转移(REST)技术,这是一种通常用于Web服务开发的架构风格和通信方法。 但随着 RESTful API 应用范围的爆炸性扩大,安全性越来越成为API架构设计中最容易被忽视的部分。 为什么API安全性很重要? 在设计和部署RESTful API时,有以下三个核心原因可以解释为什么安全性应该是一个很重要的考虑因素。 1. 数据保护 RESTful API是一种向外界传输价值的服务方式。因此,保护通过RESTful方式提供的数据始终应该是属于高优先级。 2. DOS 攻击 如果不采取正确的安全措施,(DOS)攻击可以使RESTful API进入非功能状态。考虑到很多基础的RESTful API是开放给所有人使用的情况,通过这种类似开源的方式有助于它更好推广给市场,让更多人投入使用,但同时意味着如果有人选择对API执行DOS攻击时,它也可能导致灾难性的结果。 3. 商业影响 如今有越来多的服务平台

从壹开始 [ Ids4 ] 之二║ 基础知识集合 & 项目搭建一

馋奶兔 提交于 2020-04-29 09:33:28
前言 哈喽大家又见面啦,感觉好久没更新了,这几天看了一本书《解忧杂货铺》,嗯挺好的,推荐一下😀。 不过还是要学习了,这些天简单的看了看 Id4 的资料,才发现原来关于 Id4 的系列文章真是数不胜数,而且还有很多的深度好文章, 说的灰常之详细,所以一度打消了我写这一系列的冲动和信心,不过还是有一部分的小伙伴还没有学习过,所以我决定我以后就把 IdentityServer4 的基础概念知识点,就少写些,重点写如何在项目中使用吧,本文的知识点,简单过一遍,脑子里有这个东西就行了,再以后的开发中,多动手就知道了,特别简单的,这里说明一下,在以前的Blog.Core 系列中,有关 JWT 的知识,我单拎出来一个小Demo,有不懂的可以下载看看( https://github.com/anjoy8/BlogArti/tree/master/Blog.Core_JWT )。 零、今天要完成 红色 的部分 一、常见术语 1、身份认证服务器(IdentityServer) IdentityServer 是基于OpenID Connect协议标准的身份认证和授权程序,它实现了OpenID Connect 和 OAuth 2.0 协议。 同样的角色,不同的文档使用不同的术语。在有些文档中,它(IdentityServer)可能会被叫做安全令牌服务器(security token service)

Identity Server 4 原理和实战(完结)_Authorization Code Flow 实例

≯℡__Kan透↙ 提交于 2020-04-28 02:44:08
Code在Oauth2.0和OpenId Connect里面分别叫做不同的名字 OAuth只介绍了如何授权。没有介绍如何身份认证、 OpenId Connect:既规定了怎么授权,也规定了怎么身份认证 OpenlD Connect是在OAuth2.0身份证协议之上做的身份认证协议,它里面规定了三种flow分别是 Authorization Code Flow、Implicit Flow、 Hybird Flow 今天主要讲Authoriztion Code, OAuth2.0里面的流程图 OpenId Connect 不一定的地方主要是这里,除了会获取access token之外,还会获取 Id token 新建MVC的客户端应用 修改启动的端口为5002 startUp里面。把JWT的Claim类型映射关闭了以便允许有一个WhereNo的Claim。如果不关闭的话它就会修改从授权服务器返回的各种Claim 然后注册身份认证中间件;cookie的名称要保持一致 AddCookie表示使用Cookie来验证的首选方式 授权服务器的地址: 设置不需要Https 表示把获取的token存到cookie里面,因为以后可能会用 先把Scope清空,再去添加Scope 添加身份认证的中间件 然后保护HomeController,只有授权用户才可以访问这个Controller 服务端的设置

微信扫码二维码 通过java调公众号接口发放红包

China☆狼群 提交于 2020-04-27 02:57:05
最新研究微信红包接口的问题真是困扰了我好久,因为微信的api 实在是太坑爹了 ,如果没有大量的测试是行不通的,我是拼凑的所有人的集合才弄明白,接下来跟大家分享一下java 结合jsp ,两个服务器如何实现 微信扫码二维码 然后公众号发放红包的例子。 1.准备工作先不说了(比如验证回调函数服务器域名啊、程序必须部署在80端口等等,开通微信支付等功能,这个微信api 说的很清晰),需要两个程序 ,一个作为微信接口的回掉函数程序用来获取 code(简称服务器A),另一个作为调取发送红包的程序(简称服务器B)。(java 端jar包就不写了直接写方法) 2.首先在A服务器上部署back.html页面 ,然后用生成二维码工具将此页面路径生成二维码,页面自动授权跳转到回第二个页面 getback.html <! doctype html > < html > < head > < meta http-equiv ="content-type" content ="txt/html; charset=utf-8" /> < script type ="text/javascript" src ="jquery-1.8.3.js" ></ script > < script type ="text/javascript" > $(document).ready( function () {

[转]将微信和支付宝支付的个二维码合二为一

大城市里の小女人 提交于 2020-04-27 02:56:37
本文转自: https://blog.csdn.net/woshishuiaaad/article/details/53540933 因公司需要将支付宝和微信的二维码合成一个,不管用户用支付宝扫还是微信扫都能打开对应的支付页面,在网上找了一些文章,很感谢各位大神的经验,我也记录下我是如何将两个二维码合二为一的~。 原理:支付宝或微信生成的二维码中本质都内嵌了一个url,在扫码时实际是定向去访问二维码中内嵌的url,这样我就可以将这个url指定到我的一个控制器,在控制器中判断是微信还是支付宝软件扫的,然后去唤醒各自的支付即可。 1.首先生成二维码: folderName:存储二维码图片的文件夹名 imageName:二维码图片名称 content:是在二维码中写入的内容,这里我传入的是URL:指定我判断软件类型的控制器 [java] view plain copy public static String genQRImage(String folderName, String imageName, String content) { //String filePath = System.getProperty("twtwebapp.root"); String fileName = imageName + ".png"; try { // 检查是否存在imageQR目录

python、java、ruby、node等如何提取office文档中的内容?

主宰稳场 提交于 2020-04-26 04:31:34
我相信大家都有过这样的需求,把doc、ppt、excel、pdf、txt中的文本内容提取出来。提取出来的文本内容可用于文档内容的全文索引,文档的基本内容摘要等。在度娘上搜索“如何提取文档内容”,确实有很多demo可以借鉴,但是,很多demo要么是需要付费的jar包,要么提取出的内容不全或者乱码。Java有许多开源工具包可用,尚且还不完美,何况其它一些开发语言如node、golang、ruby、python呢! 如果能有免费的API接口可以调用,那就不管是啥语言了,省时又省心,何乐而不为呢!基于此,我百度了下,没想到还真找到了。所以在此记录下,也希望能帮助到大家。 接口详细说明: https://www.xiaocongjisuan.com/show/api/11 接口介绍:提取word、ppt、pdf等文档中的内容返回给接口调用者 接口详细介绍中已经说的很清楚了,下面我简单说下注意事项: 1、关于appKey和openId appKey:接口唯一标识,在用户后台->应用中心->我的接口查看 openId:平台id,注册后系统自动生成,在用户后台->用户中心->账户信息查看 2、关于文件传值 接口传值统一采用base64编码,由于get请求参数有长度限制,所以在调用api接口时,必须使用POST方式。【文档base64的编码值,请保持数据的完整性(可不带数据头),以TXT为例如:[