教程05openstack培训-3.5d06keystone讲解_第1页
教程05openstack培训-3.5d06keystone讲解_第2页
教程05openstack培训-3.5d06keystone讲解_第3页
教程05openstack培训-3.5d06keystone讲解_第4页
教程05openstack培训-3.5d06keystone讲解_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、lHC13081云计算lV1R51.0l李扶洋2016-05lfly新开发Openstack Keystone1.Keystone对象模型对象模型2.Token的使用的使用3.RBAC:基于角色的访问控制:基于角色的访问控制4.Keystone对接对接ADKeystoneOpenStack中的KeyStonelDomain:域,keystone中资源(project、user、group)的持有者lProject:租户,其他组件中资源(虚拟机、镜像等)的持有者lUser:用户,云系统的使用者lGroup:用户组,可以把多个用户作为一个整体进行角色管理lRole:角色,基于角色进行访问控制lTr

2、ust:委托,把自己拥有的角色临时授权给别人lService:服务,一组相关功能的集合,比如计算服务、网络服务、镜像服务、存储服务等lEndpoint:必须和一个服务关联,代表这个服务的访问地址,一般一个服务需要提供三种类型的访问地址:public、internal、adminKeystone对象模型lRegion:区域,在keystone里基本代表一个数据中心lPolicy:访问控制策略,定义接口访问控制规则lAssignment:一个(actor, target, role)三元组叫一个assignment,actor包括user、group,target包括domain、project。

3、每个assignment代表一次赋权操作lToken:令牌,用户访问服务的凭证,代表着用户的账户信息,一般需要包含user信息、scope信息(project、domain或者trust)、role信息。分为PKI,UUID, PKIZ, Fernet几种类型。Keystone对象模型luser, project, domain, role, assignment:Keystone对象模型luser, group, project, domain, role绑定关系l接口举例:l赋予用户在租户上有指定的权限actortargetKeystone对象模型 - AssignmentlRegion,

4、 service, endpoint:Keystone对象模型lRegion, service, endpoint关系:Region1az1.dc1级联OpenstackRegion2az2.dc1被级联OpenstackRegion3az3.dc1被级联OpenstackService NovaEndpointInternalurl: $(tenant_id)sPublicurl: $(tenant_id)sAdmincurl: $(tenant_id)sKeystone对象模型1.Keystone对象模型2.Token的使用3.RBAC:基于角色的访问控制4.Keystone对接ADlTo

5、ken是什么:l用户向keystone提供一组有效的用户信息,keystone向用户返回一个token。lToken包含这个用户的信息,用户的角色(role)信息,token的作用域(scope),token有效期(expiration)。l使用这个token可以访问其他openstack服务。l为什么使用Token:l使用token访问api服务比使用用户名密码访问更加方便。lToken具有有效期,在客户端缓存token比缓存用户名密码更安全。Token的概念Token在Openstack中的应用USEROpenstackKeystoneNova-api1、申请Token2、创建虚拟机,He

6、ad中携带Token pute3、校验Token是否有效4、Token通过接口透传Neutron-server5、进行网口相关操作,Head中携带Token6、校验Token是否有效创建token auth: identity: methods: password , password: user: name: cloud_admin, password: FusionSphere123, domain: id: default scope: project: name: admin, domain: id: default 申请token的方式,包括password, token。用户信息,

7、包括用户名、密码、用户所属domain。Token作用域,可选。可以是project或者domain,用户必须跟这个scope具有角色绑定关系。没有scope的token中没有角色信息,大部分接口都无法访问。Token交互l用户从keystone申请tokenl用户使用token访问服务l被访问组件验证tokenl用户得到返回消息Token的生成和验证lUUID Token:l每次验证需要访问keystone服务端。Token的生成和验证lPKI Token :lToken验证在客户端即可完成。Token验证流程lAuthtoken模块验证token流程:1.Keystone对象模型2.Tok

8、en的使用3.RBAC:基于角色的访问控制4.Keystone对接ADRBAC:基于角色的访问控制原理1Nova-apiKeystone提供统一的Policy模块Policy.json一般存在于组件的配置文件目录下。修改实时生效,不需要重启服务。RBAC:基于角色的访问控制原理2Policy模块在检测时需要三方面的数据:1、policy.json策略配置文件;2、auth_token添加到http头部的token数据;3、用户的请求数据。USEROpenstack1、申请Token,用户USER_A2、创建租户,Head中携带Token,URL中携带操作policy.json:all_admi

9、ns:role:admin, role:internal_admin, identity:list_projects: rule:all_admins identity:create_project: role:admin3、从Token中解析出用户的权限信息根据Policy.json的规则,判断权限是否满足操作的要求KeystoneRBAC:基于角色的访问控制lToken认证只认证token的有效性,权限控制是在各个组件代码内部做的。lKeystone提供统一的policy模块供其他组件进行访问控制检测。lPolicy模块在检测时需要三方面的数据:1、policy.json策略配置文件;2、

10、auth_token添加到http头部的token数据;3、用户的请求数。lpolicy.json的修改实时生效,不需要重启服务。RBAC:基于角色的访问控制格式:: or 两种写法:“identity:get_user”:”role:admin or user_id:%(user_id)s” - and, or, not“identity:get_user”:”role:admin and user_id:%(user_id)s”“identity:get_user”:”role:admin”, “user_id:%(user_id)s” - 逗号隔开的为或, 同一括号内为与“identit

11、y:get_user”:”role:admin”, “user_id:%(user_id)s”RBAC:基于角色的访问控制Match statement 规则:: or “user_id: $user_id” - token中用户id为$user_id“user_id: %(user_id)s” - token中用户id与 url 中的user_id匹配 如: GET /v3/users/$user_id“domain_id: %(user.domain_id)s” - token的domain与 请求body体中用户domain_id匹配 创建某个domain下的用户必须使用该domain的

12、管理员“user_id:%(target.credential.user_id)s” - token的用户与要操作的数据库中对象的user_id匹配 用户只能查询属于自己的credential1.Keystone对象模型2.Token的使用3.RBAC:基于角色的访问控制4.Keystone对接ADKeystone对接AD概述USEROpenstackKeystoneAD服务器external_apiDB未对接未对接ADAD对接对接ADAD所有对象存储在DB中USEROpenstackKeystoneexternal_apiDB除USER、GROUP对象存储在DB中external_om指定d

13、omain的USER、GROUP存在在AD中Keystone对接AD配置1配置项配置项说明说明ldap_domain对接LDAP的domain名称ldap_urlLDAP服务器urlldap_user连接LDAP服务器所使用的用户ldap_password连接LDAP服务器所使用的密码ldap_suffixLDAP域名ldap_user_tree_dnLDAP上用户所在的路径ldap_group_tree_dnLDAP上用户组所在的路径ldap_dumb_member创建LDAP用户组时的默认成员用户ldap_user_objectclass用户对应的LDAP对象类,keystone只会认为包

14、含该属性的对象为用户ldap_user_id_attribute映射到keystone用户id的LDAP用户属性ldap_user_name_attribute映射到keystone用户名的LDAP用户属性ldap_user_pass_attribute映射到keystone用户密码的LDAP用户属性Keystone对接AD配置1配置项配置项说明说明ldap_user_mail_attribute映射到keystone用户邮箱的LDAP用户属性ldap_user_enabled_attribute映射到keystone用户enable的LDAP用户属性ldap_user_enabled_mas

15、k当ldap_user_enabled_attribute 配置为userAccountControl时需要指定,两者共同确定用户是否启用ldap_user_enabled_default默认的用户是否可用的值,默认为512ldap_user_allow_create是否允许keystone在LDAP上创建用户ldap_user_allow_update是否允许keystone在LDAP上更新用户ldap_user_allow_delete是否允许keystone删除LDAP上的用户Keystone对接AD配置2配置项配置项说明说明ldap_group_objectclass用户组对应的LDA

16、P对象类ldap_group_id_attribute映射到keystone用户组id的LDAP用户组属性ldap_group_name_attribute映射到keystone用户组名的LDAP用户组属性ldap_group_member_attribute映射到keystone用户组成员的LDAP用户组属性ldap_group_desc_attribute映射到keystone用户组描述的LDAP用户组属性ldap_group_allow_create是否允许keystone在LDAP上创建用户组ldap_group_allow_update是否允许keystone在LDAP上更新用户组l

17、dap_group_allow_delete是否允许keystone在LDAP上删除用户组ldap_use_dumb_member在LDAP上创建用户组时是否需要加默认成员,当这个配置项为true时,需要配置ldap_dumb_member配置需要通过CPS配置命令来完成:cps template-params-update -parameter ldap_domain=* ldap_url=* -service keystone keystoneKeystone对接AD举例ldap_suffixldap_group_tree_dnldap_user_tree_dndistinguishedNameKeystone对接AD限制l当前只支持一个domain对接一个ADl安装好FM虚拟机,进行keystone对接之前,不能配置keystone对接AD,否则会出现FM对接keystone失败。l不能在AD上手动删除group下的用户组,否则会导致FM功能异常l不支持切换对接AD的vdcl对接AD的vdc名称不能与内置domain

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论