一文了解如何使用数字身份认证平台 EIAM 保护 API 网关访问

发布者:腾讯安全
发布于:2021-08-09 13:23

01.背景介绍

通过腾讯云 API 网关,开发者可以将来自 Serverless 无服务器的云函数 SCFCVM 上的 Web 服务、用户自身的 Web 服务进行统一封装并开放给最终用户。最终用户无论是移动客户端、Web 客户端、物联网或其他应用,都可以通过 API 网关调用 API 服务。为了确保 API 调用的安全性,API 网关目前支持免鉴权、应用认证、OAuth2.0 三种方式。对于免鉴权方式,由于用户无需鉴权即可通过API网关调用后台业务,安全级别较低;对于应用认证方式,如果用户数目变多,需要考虑应用的管理安全问题;对于 OAuth2.0 方式,需要开发者自建和维护认证服务器。


腾讯数字身份管控平台(EIAM)支持对用户身份的集中管理、用户认证、应用集成、SSO、授权管理、审计管理等能力,支持 SAMLCASJWTOIDCOAuth2.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 提供更为细粒度的访问控制能力,让开发者聚焦关注自身业务开发

 05.直播预告,参与有礼 

参与直播互动,将有机会 免费获得 腾讯视频 VIP 月卡 1 张! 16 日,晚 7 点见!

 


声明:该文观点仅代表作者本人,转载请注明来自看雪