一、云用户认证概述

一个常识性的问题是,你要买云服务,得先开通一个云平台的帐号,如果是一个企业,会涉及很多员工登录,这时候就出现了主帐号和IAM(主流叫法)、RAM(阿里云叫法)帐号,这个逻辑很容易理解,不过如果你还单纯的以为云厂商只在云平台上建几个云帐号就完了,那你有out了,云厂商已把认证的触角伸到了企业用户认证的方方面面,这里通常主要是三个方面的认证:

  • 身份和访问管理控制台:这个便于理解,我们可以看作云平台自身的管理帐号管理;
  • 移动和Web应用程序控制:这个属于用户自用的应用或用户给自己的用户的应用开通的站点和APP的登录鉴权,最常见的是你打一个App里面会有各种社媒登录方式:微信登录、QQ登录、facebook登录等;
  • 单点登录:这个属于把多个登录平台的鉴权打通,比如一个企业会有OA、office365、Email、各种管理系统等,希望通过同一个鉴权平台完成登录。

想想看在这一块儿,主流的云厂商中谁最有优势呢?当然是mircosoft Azure,原因很简单,早年主流的统一鉴权主要有两个:AD活动目录和LDAP,前者就是微软的企业级产品,凭借多年的用户教育和易用的管理操作,AD在云服务时代有着天然的优势,各主流云厂商的IAM基本都支持企业外部认证,其中主要的idP就是微软的AD活动目录。而在云时代,微软也顺理成章的把AD做成了Azure上的SAAS云服务,同时再和自身的office365、teams、hotmail等应用产品的鉴权打通,自身的生态就能玩得转,更别提供其他几个云厂家由于企业用户历史积累的原因,也得适配AD。

二、IAM认证(阿里为RAM)

这里先提下IAM认证,因为这个是基本功能,属于云厂商为了方便企业用户登录云平台,实现企业用户的登录鉴权和用户已有的用户管理系统进行对接的功能。这里普及下几个基本概念:

1. 身份提供商(Identity Provider,简称IdP)

负责收集、存储用户身份信息,如用户名、密码等,在用户登录时负责认证用户的服务。在企业与华为云联邦身份认证的过程中,身份提供商指企业自身的身份提供商,目前常用的第三方IdP有Microsoft Active Directory(AD FS)、Shibboleth。

2. 服务提供商(Service Provider,简称SP)

服务提供商通过与身份提供商IdP建立信任关系,使用IdP提供的用户信息,为用户提供具体的服务。在企业与云厂商联邦身份认证的过程中,服务提供商指云厂商,如阿里云、华为云。

3. 联邦身份认证

身份提供商IdP与服务提供商SP建立信任关系并完成交互流程,实现用户单点登录的过程,称之为联邦身份认证。具体流程见下图:

cloud-idp-federated
cloud-idp-federated

  1. 单点登录(Single Sign-On,简称SSO)

用户在身份提供商IdP系统登录后,就可以通过跳转链接访问已建立互信关系的服务提供商SP系统,这一过程称之为单点登录。如:企业管理系统与华为云建立互信关系后,企业管理系统中的用户通过华为云提供的登录入口,使用已有的帐号密码在企业管理系统中登录后,即可跳转访问华为云。

所以联邦认证,是把idP信息和云厂商的对应的企业管理员帐户之间通过配置,建立对应的认证关系。这里给一个AD和华为云平台的联邦认证配置(因为美国厂商对华为云最不友好,这里特意列举下华为云的例子) — 手把手教你用Windows AD配置华为云联邦认证

常用认证协议:
1. SAML 2.0:安全断言标记语言(Secturity Assertion Markup Language 2.0,缩写为SAML 2.0)是一个由一组协议组成,用来传输安全声明的XML框架。SAML2.0是由标准化组织OASIS提出的用于安全操作的标准,是很多身份提供商 (IdP)使用的一种开放标准。

  1. OAuth 2.0:OAuth 2.0是Open Authorization 2.0的简称,是一种开放授权协议,授权框架支持第三方应用程序以自己的名义获取访问权限。
  2. OIDC:OIDC是OpenID Connect的简称,是一个基于OAuth 2.0协议的身份认证标准协议。

三、云厂商主要用户鉴权产品解读

这里选取了中美各两家云厂商的云产品进行对比,这里可以看到对应的总结如下:
– Azure三个方向的产品都是AD系列产品,属于单产品功能扩展就完成了所有功能的布局;
– AWS的产品根据功能将产品分割的更细,而且支持能力更强,当之无愧的云行业老大;
– 阿里云产品属于国内云产商的老大,仅从IAM项来看确实比huawei云支持的用户数量多;
– 华为云在4家里从参数上来看确实是最弱的一个,同时华为也因为涉A的原因,是三家里唯一无法在自己的云主机上安装AD服务的一家,其IAM虽然支持AD,但只能和用户的on-premise环境对接或者和其他云服务厂商对接。不过仅仅如此小看华为云就错了,华为这个公司多年来一直是所涉领域里打不死的小强,其憋了一个大招产品是oneaccess(华为内部有一个w3平台,可以通过该平台的登录,打通华为内部N多个应用的登录和鉴权),oneaccess的功能可以类比w3的这些功能,同时其也是为了应对微软的AD、AWS的cognito做的一个集成性的产品,不过当前该云服务仅在中国可用,海外region查不到该服务。

cloud-iam-sso
cloud-iam-sso

各云平台用户限制参考链接:
https://www.alibabacloud.com/help/en/resource-access-management/latest/limits#concept-gmw-yhf-xdb
https://support.huaweicloud.com/intl/en-us/productdesc-iam/iam_01_0305.html
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
https://docs.microsoft.com/en-us/azure/active-directory/enterprise-users/directory-service-limits-restrictions

各云服务对应的链接:
1. AWS亚马逊
AWS IAM
Amazon Cloud Directory
AWS Directory Service(AWS 中托管的 Microsoft Active Directory)
Amazon Cognito
AWS Single Sign-On

  1. Azure微软
    Azure Active Directory (Azure AD)
    Azure Active Directory B2C
    Azure Active Directory single sign-on
  2. 阿里云
    阿里RAM(Resource Access Management)
    阿里IDaaS
  3. Huawei Cloud
    华为云IAM
    华为云oneaccess