一文了解如何使用数字身份认证平台EIAM保护API网关访问
01.
背景介绍
通过腾讯云API网关,开发者可以将来自Serverless无服务器的云函数SCF、CVM上的Web服务、用户自身的Web服务进行统一封装并开放给最终用户。最终用户无论是移动客户端、Web客户端、物联网或其他应用,都可以通过API网关调用API服务。为了确保API调用的安全性,API网关目前支持免鉴权、应用认证、OAuth2.0三种方式。对于免鉴权方式,由于用户无需鉴权即可通过API网关调用后台业务,安全级别较低;对于应用认证方式,如果用户数目变多,需要考虑应用的管理安全问题;对于OAuth2.0方式,需要开发者自建和维护认证服务器。
腾讯数字身份管控平台(EIAM)支持对用户身份的集中管理、用户认证、应用集成、SSO、授权管理、审计管理等能力,支持SAML、CAS、JWT、OIDC、OAuth2.0等多种协议,支持多种基于角色的访问控制(RBAC)模型。采用EIAM为API网关提供认证和鉴权能力可以为API调用提供更为安全和简便的方式。
02.
能力优势
通过EIAM为API网关提供防护的能力,具有以下优势:
·使用标准OAuth2.0协议;
·可一键创建授权API和业务API,轻配置;
·EIAM维护用户目录,免自建认证服务器;
·在认证能力基础上支持鉴权功能,保护API安全;
·EIAM内置多种RBAC模型,免自建鉴权服务器和授权模型;
·内置缓存机制,更快的访问速度;
03.
功能亮点简析
1.API网关新功能详解
·新增鉴权类型
鉴权类型中新增EIAM认证类型,通过配置化组合满足不同的客户需求;
·多种接入方式
支持自动新建EIAM应用、自动关联已建EIAM应用;
·不同粒度的认证与鉴权
支持选择只认证不鉴权、既认证又鉴权;
·多端API调用适配
支持适用于非Web客户端(如服务器端、APP客户端、小程序客户端等)、Web客户端(浏览器、web viewer等)发起的API调用;
2.EIAM新功能详解
·应用类型支持
支持创建API网关应用类型,支持OAuth2+JWT结合方式对API调用进行认证和鉴权支持;
·资源级授权支持
支持按照组组织机构、用户组、用户进行API级的授权;
·鉴权支持
OAuth2输出增加id_token,带有scope,支持返回用户信息和当前用户可访问的API列表;
04.
配置流程
通过EIAM为API网关提供防护能力包括3个步骤:
1.创建API发布服务;
2.对API进行授权;
3.从客户端访问API;
从业务场景上,终端用户对于API调用的发起方可能为非Web客户端(如服务器端、C/S架构系统客户端、App客户端、小程序客户端)、Web客户端(如浏览器、Web Viewer)。非Web客户端能支持以POST方式发起请求,Web客户端支持以Web重定向方式接收返回信息。下文以非Web客户端为例说明配置流程。
第一步:创建API发布服务
1.进入API网关的控制台-->服务菜单-->管理API Tab页面
API网关控制台地址:https://console.cloud.tencent.com/apigateway
2.点击新建API进入前端配置
·鉴权类型选择EIAM认证;
·接入方式选择新建EIAM应用,会在EIAM自动创建API网关应用;
·既认证又鉴权;
·EIAM应用类型选择非Web客户端;
3.完成前端配置后,进入后端配置;
·公网URL/IP的后端类型,填写应用域名、后端路径、请求方式选择GET等信息;
4.选择响应结果类型
第二步:对API进行授权(EIAM)
1.进入EIAM的控制台-->资源级授权;
2.选择用户授权Tab页,选择API网关应用;
3.选择新增授权;
4.选择用户“user001”和“userName_11”进行授权;
5.授权完成后,可以在资源级授权页面看到授权结果
第三步:从客户端访问API
采用postman的方式对非Web客户端对API的调用进行验证。
1.对于未完成授权的用户
·获取id token;
·鉴权验证,返回结果“Access not authorized”;
2.对于完成授权的用户
·解析id token内容,可以查看对应用户身份为user001;
·鉴权验证,返回结果“Work!!!”,即可以进行API的调用;
通过3步简单配置,即可快速完成EIAM+API网关联合方案的配置,无需自建认证服务器、鉴权服务器,即可为您的业务API调用提供认证与鉴权能力。在未来,通过EIAM对多种授权模型的支持可以为API网关后防护的业务API提供更为细粒度的访问控制能力,让开发者聚焦关注自身业务开发。