近来在做一个云平台,或者说云应用,那用户服务应该是必不可少的,需要提供认证、授权、用户管理、租户管理等基本的功能,同时也涉及到平台的开放问题。
一边网上参考学习,一边探索实践开发,也慢慢成型,慢慢完善。下面先看看做了什么,能够提供什么服务,再考虑怎么做。
探索一:一些互联网大众平台的用户服务
在社交网络出现以前,对我而言,在网络中最早有体验的帐号登陆是网易通行证,通过一个邮箱帐号实现网易的邮箱、微客、相册等服务、应用的统一认证,标识在网易所有服务应用的身份,不需要老是注册呀,然后又忘记帐号或密码之类,挺方便的。
不过,使用不同网络服务提供商的服务,还是得注册不同的帐号。那时也有OPENID来提供不同网络服务商、网站之间的统一认证,但似乎在国内不流行,并没有广泛应用。
还有很多SSO技术,这些技术主要体现的是统一认证,或者说是单点登录,不同网络服务商使用的技术可能不同,但自身服务应用基本都能点单登录。
现在,Oauth的应用变得非常流行,以facebook、twitter,flickr为代表的社交媒体出现,并推动了Oauth的发展,从Oauth1.0到Oauth1.0a,到Oauth2.0,增强了安全性和简化了开发的复杂性。目前大多都使用Oauth2.0协议或基于Oauth2.0协议,基本上不再支持Oauth1.0。Oauth的主要特征是统一认证和授权。
国内新浪微博、腾讯微博等这些开放平台都支持Oauth2.0协议,第三方网站通过QQ号、新浪微博号进行用户登录并获得授权。一般来说,第三方网站也有自己的帐号体系,都会将自己帐号与服务平台帐号绑定。经用户授权,第三方网站即可获取用户在新浪微博、腾讯微博上的相关数据。
像上面这些互联网平台的用户服务,既实现了自身应用的统一认证(各自的技术方案),也能提供第三方应用的认证与授权(Oauth2.0)。对用户来说,可以说是自己管自己,对自己的个人信息,可随意变更修改;对已授权的应用,也可以删除取消。
探索二:一些SAAS的用户服务
其中SAAS又可以分了SAAS应用和SAAS平台。从用户服务的角度什么区别?
SAAS应用:单应用,多个租户隔离地使用,像自己独享这个应用一样,如今目标、salesforce CRM、breathehr。SAAS应用自身都有比较完善的租户、用户管理体系。
SAAS平台:聚集多个应用,最典型的有平台应用超市。租户可以购买应用,可以添加员工并可以设置其员工(角色、组)使用这些应用的权限。如风云在线、onlogin,这些平台有比较完善的租户、用户、应用之间的管理体系。那如果 SAAS平台与SAAS平台上的应用都有完善的租户、用户管理体系,那怎样办?确实难办,比较难协调,不同的平台与应用管理方式是不一样的,难于同步之间的关系。SAAS平台上的应用只作为一个入口,控制租户下员工是否可访问应用,实际的租户管理还会以具体的应用为主。
体验了苏州风云在线、金蝶友商、今目标等,不管是平台还是应用都有基本相同的用户管理模式:
1. 用户首先通过邮箱注册一个租户,同时用户成为租户管理员。租户管理员维护自己的租户(企业)信息。这个邮箱不一定是一个企业邮箱,也不一定是同一个企业的邮箱。
2. 租户管理员创建员工,分配一个帐号(自定义的ID),这个帐号一般来说都是整个平台唯一的,就是通过这个帐号登录,就知道你是哪个租户(公司)。但是也有租户内唯一,如企业维生素CRM、金蝶的某些移动系统,就是说登录的时候需要填写一个类似企业号来标识,还需要一个用户名,再加密码。
租户管理员能够管理租户下的员工,包括修改员工状态、可否让其登录、权限控制、维护资料等。
3. 租户可以创建用户组、组织架构(风云在线),或者创建角色来管理和控制用户。
国外的有像onelogin它跟上面说的还有一些特征:
1. 必须通过一个企业邮箱进行注册,注册进去也成为租户管理员,注册后会分配一个基于邮箱域名的子域名,用户需要在分配的子域名下登录。
2. 通过邮箱添加员工,员工的邮箱(同一公司邮箱)即是登录帐号。好像添加了新的员工邮箱就可以登录了,不需要邀请激活,因为试的时候都是弄一个假邮箱,没收到过邮箱。breathehr可以是公共邮箱,可以是不同域名的邮箱,通过添加把员工聚集在一起。
4. 租户管理员通过设置一个token,根据这个token可以通过API操作租户内的用户。不过看来这个token并不是给第三方应用使用,而是租户自己开发应用使用这个token来管理用户。
及breathehr还有一些不同的特征:
1.通过一个邮箱(公共的企业的都行)注册,注册进去也成为租户管理员,并自定义注册一个唯一子域名来标识租户。
2. 通过邮箱添加租户的下员工,该邮箱是没有使用过的,整个breathehr中唯一。通过邮箱标识用户和登录。
3. 可以把不同域名的邮箱加入到同一个租户。
4. 同一个邮箱可以加入不同的租户,由登录时的子域名下来确定要登进的租户。使用同一个邮箱,如在地址subdomain1.breachehr.com/login下登录,则进入subdomain1租户,在地址frog.breachehr.com/login下登录,则进入frog租户。
探索三:一些企业社交平台的用户服务
企业社交平台都强调工作空间,企业成员被聚合在一个空间内沟通协作。
企业社交平台是SAAS应用或SAAS平台,所以在租户的创建,加入,管理方式上基本相同。
第一个人创建租户,成为管理员,然后邀请、添加用户进来协作。
一个人(同一个邮箱)是否能加入多个工作空间,不同的社交平台有不同的做法,不过,可以有多个工作空间将会是比较通常的做法。
跑道,明道:任何人可以创建多个工作空间,也可以加入多个工作空间。如果是企业邮箱,还会加入一个基于企业邮箱的空间。
tita:暂时只能加入一个企业,但一个企业里可以是不同的邮箱用户组成。很多事情只有管理员能做,有一些操作权限限制。
yammer,金蝶云之家:企业邮箱加入企业工作空间,企业用户可以加入到不同社区,公共邮箱用户可以加入由企业员工创建的社区。对企业里的用户控制地比较弱,组织比较松散,员工能做的事情比较多。
对于平台开放性,目前看只有金蝶云之家(当然还有yammer)开放了API,基于oauth1.0a授权,据了解Oauth2.0也将上线。云之家API很早就开放,但还不是很完善,主要还是以金蝶自身产品使用集成为主。
工作空间的切换,也就是租户的切换,有登录时选择要进入的租户,也有登录后以一个空间为主,然后可以自由切换租户空间。
先总结这么多先,后面再来一篇自己对用户服务的理解的一些思路和实现。