开源云计算平台CloudStack实战
上QQ阅读APP看书,第一时间看更新

2.2 账户

2.2.1 账户、用户和域

1. 账户(Account)

账户就是某个服务提供方或者组织机构的服务对象——受众客户。很多用户可以共存在一个账户之中。

2. Domain(域)

账户可以通过域来分组,域通常由很多账户组成,域维护了账户相互之间的逻辑关系,并且授权委派一些管理员来管理这个域和其子域。

每一个账户在创建的过程中,CloudStack的安装过程将创建三种不同类型的账户:根管理员(root administrator)、域管理员(domain administrator)和用户(user)。

3. 用户(User)

用户就像账户的别名一样。在相同的账户下管理的用户彼此之间不会隔离,但他们和其他账户下的用户是进行隔离的。

在域中账户下的用户名是绝对唯一的,相同的用户名可以存在于不同的域之中,包括其子域。域的名称仅在root的全路径不同时可以重复,例如root/d1、root/foo/d1、root/sales/d1。

管理员账户是系统中拥有特殊权限的账户,一个系统中可以拥有多个管理员。管理员可以创建或者删除其他管理员,以及修改系统中任何用户的口令密码。

4. 域管理员(Domain Administrator)

域管理员可以授权给隶属于该域中用户进行相关的管理员操作行为。但是物理机资源和其他域的资源对于该域中的域管理员角色是不可见的。

5. 根管理员(Root Administrator)

根管理员可以全面地管理系统,包括管理模板文件、服务供给、管理员配置和域等。

综上所述,资源是被账户管理的,账户中没有独立的User。例如,计费、资源限制等等,都是由账户所维护,而不是被用户维护。一个用户是否可以操作资源取决于它所在账户的角色权限。

2.2.2 使用LDAP服务器进行用户身份验证

用户可以使用一个外部LDAP服务器(如Microsoft Active Directory或ApacheDS)对CloudStack的用户进行身份验证,并通过使用一个查询过滤器将CloudStack账户映射到LDAP账户。

查询过滤器时,需要使用特定的LDAP服务器的查询语法编写,并且包含一些特殊的通配符,这些通配符是有CloudStack提供的,用来匹配常用的值,比如用户的电子邮件地址和名字。CloudStack将搜索外部的LDAP目录树,开始于一个指定的基目录,并且返回有区别的名字(DN)和匹配用户的密码。这些信息连同给定的用户密码一起用来验证用户。

在CloudStack中去启动LDAP验证,调用CloudStack API命令配置和提供以下信息:

(1)主机名或者IP地址和LDAP服务器的监听端口号。

(2)基目录和查询过滤器。

(3)查询用户DN证书,赋予CloudStack权限,在LDAP上去搜索。

(4)SSL秘钥和密码,如果SSL被使用。