随着移动互联网的发展,社交行业 APP 发展进入更加成熟的模式。国内手机端默认手机号码快速注册、第三方社交账号登录的模式已经越来越受用户的欢迎。而鉴于国内外市场环境的不同,国外 APP 依然采用邮箱注册居多,例如 Facebook 、Google、Apple 登录等,在国内则主要是微信、微博、QQ 登录。此外,隐私问题也是用户注册登录过程中越来越看重的。
国内社交 App 在开拓海外市场的时候,经常面临国内国外环境不同而出现注册登录方式不同的问题,社交软件一般很难做到国内国外两套基础设施,实现账号实时同步、访问流畅快速、用户身份安全、管理权限对应。
在此环境下,社交产品大多使用 AWS Cognito 来作为他们身份登录和认证的解决方案,然而这一方案容易导致用户访问延迟、登录不流畅等问题,AWS 中国的限制较多,很多服务都会缺失,且在大陆地区使用会有较为不便的体验。
01
Authing 身份认证和授权方案,构建起国内用户与 AWS 资源之间的桥梁
身份认证与授权实现起来相应复杂,Authing 架构师给出了一个结合 Authing 的 AWS 云上的身份认证与授权方案,完全可以取代 AWS Cognito,并满足社交产品用户登录体验的需求。
Cognito 服务构成包括 Cognito User Pool (用户池)和 Cognito Identity Pool (身份池)。目前 AWS 国内区域上线了 Cognito Identity Pool(身份池),但 Cognito User Pool (用户池)暂未上线。基于 OpenID Connect 协议的认证服务,使用 Authing 来做为 Cognito User Pool 的替代方案来帮助企业完成技术部署。
02
案例分享「阿宝说」
问题场景
阿宝说是一个面向国内外用户群体的社交 App,目前采用的 AWS 的 Cognito 来解决用户登录认证的问题。因为阿宝说的 AWS 主要在国外,整个登录过程延时过长,用户跳出和体验较差。目前希望解决国内外用户第三方社交账号登录的问题,包括国内微信、微博账号的登录,国外 Google Sign in,平台涵盖 iOS、Android 、小程序多端,涉及数万用户账号无缝登录。
实践方案
使用 Authing User Pool,全面替代 Cognito User Pool
-
访问 API Gateway 提供的受保护的 REST API
-
通过 Cognito Identity Pool 获取临时 AWS 凭证,访问 AWS 资源(以 Polly 服务为例)
-
通过 Authing 进行登录认证并获取令牌
Authing 基于 OIDC 和 OAuth 2.0 对用户进行身份验证,并授予用用户访问对应的应用的权限。
-
访问 API Gateway 提供的受保护的 REST API
通过 Authing 登录认证后,可获取令牌(即 id token)。通过发送 HTTP 请求时在 header 携带令牌,即可访问受保护的 REST API。
-
通过与 Identity Pool 集成安全访问 AWS 服务
通过 Authing 登录认证后,可获取令牌(即 id token)。通过与 Identity Pool 集成来获取临时凭证,进而安全地访问 AWS 资源。
通过将 Authing 与 AWS 相关服务进行集成,可以快速建立一个托管的用户池,并对 AWS 的相关资源(如 API 网关,S3, IoT, AI 等服务)实现安全的调用,实现类似于 Cognito User Pool 服务的功能。
目前利用 Authing ,阿宝说已经实现了对 Cognito User Pool 服务的替代。该服务也已经在 AWS 国内官网正式发布。
感兴趣的企业也可以查看该解决方案的源码(https://github.com/nwcdorg/iot-device-simulator),了解企业如何利用 Authing 来做为 User Pool 并与 AWS API Gateway 和 AWS Cognito Identity Pool 服务进行集成。
考虑到企业客户对数据安全和合规的要求,Authing 除了可以作为 SaaS 方式与 AWS 服务进行集成外,也可以以单租户的方式私有部署在客户自己的 AWS 帐号内。
客户评价
Authing 的解决方案快速帮我们完成了产品多端的国内外流畅登录,全方位的身份及访问管理,帮助我们应对各种复杂的登录场景,减少了管理的复杂性。
在社交 App 的普及推广中,用户身份贯穿在完整的用户体验中,良好的身份管理系统可以为用户创建无缝的体验,并时刻保持对用户及其行为习惯的可见性分析。
Authing 拥有现代的 IDaaS 身份中台解决方案,助力企业便利地设置条件访问,通过统一身份提高用户安全无缝的访问体验。如果您正在为身份模块的开发而烦恼,请注册 Authing 官网查阅文档,试用体验。