OpenStack Victoria搭建(五) Keystone认证服务_mabaishun
介绍
什么是 Keystone
Keystone是 OpenStack Identity Service 的该项目称谓,一个否则信息处理与权限的控件主要功能: 实现用户的身份认证,基于角色的权限管理,及 OpenStack 其他组件的访问地址和安全策略管理。
为什么需要 Keystone
Keystone 该项原则常见原则是给所有 OpenStack 的个个模块(nova,cinder,glance…)供给同一个实行的证实模式 用户管理 Account账户Authentication 身份认证Authorization 授权 服务目录管理术语
User (用户)
一个人、系统或服务在 OpenStack中的数字表示。已经登录的用户分配令牌环以访问资源。用户可以直接分配给特定的租户,就像隶属于每个组。
Credentials (凭证)
用于确认用户身份的数据。例如:用户名和密码,用户名和API key,或由认证服务提供的身份验证令牌。
Authentication(验证)
确认用户身份的过程。
Token(令牌)
一个用于访问 OpenStack API和资源的字母数字字符串。一个临时令牌可以随时撤销,并且持续一段时间有效。
Tenant(租户)
一个组织或孤立资源的容器。租户和可以组织或隔离认证对象。根据服务运营的要求,一个租户可以映射到客户、账户、组织或项目。
Service(服务)
OpenStack服务,例如计算服务(nova),对象存储服务(swift),或镜像服务(glance)。它提供一个或多个端点,共用户访问资源和执行操作。
Endpoing(端点)
一个用于访问某个服务的可以通过网络进行访问的地址,通常是一个URL地址。
Role(角色)
定制化的包含特定用户权限和特权的权限集合。
Keystone Client(keystone命令行工具)
Keystone 的命令行工具。通过该工具可以创建用户、角色、服务和端点等。
keystone与其他组件协同工作流程
keystone是用户与云平台交互的第一个服务,一旦认证通过,用户就会使用自己的身份来访问其他的opnestack服务,同样,被访问的openstack服务会去跟keystone再次确认用户(不能只能用户的片面之词)并且通过keystone可以发现其他服务(catalog的原因),keystone的还可以整合其他的用户管理系统,比如LDAP
keystone工作流程详解
- User从Keystone获取令牌以及服务列表;User访问服务时,亮出自己的令牌。相关的服务向Keystone求证令牌的合法性。
- 用户alice登录keystone系统(password或者token的方式),获取一个临时的token和catalog服务目录(v3版本登录时,如果没有指定scope,project或者domain,获取的临时token没有任何权限,不能查询project或者catalog)。alice通过临时token获取自己的所有的project列表。alice选定一个project,然后指定project重新登录,获取一个正式的token,同时获得服务列表的endpoint,用户选定一个endpoint,在HTTP消息头中携带token,然后发送请求(如果用户知道project name或者project id可以直接第3步登录)。消息到达endpoint之后,由服务端(nova)的keystone中间件(pipeline中的filter:authtoken)向keystone发送一个验证token的请求。(token类型:uuid需要在keystone验证token,pki类型的token本身是包含用户详细信息的加密串,可以在服务端完成验证)keystone验证token成功之后,将token对应用户的详细信息,例如:role,username,userid等,返回给服务端(nova)。服务端(nova)完成请求,例如:创建虚拟机。服务端返回请求结果给alice。
安装和配置
整节课价绍该如何将调节器网络节点上装和安装 OpenStack Identity 服务质量质量,编码为 keystone。始于可扩充性目的性,此安装堡垒机被部署了 Fernet 令牌和 Apache HTTP 服务质量质量器来操作中请。配置数据库
- 使用数据库访问客户端以root用户身份连接数据库服务器:
mysql -u root -p
创建keystone数据库:MariaDB [(none)]> CREATE DATABASE keystone;
授予对keystone数据库的适当访问权限:MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
替换KEYSTONE_DBPASS为合适的密码。退出数据库访问客户端。安装和配置组件
? 笔记
默认配置文件因发行版而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,配置片段中的省略号 ( …) 表示您应该保留的潜在默认配置选项。
- 使用左右强制性来的安装电脑软件包:
yum install openstack-keystone httpd python3-mod_wsgi
? 笔记
对于 RHEL7/Centos7 及以上安装包 mod_wsgi。
[database]
# ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
编辑KEYSTONE_DBPASS为您为数据报告库采用的账号密码。
笔记
注释掉或删除connection该部分中的任何其他选项 [database]。
笔记
在此示例中,主机controller必须是可解析的。
[token]
# ...
provider = fernet
插入角色工作数据信息库: su -s /bin/sh -c "keystone-manage db_sync" keystone
默认化 Fernet 密匙存储器库:
笔记
和标志用于指定将用于运行 keystone 的操作系统的用户/组–keystone-user。–keystone-group提供这些是为了允许在另一个操作系统用户/组下运行 keystone。在下面的示例中,我们调用 user & group keystone。
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
优化个人信息业务:
? 笔记
在 Queens 发布之前,keystone 需要在两个单独的端口上运行以适应 Identity v2 API,后者通常在端口 35357 上运行单独的仅管理员服务。删除 v2 API 后,keystone 可以在同一端口上运行所有接口。
keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url //controller:5000/v3/ \
--bootstrap-internal-url //controller:5000/v3/ \
--bootstrap-public-url //controller:5000/v3/ \
--bootstrap-region-id RegionOne
替代ADMIN_PASS为满足的管理业主的支付密码。 配置 Apache HTTP 服务器
- 文字编辑/etc/httpd/conf/httpd.conf文件夹并搭配 ServerName页面设置以收录调控器时间:
ServerName controller
比如该ServerName要素尚不都存在,则要有获取该要素。 加入/usr/share/keystone/wsgi-keystone.conf材料的联结: ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
SSL
安全保障设置应将 Web 工作器配制为使用的 SSL 或在 SSL 战胜器上边工作。完成安装
- 启动 Apache HTTP 服务并将其配置为在系统启动时启动:
systemctl enable httpd.service
systemctl start httpd.service
通过设置适当的环境变量来配置管理帐户:export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=//controller:5000/v3
export OS_IDENTITY_API_VERSION=3
此处显示的这些值是从创建的默认值。keystone-manage bootstrap替换为keystone-install-configure-rdo中命令中ADMIN_PASS使用的密码 。keystone-manage bootstrap
创建域、项目、用户和角色
Identity 精准功能为没个 OpenStack 精准功能出具个人信息安全查验精准功能。个人信息安全查验精准功能选用域、楼盘、粉丝和人物角色的组成。创建域
openstack domain create --description "An Example Domain" example
创建服务
openstack project create --domain default \
--description "Service Project" service
创建项目
openstack project create --domain default --description "Demo Project" demo
创建用户
openstack user create --domain default --password-prompt demo
创建角色
openstack role create demo
openstack role add --project demo --user demo demo
验证
- 全部取消设计按规定因素值OS_AUTH_URL和OS_PASSWORD 环境因素值:
unset OS_AUTH_URL OS_PASSWORD
有所作为admin手机用户,申请一款身份信息证实令牌: openstack --os-auth-url //controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name admin --os-username admin token issue
openstack --os-auth-url //controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name demo --os-username demo token issue
创建 OpenStack 客户端环境脚本
以前的大部分用到氛围全局变量和控制命令页面设置的搭配依据 openstack用户端与个人身份产品来进行人机交互。成了升高用户端控制的热效率,OpenStack 支撑简单易行的用户端氛围按键精灵脚本制作,也通称 OpenRC 档案。他们按键精灵脚本制作一般性含有每个用户web端专用页面设置,但也支撑特有的页面设置。创建脚本
为项目流程和用户的admin创立潜在客户端下载坏境角本。- 组建并插入图片admin_openrc文本并增添下玩法:
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=//controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
重命名为您在身份信息服务管理中ADMIN_PASS为移动用户admin选择的密码忘了。 组建并我们demo_openrc文件资料并加入下类內容: export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=//controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
重命名为您在身分服务培训中DEMO_PASS为移动用户demo确定的密匙。 使用脚本
要将的服务端充当目标的项目和手机用户调用,您只需在调用她们开始之前调用相互影响的的服务端环境游戏脚本。假如:- 加载文件以使用身份服务的位置以及项目和用户凭据admin-openrc填充环境变量:admin
source ./admin_openrc
请求身份验证令牌:openstack token issue

皇冠新体育APP相关的文章
- 皇冠新体育APP:【Pandas】多种添加行列数据方法_CHD托马斯_pandas添加一列数据
- pandas实现筛选功能方式_*山河万里*_pandas 筛选
- 皇冠新体育APP:python数据分析课后习题_小拇指~_下列不属于数组属性的是
- 皇冠新体育APP:让代码丝滑般跳转,rust-analyzer,你值得拥有_令狐壹冲_rust-analyzer
- 面渣逆袭:JVM经典五十问,这下面试稳了_三分恶
- 韩顺平 2021零基础学Java 学习笔记(1)(自用)_丨shallow丨_韩顺平java笔记
- 【Java 线程系列】一文看懂--并发编程归纳总结_半身风雪
- 皇冠新体育APP批量将csv文件的编码方式转换为UTF-8_牧文山_csv文件编码转换utf8
- 马斯克:虽然我是Rust的粉丝,但我选择C,其次是C++和皇冠新体育APP_冰山406_python 马斯克
- Fuchsia OS简介_最新技术_fuchsiaos
- Pandas操作dataframe对所有列/行求和 ,对指定列/行求和,对某一列/行求和,并添加新的列/行_锵锵锵锵~蒋_dataframe对列求和
- rust axum项目实践_Cassie-lxd_rust开发的项目
- 【Tauri】环境部署及异常处理(致操之过急的程序员)_鸡仔先生
- Java 调用第三方接口方法_胡萝卜★_java调用第三方接口
- 皇冠新体育APP:pandas中如何提取DataFrame的某些列_宁萌Julie_dataframe 取某几列
- ??pandas df.loc[] 与 df.iloc[] 详解及其区别,建议收藏??_小莫_xm_df.iloc