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

2021-08-09 11:40:52 浏览数 (1)

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 提供更为细粒度的访问控制能力,让开发者聚焦关注自身业务开发。

0 人点赞