第三方账号认证OpenID Connect结合Api网关的应用

什么是OpenID Connect

OpenID Connect1.0是一个位于OAuth2.0之上的简单身份认证层,是基于OAuth2.0授权协议基础上的由Google,微软,Facebook等公司于2014年发布的最新的认证授权协议(http://openid.net/specs/openid-connect-core-1_0.html),具有更高的安全性,灵活性,并符合未来安全发展的趋势。

OpenID Connect应用

在该协议中,使用令牌(id_token)替换OAuth2的access_token,id_token生成时使用私钥进行签名,使用时用公钥进行校验。使用JSON数据格式进行传输,并支持各类加密算法(如RSA)。

结合Api网关的使用场景,实现方案分为两个重要的部分:
    1. Authorization server(AS):认证服务器,负责生成id_Token并管理公钥私钥对。

AS在整个体系中担任id_token生产者角色,称作API令牌,所生成的id_token必须符合OIDC(1.0版本)协议中的规范(http://openid.net/specs/openid-connect-core-1_0.html)。
1) Consumer(调用者)向API网关发送获取id_token认证请求,比如:通过用户名和密码(U+P)的方式。
2) API网关透传该请求到AS。
3) AS向Provider(服务提供方)发送认证用户信息请求。
4) Provider响应认证结果,若失败则直接响应错误信息。
5) 认证结果成功,AS生成id_token,id_token中包含了User信息(可扩展,也可包含其他必要信息)。
6) API网关将AS返回的id_token响应给Consumer。

    2. Resource server(RS):资源服务器,负责校验id_token,并解析出相应的信息。

RS在整个体系中担任id_token消费者角色,只有id_token校验通过,才能将请求转发给Provider。
1) Consumer用带有id_token的参数去请求API网关。
2) Api网关会保存校验所使用的公钥,验证并解析id_token获取其中的User信息传给Provider,若验证失败则直接返回错误信息。
3) Provider处理请求并返回结果给Api网关。
4) API网关透传Provider响应的结果给Consumer。

小结

以上只是简单描述了下OpenID Connect结合Api网关应用场景的实现方案,但并不是唯一的。比如在这个实现方案中,AS是一套独立部署的应用,其实也可以把它集成到Provider中去,或者集成到Api网关中;同样的,RS也可以集成到Provider中去,大家可以根据不同的实际情况采取不同的方案。

时间: 2024-10-21 09:43:26

第三方账号认证OpenID Connect结合Api网关的应用的相关文章

标准OpenID Connect认证姗姗而来

API认证方式是涉及API安全的关键因素.一个安全的认证方式不仅要认证API请求的身份信息,还要能够对请求做一定的安全防护.如:防止请求被篡改.防止秘钥泄露.防止请求重放攻击等.因此API网关提供了第一版签名"阿里云APP"的认证方式. 随后随着移动用户逐渐增多,这使API网关不仅要提供对Websocket.HTTP2.0等协议的支持,优化API认证方式.于是推出了"OpenID Connect & 阿里云APP"的认证模式,通过Appkey+Token(用

企业级API网关的设计

一.网关简介 1.1 API网关背景介绍 本文讲的是企业级API网关的设计,API Gateway(APIGW / API 网关),顾名思义,是出现在系统边界上的一个面向API的.串行集中式的强管控服务,这里的边界是企业IT系统的边界,主要起到隔离外部访问与内部系统的作用.在微服务概念的流行之前,API网关的实体就已经诞生了,例如银行.证券等领域常见的前置机系统,它也是解决访问认证.报文转换.访问统计等问题的. API网关的流行,源于近几年来,移动应用与企业间互联需求的兴起.移动应用.企业互联,

新浪微博Oauth2.0授权认证及SDK、API的使用(Android)

---------------------------------------------------------------------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/51939853作者:朱培      ID:sdksdk0      邮箱: zhupei@tianfang1314.cn    -----------------

API网关遇上容器服务

在API经济和微服务的背景下,如何对服务的API进行管理是大家都很感兴趣的话题.本文通过利用阿里云的容器服务和API网关,构建一个完整的基于Docker的具有API管理功能的服务. API管理 假定我们需要这么一个经典的后端服务,访问如下API接口的时候返回Hello World: $ curl http://apisvc.hostxx/api <p>Hello World</p> 这个服务推出后广受欢迎,但是烦恼总是伴随幸福不期而至: 对API进行计费怎么做? 外界访问API的流

基于API网关构建高可用、高安全性API

        今天我们来聊聊如何借助API网关构建高可用.高安全性的云API,充分利用API网关给我们带来的便利. 认证         从API定义上我们可以定义多种认证类型的API,除特殊API外建议定义APP认证方式或其有安全认证类型的API,这样一旦发生攻击或者大量非法调用时我们可以知道谁在调用,便于我们通过黑名单等措施及时进行限制 HTTPS 建议对数据传输安全性要求较高的API仅开放HTTPS调用方式,另外在证书选择上,强烈建议大家选购Verisign的安全证书,因为Verisig

Leo|20页PPT剖析唯品会API网关设计与实践

刘璟宇Leo 唯品会资深研发工程师,在大型高性能分布式系统设计和开发方面有丰富的经验.目前在唯品会平台与架构部负责唯品会API网关和服务安全方面的设计.开发.运营工作. 内容解析 1. 为什么引入网关 唯品会是一家专门做特卖的网站,唯品会网站是一个巨大型的网站,每张页面背后,都有多个服务提供静态资源和动态数据. 这是唯品会网站上一张商品详情页面,内容是一款女式针织衫.页面里,除去静态页面.图片之外,有些动态内容:商品价格.促销提示语.产品介绍.商品库存等.每个部分都会从后端的一个或几个服务拉取数

Mashape开源API网关——Kong

Mashape开源了他们的API层:Kong. Kong是在客户端和(微)服务间转发API通信的API网关,通过插件扩展功能.Kong有两个主要组件: Kong Server :基于nginx的服务器,用来接收API请求. Apache Cassandra :用来存储操作数据. 你可以通过增加更多Kong Server机器对Kong服务进行水平扩展,通过前置的负载均衡器向这些机器分发请求.根据文档描述,两个Cassandra节点就足以支撑绝大多数情况,但如果网络非常拥挤,可以考虑适当增加更多节点

实践篇:搭建无服务器应用--函数计算+API网关+云市场(提供手机号归属地查询服务)

6月5日,阿里云的API网关上线了一个新功能,用户定义API后端服务时可以选择使用Function Compute,这样API网关的用户直接使用函数计算的技术能力,这也使得API网关具备可扩展的后端应用,与此同时函数计算也享受到API网关带来的诸多的好处,例如API的请求流量管控.安全鉴权.访问监控.统计等等. 下面我做一个简单的例子,把函数计算+API网关+云市场三者结合起来,提供一个能查询手机号归属地的服务,在这个框架里不需要配置WEB容器.不需要搭建运行环境.不需要购买负载均衡,通过配置和

Centos 7 安装 OpenResty api 网关 Orange

1,Orange网关 Orange是一个基于OpenResty的API网关.除Nginx的基本功能外,它还可用于API监控.访问控制(鉴权.WAF).流量筛选.访问限速.AB测试.动态分流等.它有以下特性: 提供了一套默认的Dashboard用于动态管理各种功能和配置 提供了API接口用于实现第三方服务(如个性化运维需求.第三方Dashboard等) 可根据规范编写自定义插件扩展Orange功能. 还是不错的,一个很漂亮的web可视化界面. 项目地址: https://github.com/su