OAuth2.0

OAuth 是一个安全协议,用于保护全球范围内大量且不断增长的Web API。它用于连接不同的网站,还支持原生应用和移动应用于云服务之间的连接,同时它也是各个领域标准协议中的安全层。

(图片来源网络)

接下来我们来仔细聊聊OAuth2.0是什么,有什么用处。

OAuth 2.0介绍

再说OAuth2.0之前,我们先聊聊OAuth。大家可以把它理解为OpenID的补充,但是服务内容完全不同。OAuth允许用户授权第三方网站访问他们存储在其他网站服务器上的信息,而不需要分享他们的访问许可或他们数据的所有内容。

OAuth2.0尽管是OAuth协议的延续版本,但并不向前兼容OAuth 1.0(即完全废止了OAuth1.0)。OAuth 2.0更加关注客户端开发的简易性,通过批准组织在资源拥有者和HTTP服务商之间的交互动作来代表用户,或者通过第三方应用代表用户获得访问的权限。同时为Web应用、桌面应用和手机,以及起居室设备提供专门的认证流程。

在这个过程中不需要应用去充当资源拥有者的身份,因为令牌明确表示了授予的访问权。OAuth2.0令牌可以限制客户端只能执行资源拥有者授权的操作。

虽然 OAuth2.0基本上不关心它所保护的资源类型,但它确实很适合当今的RESTful Web服务,也很适合Web应用和原生应用。从小型单用户应用,到数百万用户的互联网API,它都可以处理。在受控的企业环境中,它能对新一代内部业务API和系统访问进行管理,在它所成长起来的纷乱复杂的web环境中,它也能游刃有余地保护各种面向用户的API。

OAuth 2.0功能

(图片来源网络)

OAuth2.0框架能让第三方应用以有限的权限访问HTTP服务,可以通过构建资源拥有者与HTTP服务间的许可交互机制,让第三方应用代表资源拥有者访问服务,或者通过授予权限给第三方应用,让其代表自己访问服务。

作为一个授权框架,OAuth2.0关注的是如何让一个系统组件获取另外一个系统组件的访问权限。在OAuth2.0的世界中,最常见的情形是客户端应用代表资源拥有者(通常是终端用户)访问受保护资源。到目前为止,我们需要关心如下组件:

1.资源拥有者有权访问API,并能将API访问权限委托出去。

2.受保护资源是资源拥有者有权限访问的组件,这样的组件形式有很多,大多数情况下是某种形式的Web API,资源指的是这些API支持读、写和其他操作。

3.客户端是代表资源拥有者访问受保护资源的软件。OAuth2.0中,只要软件使用了受保护资源上的API,它就是客户端。

说完了OAuth2.0,就要开始介绍我们今天要说的另一个主角——低代码。

低代码

这里我们引用业内资深人士的话:"低代码是基于可视化和模型驱动理念,结合云原生与多端体验技术,它能够在多数业务场景下实现大幅度的提效降本,为专业开发者提供了一种全新的高生产力开发范式。 另一方面,低代码能够让不懂代码的人,通过"拖拉拽"开发组件,就能完成应用程序的搭建。 从意义上讲,低代码可以弥补日益扩大的专业技术人才缺口,同时促成业务与技术深度协作的终极敏捷形态"。

代码界的“两低一高”即Low Code,Low Cost,High Efficiency(低代码、低成本、高效率),指的就是低代码开发平台带来的便捷和高效,“追求最少的代码量,实现最多的业务功能”。这里面比较难的是如何把握功能实现的灵活性和操作学习的简易性的平衡。

低代码开发平台作为一种新型的开发工具,它的出现减少了代码编写量,简化了开发过程,缩短了开发周期,提高了开发效率,节省了开发成本。低代码开发平台可以帮助用户更好的去设计并实现需求,用户只需要关注业务逻辑,而不需要去关注代码编写。普通用户在接受简单培训后也能DIY出自己所需的各种管理软件。

介绍完了两个主角,现在就正式开始为大家介绍低代码如何支持OAuth 2.0。

低代码如何支持OAuth 2.0

低代码开发应用平台和其他系统的应用交互数据的时候,有以下两种情况:

1、低代码应用从第三方系统中获取数据(比如获取淘宝,京东的数据)

2、第三方系统从低代码应用获取数据(比如使用低代码开发了一个MES,现在有其他人希望获取这个MES系统的数据)

在这里需要注意: OAuth 2.0使用的凭证式(client_credentials)和密码式(password)两种。

首先需要授权设定,登录管理门户网站,然后单击设置→Web安全性页面,如下所示,管理员可以为每个第三部分配置客户端标识符和密码。

单击添加客户端授权按钮,然后编辑授权类型、允许范围和令牌生存期等。

凭证式实现

  1. 从用户管理门户网站(查看地址:https://gcdn.grapecity.com.cn/showtopic-87565-1-1.html

2、获取client_credentials访问令牌。

这是client_credentials授予类型请求参数列表:

调用结果

2.添加具有访问令牌的用户。(状态:200 OK)

在步骤2中复制" access_token"值,并在" access_token"值之前插入" Bearer",然后按如下所示将其添加到键" Authorization"的值中,并再次请求添加用户。

调用结果

密码式

1.从用户管理网站获取密码访问令牌(URL:http//xa-dd3-bks:22345/UserService/connect/token)。

这是密码授予类型请求参数列表:

调用结果

2.添加具有访问令牌的用户。(状态:200 OK)

在步骤4中复制" access_token"值,并在" access_token"值之前插入" Bearer",然后按如下所示将其添加到键" Authorization"的值中,并再次请求添加用户。

调用结果

这样我们就顺利实现了使用低代码顺利支持OAuth2.0。

如果大家对更多在线Demo感兴趣的话,可以访问:

https://www.grapecity.com.cn/solutions/huozige/demo/inventory

低代码如何构建支持OAuth2.0的后端Web API的更多相关文章

  1. Oauth2.0 认证的Web api例子

    Oauth2.0的解释 OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容.OA ...

  2. 开源低代码开发平台entfrm2.1.0更新

    开源低代码开发平台entfrm2.1.0更新 新功能 代码生成支持主子表,支持预览: 新增多应用顶部菜单与左侧菜单联动: element-ui升级到2.15.1: 新增表单管理,集成avue-from ...

  3. OAuth2 for asp.net web api

    在上篇文章中我研究了OpenId及DotNetOpenAuth的相关应用,这一篇继续研究OAuth2. https://github.com/DotNetOpenAuth http://www.cnb ...

  4. 使用微服务架构思想,设计部署OAuth2.0授权认证框架

    1,授权认证与微服务架构 1.1,由不同团队合作引发的授权认证问题 去年的时候,公司开发一款新产品,但人手不够,将B/S系统的Web开发外包,外包团队使用Vue.js框架,调用我们的WebAPI,但是 ...

  5. API代理网关和OAuth2.0授权认证框架

    API代理网关和OAuth2.0授权认证框架 https://www.cnblogs.com/bluedoctor/p/8967951.html 1,授权认证与微服务架构 1.1,由不同团队合作引发的 ...

  6. 低代码开发Paas平台时代来了

    概述 **本人博客网站 **IT小神 www.itxiaoshen.com 低代码理论 概念 低代码开发基于可视化和模型驱动的概念,结合了云原生和多终端体验技术,它可以在大多数业务场景中,帮助企业显著 ...

  7. 微信公众平台开发(71)OAuth2.0网页授权

    微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使 ...

  8. 使用OAuth2.0协议的github、QQ、weibo第三方登录接入总结

    目录 第三方接入总结 OAuth2.0介绍 github OAuth2.0登录接入 国内第三方应用商SDK使用 微博SDK 腾讯QQ SDK passport.js插件使用 安装 相关中间件.路由 返 ...

  9. 微信公众平台开发(71)OAuth2.0网页授权-摘抄

      微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友 ...

随机推荐

  1. XCTF练习题---MISC---神奇的Modbus

    XCTF练习题---MISC---神奇的Modbus flag:sctf{Easy_Modbus} 解题步骤: 1.观察题目,下载附件 2.打开下载文件,发现可以用WireShark打开,打开看看是啥 ...

  2. Windows下使用 Docker 部署 RabbitMQ

    安装 Docker 首先进入 https://docs.docker.com/desktop/windows/install/ 下载最新版 Docker,下载好后,双击进行安装,此处不对安装进行说明. ...

  3. 干货 | Keepalived高可用服务配置实例

    一个执着于技术的公众号 Keepalived系列导读 Keepalived入门学习 keepalived安装及配置文件详解 前言 在前面的章节中,我们学习了Keepalived简介.原理.以及Keep ...

  4. 中间件漏洞之IIS

    IIS中间件漏洞 我们常见的中间件有IIS.Apache.Nginx,其中IIS中间件有什么漏洞呢? IIS 短文件名漏洞: 漏洞产生的原因是为了兼容MS-DOS程序,windows为文件名较长的文件 ...

  5. 使用本地自签名证书为 React 项目启用 https 支持

    简介 现在是大前端的时代,我们在本地开发 React 项目非常方便.这不是本文的重点,今天要分享一个话题是,如何为这些本地的项目,添加 https 的支持.为什么要考虑这个问题呢?主要有几个原因 如果 ...

  6. NLP教程(6) - 神经机器翻译、seq2seq与注意力机制

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  7. 每日一题20180330-Linux

    一.问题 1.1 统计/var/log/下所有文件个数 1.2 查找出/var/log目录下面修改时间是7天以前,大小在50k到2M之间,并以.log结尾的文件把这些文件复制到/data目录中 1.3 ...

  8. 用python实现自动化登录禅道系统 设置定时器自动执行脚本

    由于各种原因,我想试下用python实现自动登录禅道系统,并且每天定时执行.(本人第一次接触自动化,在大佬眼中门槛都没摸到的类型) 首先缕清思路: 1.实现自动登录禅道系统,用selenium实现2. ...

  9. EditText简单登陆界面制作

  10. 02-C高级编程

    Day01 笔记 1 typedef使用 1.1 起别名 - 简化struct关键字 1.2 区分数据类型 1.3 提高代码移植性 2 void使用 2.1 不可以利用void创建变量 无法给无类型变 ...