关闭

Openstack之KeyStone学习(一)

123人阅读 评论(0) 收藏 举报
分类:

Openstack简介:

OpenStack是一个美国国家航空航天局和Rackspace合作研发的云计算软件,以Apache许可证授权,并且是一个自由软件和开放源代码项目。OpenStackIaaS(基础设施即服务)平台,让任何人都可以自行建立和提供云端运算服务。以下是5OpenStack的重要构成部分:1、Nova —计算服务;2.Swift — 存储服务;3.Glance – 镜像服务;4.KeyStone认证服务;5.Horizon – UI服务。

keystone主要提供Identity(认证)、Token(令牌)、Catalog(服务目录)和Policy(安全策略,访问控制)四方面服务:

1.Identity:对用户的身份进行验证,用户的身份凭证通常以用户名和密码的形式呈现,认证服务的同时提供了与该用户相关的元数据的提取;
2.TokenIdentity确认用户身份之后,会给用户提供一个核实该身份并且可以用于请求后续资源的令牌,Token服务则验证并管理用于验证身份的令牌。keystone会颁发两种令牌给用户,一种是与Tenant无关的令牌,另一种是与特定Tenant绑定的令牌;
3.CatalogCatalog服务对外提供一个服务的查询目录即每个服务的Endpoint列表;
4.Policy:一个基于规则的身份验证引擎,通过配置文件来定义各种动作与用户角色的匹配关系

下图为keystone工作流程示例:



KeyStone基本概念

1.User:用户。通过keystone访问OpenStack服务的个人、系统亦或是某个服务,keystone都会通过认证信息(Credential,比如密码等)验证用户请求的合法性,通过验证的用户将会分配到一个特定的令牌,该令牌可以用于后续资源访问的一个通行证。用户必须属于某个特定的域,用户名不一定全局唯一,但是域内唯一。
2.Tenant:租户。租户可以理解为一个组织或者是一个项目,在Nova中,租户可以理解成一组虚拟机的拥有者。用户默认的总是绑定在某租户上,用户访问租户的资源前,必须与该租户关联,并且指定该用户在该租户下的角色。重点关注,目前有疑虑;openstatck中所有的资源应该属于某个特定的Tenant;一个Tenant必须属于特定的域,Tenant名并非全局统一,而是域内统一,如果Tenant没有指定所属的域,则会被添加到default domain中;
3.Groups:一组用户的集合,属于某个特定的域,群组名并非全局唯一,但是域内唯一;
4.Role:角色。一个role可以看做一个ACL集合,openstack中分配给用户的token包含了role列表。被访问的服务会判断它的用户角色以及每个role访问资源或者操作的权限。系统默认使用admin_member_roleUser验证的时候必须带有指定的tenantroles会被分配到指定的tenant。在全局角色中,用户可以对所有的租户执行角色所规定的权限;在租户内的角色中,用户仅可以在当前租户内执行角色规定的权限。角色名全局唯一;
5.Service:服务。根据UserTenantRole一个服务可以确认当前用户是否具有访问其资源的权限。服务对外暴露一个或多个端点,用户只有通过这些端点才可以访问所需资源或者执行某些操作。
6.Endpoint:端点。指一个可以用来访问某个具体服务的网络地址。一般以一个URL来表示一个端点,URL具有PublicInternalAdmin三种权限,Public为全局提供的服务端点,Internal提供内部服务之间的访问,Admin是提供给管理员使用的;
7.Token:令牌。用户通过Credential获取在某个租户下的令牌,以及令牌的颁发时间和有限时间。
8.Credentials:凭证。用户的用户名和密码,或者是用户名和API秘钥,或者是身份管理服务提供的认证令牌
9.Domain:表示一组Tenantsusers的集合。每一个tenantuser只能属于一个domain,但user可以属于多个Tenant

下图为KeyStone管理对象之间的关系:



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:602次
    • 积分:83
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档