腾讯云 IDaaS + 云函数,不到 10 行代码解决企业身份难题

作者:
发布于: 2021-8-17
归档于:

标签:Serverless云函数

企业内开发者经常需要开发各式各样自建应用,传统的开发方式很容易陷入一个身份困境:

  1. 反复实现账号注册、注销等管理,写一堆账号、组织、角色表、关联表类和对应接口。
  2. 面临繁琐各异的安全合规要求,挠头做密码有效期、GDPR 等数据合规。
  3. 对接企业内外部各类认证方式,微信、AD 域账号等等持续新增和变更。

当企业采用了腾讯云 IDaaS 之后,企业内开发者将可以省去以上烦恼,专注在自己的业务上,仅需在程序内注入几行代码、几分钟即可快速集成腾讯云 IDaaS。腾讯云 IDaaS 提供了不同编程语言的快速教程帮助企业开发者安全快速地对接,本文以基于腾讯云 Serverless 的 Node.js Express 框架为例,示例如何快速集成腾讯云 IDaaS 的 SSO 能力,适用于企业内部快速开发产品企业应用的场景,优势:

  • 不到 10 行,5 分钟快速集成 - 腾讯云 IDaaS
  • 0 运维成本,按量收费 - 云原生 Serverless 框架

01. 什么是 腾讯云 IDaaS?

腾讯云 IDaaS(TencentCloud IDaaS,TCID)致力于为企业提供身份认证和数据管理服务。作为新一代企业身份连接平台,可针对多身份源进行数据清洗和数据聚合,适配复杂多样的企业既有应用和认证系统,实现企业应用身份的打通和连接。

  • 统一目录

集成各类企业身份数据源、第三方认证系统或应用,打通身份目录同步与认证能力,实现对人员、组织架构及人员组等多维度身份数据的集中储存及权限规则管理。

  • 应用身份同步

支持本地与云端应用间的身份信息同步,快速映射身份数据,打通各应用间身份数据阻隔的壁垒。

  • 身份安全审计

提供人员访问记录、管理员操作记录、应用使用记录等多维度日志审计服务。管理授权、业务操作、审计监察均可独立授权,同类授权可批量操作。

02. 云函数 + IDaaS,快速部署

1. 前提配置

确保在开始之前在腾讯云 IDaaS 中配置新建 OIDC 应用(选择 Web 子类别)如下图所示:

我们假设应用程序将本地部署在 redirect uri,我们将获取和配置以下值:

准备开发环境:创建或者使用现有的 Express 应用。

利用 Serverless 应用中心控制台创建:在腾讯云控制台搜索 Serverless,在应用 Tab 里面创建一个新的 Express 应用,如下图所示,指导参考文档:https://cloud.tencent.com/document/product/1154/43224

2. 引入 SSO 依赖库

打开云 IDE,在您的 Express 项目依赖配置文件 package.json 中,加入以下依赖:

  • express-openid-connect

代码样例:

"dependencies": {    "express": "^4.17.1",    "express-openid-connect": "^2.4.0", }

如下所示:

3. 配置参数

根据「前提配置」获取的信息,为您的程序配置以下环境变量:

在 Serverless 中,需要在您的「函数服务 - 函数管理 - 函数配置」中进行配置。

CLIENT_ID= {clientId}CLIENT_SECRET= {clientSecret}ISSUER_BASE_URL= {IDaaS Wellkown}

4. 程序集成 SSO

在 Express 的 app 文件中启用 SSO:加入 app.use(auth(,并在您希望保护的请求中加入requiresAuth()通过 req.oidc.user获取用户的属性,如下示例(共 9 行代码):

5. 自选身份认证

沿用腾讯云 IDaaS 的超级认证源能力,可以快速启用你想接入的企业认证方式:

通过不到 10 行代码, 几分钟内您可以在创建一个 Express 应用并与腾讯云 IDaaS 集成 SSO使用,轻松创建和保护您的应用程序。作为开发人员,您只需使用从企业的腾讯云 IDaaS 管理员收到的参数添加到应用注册,引入对应 SDK,即可为您的应用程序启用 SSO 支持。

03. 接入腾讯云 IDaaS

为企业开启使用腾讯云 IDaaS,访问以下产品链接进行购买:https://cloud.tencent.com/product/tcid,即可获得企业独有的 IDaaS 安全空间,提供为您的应用保驾护航。


传送门:

欢迎访问:Serverless 中文网,您可以在 最佳实践 里体验更多关于 Serverless 应用的开发!