用ASOS建立自定义的OpenID 服务(一)-----------简介
翻译文章 原文地址
这一系列共包括9个部分,这是第一部分,下面是英文原文地址:
- Introduction
- Choosing the right flow(s)
- Registering the middleware in the ASP.NET Core pipeline
- Creating your own authorization provider
- Implementing the resource owner password credentials grant
- Implementing the authorization code and implicit flows
- Adding custom claims and granting scopes
- Testing your authorization server with Postman
- Conclusion
什么是ASOS
ASOS是AspNet.Security.OpenIdConnect.Server 的简称,是asp.net core框架下一个开源的OAuth2/OpenID连接服务的中间件。设计为支持.net 桌面框架和新的.net core平台。ASOS是 aspnet-contrib initiative 的一部分,是OAuth2社交登录的基础部分,可见连接( the OAuth2 social providers for ASP.NET Core)。
ASOS不止使用了OAuth2 authorization server同样的低层、协议优先的方法,而且还添加了新的openID 连接的特点例如( 配置发现 provider configuration discovery, 客户端发起的退出登录client-initiated logout or 用户信息支持userinfo support),另外还实现了最近Oauth2的新的规范( token撤销 token revocation or token introspection 这个需要感谢Michael Ciarlillo 的贡献)
ASOS与其他身份服务的区别
同其他身份服务不同,ASOS只提供在应用和协议细节之间的联系,不提供类似用户管理,验证页面和CORS策略的功能,这些必须自己实现。
尽管ASOS需要很多OAuth2/OpenID知识,而且需要做更多的工作相比其他交钥匙项目(比如说 IdentityServer 或者 OpenIddict),ASOS更加灵活并且易于与现有环境融合。
你的项目是否要用ASOS
若果你不熟悉OAuth2 或者 OpenID,你最好不用ASOS。相比OAuthAuthorizationServerMiddleware,ASOS设计为底层框架,而不是拿来即用的服务。必须实现自己的授权逻辑和其他功能。
当然,如果你不想成为ASOS的专家,ASOS也为你提供了一系列支持(例如请求验证、配置发现、token序列化与反序列化),你只要实现其余的具体部分即可,例如客户认证和确认页面。
OpenIddict介绍
在ASOS和ASP.net Core
Based on ASOS and ASP.NET Core Identity身份框架的基础上。OpenIddict 是一个提供大多数认证功能的交钥匙项目,OpenIddict原生的支持OAuth2/OpenID互动和非互动的流控制,并且容易实现。仅需加一个类似ASP.NET Core Identity AccountController的AuthorizationController。
尽管Openiddict刚刚起步,它是简单项目的最好选择。如果你需要更加复杂的并且全程控制的Openid服务,ASOS是你最好的选择。关于OpenIDDict可以参考下面几篇文章:
- Setting up ASP.NET v5 (vNext) to use JWT tokens (using OpenIddict)
- Using OpenIddict to easily add token authentication to your .NET web apps
- Authorizing your .NET Core MVC6 API requests with OpenIddict and Identity
这个系列从简到繁,基本涵盖了建立ASOS 服务端的各个方面,敬请期待。
用ASOS建立自定义的OpenID 服务(一)-----------简介的更多相关文章
- 10_Jaxws使用自定义pojo发布服务
[简述] 查询三天的天气信息(天气概况.日期.温度),测试jaxws是否支持自定义pojo发布服务. [开发过程] 服务端: 1.自定义pojo(天气概况.日期.温度) 2.开发SEI接口及实现类 3 ...
- Power BI 与 Azure Analysis Services 的数据关联:1、建立 Azure Analysis Services服务
Power BI 与 Azure Analysis Services 的数据关联:1.建立 Azure Analysis Services服务
- 6-1 建立客户端与zk服务端的连接
6-1 建立客户端与zk服务端的连接 zookeeper原生java api使用 会话连接与恢复; 节点的增删改查; watch与acl的相关操作; 导入jar包;
- Ionic-wechat项目边开发边学(三):自定义样式,指令,服务
摘要 上一篇文章主要介绍了一个ionic项目的标准目录结构,header标签的使用,以及页面之间的切换.这篇文章实现的功能有: 消息数据的获取, 消息列表的展示, 消息标为已读/未读, 主要涉及的到的 ...
- linux自定义开机启动服务和chkconfig使用方法
linux自定义开机启动服务和chkconfig使用方法 1. 服务概述在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动,关闭的时候自动 ...
- (转)linux自定义开机启动服务和chkconfig使用方法
原文:https://www.cnblogs.com/jimeper/archive/2013/03/12/2955687.html linux自定义开机启动服务和chkconfig使用方法 1. 服 ...
- 163_技巧_Power BI 一键批量建立自定义字段参数
163_技巧_Power BI 一键批量建立自定义字段参数 一.背景 在 2022 年 5 月开始,Power BI 新增了一个非常有用的功能字段参数.再也不用写一串的 SWITCH 了.字段参数的效 ...
- ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介
概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要介绍了ASP.NET Core中StaticFile.Middleware ...
- ASP.NET Core 1.0 静态文件、路由、自定义中间件、身份验证简介
概述 ASP.NET Core 1.0是ASP.NET的一个重要的重新设计. 例如,在ASP.NET Core中,使用Middleware编写请求管道. ASP.NET Core中间件对HttpCon ...
随机推荐
- Codechef:Path Triples On Tree
Path Triples On Tree 题意是求树上都不相交或者都相交的路径三元组数量. 发现blog里没什么树形dp题,也没有cc题,所以来丢一道cc上的树形dp题. 比较暴力,比较恶心 #inc ...
- bzoj 1705;poj 3612:[Usaco2007 Nov]Telephone Wire 架设电话线
Description 最近,Farmer John的奶牛们越来越不满于牛棚里一塌糊涂的电话服务 于是,她们要求FJ把那些老旧的电话线换成性能更好的新电话线. 新的电话线架设在已有的N(2 <= ...
- 浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍
浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍 前记 自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧.模模糊糊,貌似有些贻笑大方了:所 ...
- Redis进阶实践之四Redis的基本数据类型
一.引言 今天正式开始了Redis的学习,如果要想学好Redis,必须先学好Redis的数据类型.Redis为什么会比以前的Memchaed等内存缓存软件使用的更频繁,适用范围更广呢?就是因为R ...
- ASP.NET没有魔法——ASP.NET MVC & 分层 代码篇
上一篇文章对如何规范使用ASP.NET进行了介绍,本章内容将根据上一篇得出的结论来修改博客应用的代码. 代码分层 综合考虑将博客应用代码分为以下几个层次: ○ 模型:代表应用程序中的数据模型,与数据库 ...
- 【程序员的吃鸡大法】利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
[先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...
- React Native学习(七)—— FlatList实现横向滑动列表效果
本文基于React Native 0.52 Demo上传到Git了,有需要可以看看,写了新内容会上传的.Git地址 https://github.com/gingerJY/React-Native-D ...
- php ueditor 后台配置项返回格式出错,上传功能将不能正常使用!
解决常见的有两种 1,可能是时区设置问题,有系统区分大小写. date_default_timezone_set("Asia/chongqing");改为 date_default ...
- 基于Vue的小日历(支持按周切换)
基于Vue的日历小功能,可根据实际开发情况按每年.每月.每周.进行切换 <template> <div class="date"> <!-- 年份 ...
- Java 获得Class的绝对路径方法
Java获得class文件的绝对路径:1.e.g. Foo.class => Foo.class.getResuorce("").getFile(); 该方法在eclipse ...