先放个链接,万一有人关注呢
优质文章推荐
↓ ↓ ↓ ↓ ↓
概述
Keystone服务是OpenStack项目中的身份认证服务,它提供了一系列身份、令牌、目录、策略服务,是OpenStack访问控制的基石。
Keystone的主要功能包括:
1、用户管理: Keystone负责管理OpenStack的所有用户,包括创建、删除、禁用用户账号等。
2、项目管理:一个项目对应一组资源的集合,Keystone可以创建项目、维护项目与用户的关系。
3、角色管理:角色定义了一组权限,可以赋予给用户来控制对资源的访问。Keystone负责管理角色信息。
4、服务目录:Keystone维护 OpenStack服务的目录索引,包括服务的API端点信息等。
5、认证服务:对用户的密码和密钥进行验证,验证成功后签发证书。
6、授权管理:负责决定用户是否有权访问指定的服务或资源。
7、令牌管理:颁发身份验证令牌,并在有效期内维护令牌列表。
客户端首先向Keystone发起认证请求,Keystone验证身份信息后返回一个作出相关判断的令牌。客户端使用该令牌向其他服务发起 API 请求,服务根据令牌的信息对客户端进行授权。
Keystone通过SQL数据库来存储用户、项目、角色等身份信息。它也提供了对外的REST API接口,以及命令行工具,如keystone-manage等。
Keystone为OpenStack云平台提供核心的身份认证与访问控制服务,是构建安全可靠的OpenStack私有云的基础。
创建数据库
进入控制节点的数据库中
mysql -uroot -p123创建身份服务的数据库
create database keystone;授权数据库
grant all privileges on keystone.* to 'keystone'@'localhost' identified by '123';grant all privileges on keystone.* to 'keystone'@'%' identified by '123';
退出数据库
安装配置服务组件
安装相关软件包
yum install openstack-keystone httpd mod_wsgi -y解释:
修改配置文件,配置数据库访问
vi /etc/keystone/keystone.conf内容如下
[database]connection = mysql+pymysql://keystone:123@controller/keystone[token]provider = fernet
解释:
注意:
因为发行版的不同,配置文件中的内容也不同,所以需要仔细查看配置文件内容,添加或修改新配置,删除重复的配置。修改完成后,保存退出
填充数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone初始化Fernet密钥库,使身份服务能够在非root用户和组下运行。
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystonekeystone-manage credential_setup --keystone-user keystone --keystone-group keystone
引导身份认证服务
keystone-manage bootstrap --bootstrap-password 123 \#指定admin用户的密码为123--bootstrap-admin-url http://controller:5000/v3/ \#指定admin用户访问的API端点URL--bootstrap-internal-url http://controller:5000/v3/ \#指定内部访问的API端点URL--bootstrap-public-url http://controller:5000/v3/ \#指定外部访问的API端点URL--bootstrap-region-id RegionOne#指定region为RegionOne
解释:
修改配置文档
vi /etc/httpd/conf/httpd.conf修改如下
ServerName controller创建身份认证服务配置文件的文件链接
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/启动Apache服务
systemctl enable httpd.servicesystemctl start httpd.service
配置环境变量
创建一个用于存放变量的文件,放在家目录下就行
vi admin-openrc内容如下
export OS_USERNAME=admin#OpenStack用户名,用于登录和认证的账号名。export OS_PASSWORD=123#OpenStack用户对应的密码。export OS_PROJECT_NAME=admin#用户名下所属的项目名称。OpenStack以项目为基本管理单元。export OS_USER_DOMAIN_NAME=Default#用户名所在的域名。默认为"Default"。export OS_PROJECT_DOMAIN_NAME=Default#项目所在的域名。默认为"Default"。export OS_AUTH_URL=http://controller:5000/v3#OpenStack认证服务的端点URL,用于用户进行认证。export OS_IDENTITY_API_VERSION=3#指定要使用的OpenStack Identity API版本,默认为3。
密码可以自定义
应用环境变量
source admin-openrc验证操作
验证操作是官方提供的一些用于验证服务是否已成功运行的命令,如果这些命令顺利运行,则表示该服务已正常运行。这些操作可以不做,但为了确保万无一失,建议执行一次这些命令。
身份认证服务为OpenStack每个服务提供身份验证,身份验证需要使用域、项目、用户和角色的组合。
openstack domain create --description "Default Domain" Default解释:
输出如下
-------------+----------------------------------+| Field | Value |+-------------+----------------------------------+| description | Default Domain || enabled | True || id | 2f4f80574fd84fe6ba9067228ae0a50c || name | Default || tags | [] |+-------------+----------------------------------+
创建admin项目
openstack project create --domain default --description "Admin Project" admin解释:
输出如下
+-------------+----------------------------------+| Field | Value |+-------------+----------------------------------+| description | Admin Project || domain_id | default || enabled | True || id | aeda23aa78f44e859900e22c24817832 || is_domain | False || name | admin || parent_id | default || tags | [] |+-------------+----------------------------------+
创建admin用户
openstack user create --domain default --password-prompt admin输出如下
User Password:Repeat User Password:+---------------------+----------------------------------+| Field | Value |+---------------------+----------------------------------+| domain_id | default || enabled | True || id | aeda23aa78f44e859900e22c24817832 || name | admin || options | {} || password_expires_at | None |+---------------------+----------------------------------+
创建admin角色
openstack role create admin输出如下
+-----------+----------------------------------+| Field | Value |+-----------+----------------------------------+| domain_id | None || id | 997ce8d05fc143ac97d83fdfb5998552 || name | admin |+-----------+----------------------------------+
将admin角色添加到admin项目和admin用户上
openstack role add --project admin --user admin admin开发者为OpenStack服务创建唯一用户时,唯一用户需包含在service项目内。
创建service项目
openstack project create --domain default --description "Service Project" service输出如下
+-------------+----------------------------------+| Field | Value |+-------------+----------------------------------+| description | Service Project || domain_id | default || enabled | True || id | 5eaf162fb3b949b9ad57d848629757f1 || is_domain | False || name | service || options | {} || parent_id | default || tags | [] |+-------------+----------------------------------+
开始验证身份令牌,先取消设置认证链接和密码的临时环境变量
unset OS_AUTH_URL OS_PASSWORD验证admin用户的身份令牌
openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue输入密码后,输出如下
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Field | Value |+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| expires | 2021-09-02T06:24:17+0000 || id | gAAAAABhMGABAO1rXsg0rnL2qegdQZjdOZAghyvdMes6GJ9nkbQgTyQDDlP4drW0w901eSj_nQWZk7OxdfB64qhguh4v13majISWXAsp3loVpE2Iyja4puT8_MOH02tsXT9FLprEqAniwiYnSo7-wUUR-sDVZ9Cl0P-3yO5ROOzUqUJ-qCJddxE || project_id | 4c1c66c3a11947bab644b3e7d4abfb01 || user_id | b0b89ee8513a42e281be5aeadad6c699 |+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
相关概念讲解:
来不及解释了,快上车!(进群看公告)

欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。
↓↓↓ 点个在看,你最好看!