云函数 SCF 全面集成腾讯数字身份管控平台 CIAM,快速实现账号管理

作者:
发布于: 2021-10-28
归档于:

标签:Serverless云函数

在 Web 应用的开发搭建中,为应用的用户提供 登录认证功能 都是一项基础且普遍的需求,从以往的开发者反馈来看,这一模块往往需要自主搭建,耗时费力。而 腾讯数字身份管控 平台(公众版)(以下简称Tencent CIAM)的出现则帮助开发者大大简化了这一部分的使用体验。

Tencent CIAM 用于管理公众互联网用户的账号、注册和认证规则,打通分散的用户数据孤岛、帮助应用更好地进行用户识别与画像,帮助开发者快速搭建安全、可靠的登录认证体系,实现用户登录认证。目前,云函数 SCF 已经支持全面集成 CIAM,只需几行代码修改,即可快速在应用中完成身份认证模块的添加。

01. Tencent CIAM 功能优势

  • 灵活的注册/认证流程配置

支持自定义配置登录、注册、多因素认证、忘记用户、忘记密码等流程,支持自定义 Logo、公司名称、域名配置能力。

  • 多种应用类型支持

支持 Web 应用、单页应用、移动 APP 应用、小程序应用等应用类型。

  • 多渠道统一登录体验

支持通过 Web 应用、移动应用、H5 应用、小程序应用、微信公众号等多种渠道登录的统一登录体验。

  • 多种认证方式支持

支持账号密码认证、短信认证、邮箱认证、等通用认证方式,支持微信、QQ、支付宝等主流社交认证源方式。

  • 灵活用户数据模型自定义

支持根据业务配置不同的用户模型,支持用户自定义属性,支持为属性字段配置是否必填、字段类型等,提供正则表达式等高级能力。

  • 账号融合支持

支持基于手机号、邮箱、微信 openid、微信 unionid 等认证属性识别同一个自然人用户并进行账号融合。

02. Express Web 框架快速集成认证

接下来将以云函数 SCF 的 Express 框架模版为例,介绍 SCF 和 CIAM 的集成业务流程,开发者只需要在 SCF 模版创建中直接选择「Express 框架模版(Auth)」,通过简单的配置操作即可拥有 Tencent CIAM 的认证能力。

1. 方案架构

开发者通过访问 SCF 内置的 Express 框架模板(Auth) 模版代码,通过调用 Tencent CIAM 提供的 SDK(CIAM-NODE-SDK )提供的方法,使 SCF 可以直接调用和访问 Tencent CIAM 中的登录、获取用户信息以及退出等认证能力,并向外暴露该认证能力,使开发者应用根据现有业务完成认证能力的集成。开发者在集成 SCF Express 框架模板(Auth)版本后,将即刻拥有Tencent CIAM 提供的强大的用户体系的认证管理能力。

2. 配置流程

SCF 云函数目前已支持预集成 CIAM 登录认证模块的函数模版「Express框架模版(Auth)」,可以通过模版快速部署,也可以基于模版示例实现您自主业务的集成。接下来将为大家介绍如何快速创建、使用和集成 SCF 中的 Express 框架模版(Auth),并预览集成认证后的效果,只需要以下四步就可以轻松完成:

2.1 通过 SCF 创建 Express 框架模版(Auth)

  1. 登录云函数 SCF 控制台;
  2. 云函数控制台地址:https://console.cloud.tencent.com/scf
  3. 选择函数服务 > 新建 > 模版创建 > Express 框架模版(Auth),如下图所示:
  1. 单击「下一步」,完成模版选择;
  2. 点击完成按钮,即可创建函数,创建完成后即可在函数管理中看到函数配置信息;

至此,您已经完成了 Express 框架模版(Auth)模板的创建,接下来只需要将函数代码中的初始化参数进行更新,就可以完成集成,初始化参数见下图所示:

在接下来的步骤里,我们将演示如何获取到 初始化参数 的值,在此之前,我们在函数代码 Tab 页的源码编辑器下,可以看到访问路径的地址,我们需要先 复制该 URL 地址,它会用于后续的配置。

2.2 配置 Tencent CIAM 应用

在配置前需要先创建 Tencent CIAM 应用,Tencent CIAM 提供了快捷的创建能力,通过立即创建即可一键完成应用的创建,待应用创建完成后经过简单的配置你就可以获取到上述初始化参数的值,操作步骤如下:

  1. 进入数字身份管控平台(公众版)控制台,点击立即创建按钮。
  1. 配置 redirectUrilogoutRedirectUrl回调地址

进入数字身份管控平台(公众版),在应用管理 > 应用列表 > 查看详情 > 参数配置页面中配置 redirectUri、logoutRedirectUrl 的值,如下:

参数名 参数值
redirectUri ${部署函数生成的网关url}/callback
logoutRedirectUrl ${部署函数生成的网关url}/logout , ${部署函数生成的网关url}/release/

注:${部署函数生成的网关url}即为第一步记录的 访问路径 的值。

  1. 获取 SCF Express 框架模版(Auth)中需要的初始化参数

至此,Tencent CIAM应用的创建和配置就已经完成,现在就可以获取到 Serverless Express 中的初始化参数:clientId、userDomain、redirectUri、logoutRedirectUrl,获取参数的位置和值如下:

  • 在应用管理 > 应用列表 > 查看详情 > 参数配置页面中记录 redirectUri、logoutRedirectUrl 回调地址;
  • 在应用管理 > 应用列表页面中获取 clientId 应用 ID;
  • 在个性化设置 > 域名设置页面中获取 userDomain 租户域名;

在域名设置界面中开发者可以使用腾讯云平台域名或者自有域名,确认后记录该数据值。

2.3 更新 SCF Express 框架模版(Auth)的初始化参数

根据上述获得的clientId、userDomain、redirectUri、logoutRedirectUrl参数值,更新SCF Express 框架模版(Auth)的初始化参数,进入函数服务 > 先择第一步创建好的函数 > 函数代码 Tab 页,对初始化参数进行更新,参数更新完成部署后就可以预览集成的效果。

2.4 在 SCF 预览集成效果

打开函数服务 > 打开已创建好的函数服务 > 函数代码 Tab 页源码编辑器下方的访问路径按钮,即可在新页面看到查看集成 CIAM 后的运行效果如下:

点击右上角的登录按钮,进入 CIAM 认证页面:

至此,你已经完成了 CIAM 的代码集成,可以直接使用 CIAM 的登录、注册功能了。

Tencent CIAM 产品目前已经正式发布,提供了专用的 ciam-node-sdk,通过该 SDK,您可以将登录认证模块与您自己的 Web 函数项目快速集成,大大简化开发流程,提升开发体验。


传送门:

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