




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程OpenStack云计算平台
搭建与管理人项目6认证服务(Keystone)安装第15讲安装Keystone认证组件学习目标【知识目标】(1)了解Keystone的功能。(2)理解角色、用户、服务、端点等专业名词。(3)了解Keystone的组件架构。(4)了解Keystone认证的基本步骤。【技能目标】(1)能够安装与配置Keystone组件。(2)能够配置Web服务。(3)能够初始化身份认证信息。(4)能够用命令创建项目、角色。(5)能够用命令查阅用户、域名、项目、角色等信息。引例描述
小王已经完成了OpenStack云计算平台基础环境的部署,这类似于公司大楼已经建好,接下来就该让各个业务部门入驻大楼开始工作了,这里的业务部门就是OpenStack云计算平台的各个组件。此时小王想到了一个问题,OpenStack云计算平台的组件有很多,该先安装哪个组件呢?项目陈述
由于OpenStack云计算平台是由众多组件构成的一套复杂系统,哪些组件被允许连入系统、进入系统后允许使用其他哪些组件功能,都需要一个认证单元去判断和决定。
Keystone在OpenStack云计算平台中就是这个认证单元,负责各个组件的认证工作。
本任务将在控制节点中安装Keystone组件。Keystone的基本概念项目(project):项目是供用户使用的资源集合,不同的项目之间的资源是隔离的。比如李四开了一个会员制网吧,里面有很多提供给用户使用的资源,如电脑、游戏、咖啡、图书等等,这个网吧就可以看做一个项目。Keystone的基本概念——项目Keystone的基本概念——服务与端点服务(Service):服务是项目中各个组件提供的服务。该网吧对外提供多种服务,如上网区提供上网服务,休闲区提供咖啡服务,阅览室提供图书阅览服务。端点(Endpoint):端点是一个用来访问或定位某个服务的地址。每个服务都有自己的服务地址,需要某个服务就访问某个地址。如要读书就要去阅览室,服务地址就是端点。用户(User):用户是任何拥有身份验证信息来使用OpenStack的实体,可以是真正的使用人、其他系统或者某一服务。这个网吧(项目)里,李四、网管和来上网的人都是用户,都可以使用该项目的服务。角色(Role):角色是预定义的权限集合。如李四的角色是老板,有查账的权限;网管的角色是管理员,负责收银和软硬件管理;其他人的角色是顾客,只能上网与消费。Keystone的基本概念——用户与角色认证(Authentication)、凭据(Credentials):认证是Keystone验证用户身份的过程,凭据是认证用户身份时需要的身份验证数据。用户来到网吧(项目)以后并不是马上就可以使用服务,得把身份凭据提供出来由系统进行认证。令牌(Token):令牌是一个加密字符串,是访问资源的“通行证”。当通过认证后会给用户一个令牌,每次使用服务都要先验证持有该令牌的用户是否有权使用该服务(如不是VIP用户,则不能进入VIP区)。Keystone的基本概念——认证、凭据与令牌组(Group):组是部分用户的集合,通过分配角色到组,可以批量向在该组中的所有用户分配权限。如果用户很多,给每个用户单独分配权限非常麻烦,可以将若干个用户分为一组,如VIP组、战队组等,只需要给组分配权限,用户加入某个组就自动拥有了这个组的所有权限。域(Domain):域是项目和用户的集合。随着业务扩大,有其他网吧(不同的项目)加盟,此时其中一个网吧的会员可以自动成为其他网吧会员。为便于管理,可以把部分项目和用户划分到一个域中,并规定只有本域中的用户才能使用本域中项目的资源。Keystone的基本概念——组与域域、项目、组、用户、角色的关系模型域是用户和项目的集合,项目是资源的集合,角色是权限的集合,组是用户的集合。角色可以分配给用户或者组,这个用户和组里的所有用户就获得了该角色的所有权限。获得了权限的用户就可以使用和管理同域中的项目提供的资源。OpenStack中默认存在的域、项目、角色、用户域:OpenStack默认存在“Default”域,如果没有另外创建域,所有项目和用户都将属于“Default”域。项目:OpenStack自带“admin”项目。角色:OpenStack自带两个预定义角色,即“admin”和“member”,“member”角色集合了普通用户的访问权限,而“admin”角色集合了对整个OpenStack进行管理的特权。用户:OpenStack中自带“admin”用户,该用户属于“admin”项目并且分配有“admin”角色。端点类型每个服务的端点都有如下3类。
admin-url:给admin用户提供服务的地址。
internal-url:给内部组件提供服务的地址。
public-url:给其他公共用户提供服务的地址。在OpenStack(Train版)中,这3类端点地址已经统一,只保留了不同的类型。如Keystone组件对外提供服务的端点都是“http://控制节点IP地址:5000/v3”。Keystone的组件架构模块功能令牌令牌模块,该模块用来生成和管理令牌目录目录模块,用来存储和管理服务以及与之对应的端点信息验证验证模块,用来管理项目、用户、角色和提供认证服务策略策略模块,用来存储和管理所有的访问权限Keystone认证的基本步骤用户给Keystone提供凭证用于登录系统。登录成功后Keystone将签发令牌给用户。以后每次调用其他组件服务的时候都要出示令牌并由Keystone对令牌进行验证通过后才能继续使用服务。第1种,判断用户凭证是否合法。用户初次登录系统时,需要向Keystone提交用户名、密码等用户凭证信息。Keystone进行认证以判断是否为合法用户,如果是合法用户,则给用户颁发令牌,用于后续认证使用。在颁发的令牌中包含用户对服务的使用权限、令牌的失效时间等信息。第2种,判断用户令牌是否合法。当用户已经登录系统并开始使用OpenStack的任一组件服务时,都需要提交已获得的令牌。提供服务的组件将收到的令牌转交给Keystone判断该令牌是否合法、是否过期、是否有权获得服务等。只有通过了Keystone的验证,服务才会响应相应的请求。Keystone认证的种类项目实施安装与配置Keystone——安装Keystone软件包以下命令安装了Keystone组件的必要软件包。[root@controller~]#yum-yinstallopenstack-keystonehttpdmod_wsgiKeystone实际是运行在Web服务器上的一款支持Web服务器网关接口(WebServerGatewayInterface,WSGI)的Web应用。因此这里安装了3个软件:“openstack-keystone”“httpd”“mod_wsgi”。其中“openstack-keystone”是Keystone的软件包;“httpd”是阿帕奇(Apache)Web服务器的软件包名;“mod_wsgi”是使Web服务器支持WSGI的插件。安装与配置Keystone——创建Keystone的数据库并授权第1步,用下面的方法进入MariaDB数据库服务器。[root@controller~]#mysql-uroot-p000000第2步,新建“keystone”数据库。MariaDB[(none)]>CREATEDATABASEkeystone;第3步,给用户授权使用新建数据库。GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'localhost'IDENTIFIEDBY'000000';GRANTALLPRIVILEGESONkeystone.*TO'keystone'@'%'IDENTIFIEDBY'000000';上面两条语句把“keystone”数据库的所有表(keystone.*)的所有权限(ALLPRIVILEGES)授予本地主机('localhost')及任意远程主机('%')中名为“keystone”的用户,验证密码为“000000”。安装与配置Keystone——创建Keystone的数据库并授权检查授权情况[root@controller~]#mysql-ukeystone-p000000[root@controller~]#mysql-ukeystone-p000000-hcontroller都要能进入数据库,并且用“showdatabases;”都能看到keystone数据库。安装与配置Keystone——修改Keystone配置文件(1)打开配置文件[root@controller~]#vi/etc/keystone/keystone.conf(2)编辑配置文件第1步,修改“[database]”部分实现与数据库连接。connection=mysql+pymysql://keystone:000000@controller/keystone以上代码配置数据库连接信息,用“keystone”用户和密码“000000”去连接“controller”主机中的名为“keystone”的数据库。第2步,修改“[token]”部分配置令牌的加密方式(注意不要改错地方)。provider=fernet“FernetToken”是一种令牌加密格式。一个“FernetToken”是一个很长的字符串,在这个字符串中存储了被加密的用户信息、权限信息、过期时间信息等。安装与配置Keystone——初始化Keystone的数据库Keystone安装文件提供了数据库的基础表数据,此时还没有将数据导入“keystone”数据库中,需要手动将数据同步导入数据库中。[root@controller~]#sukeystone-s/bin/sh-c"keystone-managedb_sync"“sukeystone”:su命令用于用户切换。这里切换到“keystone”用户,该用户已经拥有对“keystone”数据库的管理权限。“-s/bin/sh”:-s为su命令的选项,指定用什么编译器(Shell)来执行命令,“/bin/sh”就是指定的编译器。“-c”:su命令的选项,在其后引号内的是具体执行的命令。"keystone-managedb_sync"实现了数据同步到数据库。安装与配置Keystone——初始化Keystone的数据库keystone-manage命令是Keystone服务的管理工具。它的基本使用方法如下。keystone-manage[选项]<操作>操作功能说明db_sync同步数据库fernet_setup创建一个Fernet密钥库,用于令牌加密credential_setup创建一个Fernet密钥库,用于凭证加密bootstrap初始化身份认证信息,并将这些信息存入数据库token_flush清除过期的令牌Keystone组件初始化——初始化Fernet密钥库以下命令将自动创建“/etc/keystone/fernet-keys/”目录,并在目录下生成两个Fernet密钥。这两个密钥用于加密和解密令牌。[root@controller~]#keystone-managefernet_setup--keystone-userkeystone--keystone-groupkeystone以下命令将自动创建“/etc/keystone/credential-keys/”目录,并在目录下生成两个Fernet密钥。这两个密钥用于加密解密用户凭证。[root@controller~]#keystone-managecredential_setup--keystone-userkeystone--keystone-groupkeystoneKeystone组件初始化——初始化用户身份认证信息用“keystone-managebootstrap”命令给“admin”用户初始化登录凭证,以后登录时出示凭证与此比对就可以进行认证。[root@controller~]#keystone-managebootstrap--bootstrap-password000000--bootstrap-admin-urlhttp://controller:5000/v3--bootstrap-internal-urlhttp://controller:5000/v3--bootstrap-public-urlhttp://controller:5000/v3--bootstrap-region-idRegionOne参数功能说明--bootstrap-username设置登录用户名,如果没有该参数则默认登录用户为“admin”用户--bootstrap-password设置“admin”用户的密码--bootstrap-admin-url设置“admin”用户使用的服务端点--bootstrap-internal-url设置内部用户使用的服务端点--bootstrap-public-url设置公共用户使用的服务端点--bootstrap-region-id设置区域ID名称,用于配置集群服务Keystone组件初始化——配置Web服务(一)Keystone实际上是一个运行在支持WSGI的Web服务器上的应用,所以要为它先配置好Web服务。本项目采用的是Apache服务器,它是一个常见的Web服务器,它的服务名为“httpd”。(1)给Apache服务器增加WSGI支持[root@controller~]#ln-s/usr/share/keystone/wsgi-keystone.conf/etc/httpd/conf.d/该命令将“wsgi-keystone.conf”文件软链接到“/etc/httpd/conf.d/”目录。因为“/etc/httpd/conf.d/”目录下的“conf”文件都是Apache服务器的配置文件,所以这个命令让“wsgi-keystone.conf”成为Apache服务器的配置文件之一,让Apache服务器能够应用前面安装的“mod_wsgi”插件以支持WSGI协议。Keystone组件初始化——配置Web服务(二)(2)修改Apache服务器配置并启动Apache服务由于Keystone本质上是一个Web应用,因此要借助Web服务器运行。Apache服务器的配置文件为“/etc/httpd/conf/httpd.conf”。[root@controller~]#vi/etc/httpd/conf/httpd.conf修改“ServerName”的值为Web服务所在的域名或IP地址。ServerNamecontroller(3)重启Apache服务首先,设置开机重启Apache服务。[root@controller~]#systemctlenablehttpd
然后,立即启动Apache服务。[root@controller~]#systemctlstarthttpd
模拟登录验证——创建初始化环境变量文件以上操作初始化了OpenStack用户“admin”的登录密码为“000000”。那么如何通过Keystone的认证登录系统呢?通过环境变量可以传送用户名及密码等凭证给Keystone,再由它进行验证。创建初始化环境变量文件[root@controller~]#viadmin-loginexportOS_USERNAME=adminexportOS_PASSWORD=000000exportOS_PROJECT_NAME=adminexportOS_USER_DOMAIN_NAME=DefaultexportOS_PROJECT_DOMAIN_NAME=DefaultexportOS_AUTH_URL=http://controller:5000/v3exportOS_IDENTITY_API_VERSION=3exportOS_IMAGE_API_VERSION=2解释:登录OpenStack云计算平台的用户名(OS_USERNAME)是“admin”,登录密码(OS_PASSWORD)是“000000”,用户属于的域(OS_USER_DOMAIN_NAME)是“Default”,项目属于的域(OS_PROJECT_DOMAIN_NAME)是“Default”,认证地址(OS_AUTH_URL)是“http://controller:5000/v3”,Keystone版本(OS_IDENTITY_API_VERSION)是“3”,镜像管理组件版本(OS_IMAGE_API_VERSION)是“2”。模拟登录验证——导入环境变量进行验证有了身份凭证文件后,通过如下方法将它导入环境变量中。[root@controller~]#sourceadmin-login然后可以用以下方法查看现有环境变量。[root@controller~]#export-p
declare-xOS_AUTH_URL="http://controller:5000/v3"declare-xOS_IDENTITY_API_VERSION="3"declare-xOS_IMAGE_API_VERSION="2"declare-xOS_PASSWORD="000000"declare-xOS_PROJECT_DOMAIN_NAME="Default"declare-xOS_PROJECT_NAME="admin"declare-xOS_USERNAME="admin"declare-xOS_USER_DOMAIN_NAME="Default"如能看到如上结果,说明环境变量已经导入成功。Keystone从环境变量中获取相关信息并将之和数据库中的登录信息进行比对,一致则通过认证。检测Keystone服务——创建项目OpenStack云计算平台的所有对组件的操作都需要Keystone认证后才能进行,所以如果用OpenStack的管理命令openstack能正常执行云计算平台管理操作,则说明Keystone的服务运行正常。用以下命令在默认域中创建一个名为“project”的项目。#openstackprojectcreate--domaindefaultproject用以下代码查看现有的项目列表。#openstackprojectlist
+--------------------------------------------------------+--------------+|ID
|Name
|+--------------------------------------------------------+--------------+|3f3fa121deae46079f27dc03d2b1e485 |project
||ed09f9f4fd19492c8eaebc2528bd3d86 |admin
|+--------------------------------------------------------+--------------+
命令的解释:“openstackprojectcreate”:创建一个项目。“--domaindefault”:该项目属于ID为“default”的域。“project”:新项目的名称。检测Keystone服务——创建角色为OpenStack云计算平台创建一个名为“user”的角色。#openstackrolecreateuser+---------------+---------------------------------------------+|Field
|Value
|+---------------+---------------------------------------------+|description
|None
||domain_id
|None
||id
|50cc688a185d405e958cd3
||name
|user
||opti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论