openstack keystone 认证服务
OpenStack Identity 服务提供了用于管理身份验证、授权和服务目录的单点集成。
身份服务通常是用户与之交互的第一个服务。一旦通过身份验证,最终用户就可以使用他们的身份访问其他 OpenStack 服务。同样,其他 OpenStack 服务利用 Identity 服务来确保用户是他们所说的身份,并发现其他服务在部署中的位置。身份服务还可以与一些外部用户管理系统(例如 LDAP)集成。
用户和服务可以使用由 Identity 服务管理的服务目录来定位其他服务。顾名思义,服务目录是 OpenStack 部署中可用服务的集合。每个服务可以有一个或多个端点,每个端点可以是以下三种类型之一:管理员、内部或公共。在生产环境中,出于安全原因,不同的端点类型可能驻留在暴露给不同类型用户的不同网络上。例如,公共 API 网络可能从 Internet 可见,因此客户可以管理他们的云。管理 API 网络可能仅限于管理云基础架构的组织内的操作员。内部 API 网络可能仅限于包含 OpenStack 服务的主机。此外,OpenStack 支持多个区域以实现可扩展性。
RegionOne地区。在身份服务中创建的区域、服务和端点共同构成了部署的服务目录。部署中的每个 OpenStack 服务都需要一个服务条目,其对应的端点存储在 Identity 服务中。这一切都可以在安装和配置身份服务后完成。身份服务包含以下组件:
服务器集中式服务器使用 RESTful 接口提供身份验证和授权服务。驱动程序驱动程序或服务后端集成到集中式服务器。它们用于访问 OpenStack 外部存储库中的身份信息,并且可能已经存在于部署 OpenStack 的基础架构中(例如,SQL 数据库或 LDAP 服务器)。模块中间件模块在使用身份服务的 OpenStack 组件的地址空间中运行。这些模块拦截服务请求,提取用户凭据,并将其发送到集中式服务器进行授权。中间件模块和 OpenStack 组件之间的集成使用 Python Web 服务器网关接口。
User:拥有帐户凭据,与一个或多个项目或域相关联
Group:用户的集合,与一个或多个项目或域相关联
Project:OpenStack 中的所有权单位,包含一个或多个用户
Domain:OpenStack 中的所有权单位,包含用户、组和项目
Role:与许多用户-项目对相关联的一级元数据。
Token:识别与用户或用户和项目关联的凭证
Extras:与用户-项目对关联的键值元数据桶。
Rule:描述执行操作的一组要求。
user:这里指使用openstack的用户,一个用户可以以关联多个tenant(租户)
tenant:租户,这里的租户指openstack上的项目project,或者一个组织;通常一个租户对应一个project或一个组织;
role:角色,这里的角色类似Linux用户里的用户组概念,拥有授权为一个用户为一个角色,那么这个用户就拥有这个角色所对应的权限;
token:令牌,用于认证和授权;这是另一种认证的方式;在openstack中各服务之间通过令牌来做认证的;
service:服务,这个和我们理解的服务一样,没有特别的不一样;
endport:服务端点,通常指服务访问入口;

简单来说,每个openstack服务都需要一个服务条目,其对应的端点存储在 Identity 服务中。这一切都可以在安装和配置身份服务后完成
准备数据库
安装keystone
生成token
配置keystone
初始化身份认证服务的数据库
若数据库配置错误,那么此步骤初始化会失败
初始化Fernet key
配置apache服务
创建
/usr/share/keystone/wsgi-keystone.conf文件的链接启动apache服务
检查配置文件,验证5000端口是否正常启动
早期版本使用的是35357端口,现在T版本可忽略
生成随机密码
自动创建引导身份服务
1、创建默认域
2、创建admin项目
3、创建一个用户admin
4、创建3个角色admin、reader、member
5、创建一个service名为keystone
6、自动注册endpoint,3个端点,公共、私有、管理端点
如果创建错误或多创建了,就要全部删除再重新注册,因为你不知道哪一个是对的哪一个是错的,所以只能全部删除然后重新注册,注册的IP地址写keepalived的VIP,稍后配置haproxy:如果需要修改endpoint节点IP
https://www.xiaopeiqing.com/posts/2160.html
修改环境变量
创建域、项目、用户和角色
创建一个示例域
创建一个service项目
常规(非管理员)任务应使用非特权项目和用户。例如,本指南创建
myproject项目和myuser 用户。创建
myuser用户:创建
myrole角色将
myrole角色添加到myproject项目和myuser用户验证操作
验证前,临时撤消环境变量OS_AUTH_URL和OS_PASSWORD
验证admin用户请求认证令牌
作为
myuser在上一节中创建的用户,请求一个身份验证令牌:可以将admin入myuser用户相关认证配置
加载文件以使用身份服务的位置以及项目和用户凭据
admin-openrc填充环境变量:admin小结
1、keystone没有自身服务,依赖于httpd服务
2、keystone会自动连接数据库,创建相关表
操作 —> keystone <—> 数据库
3、关于keystone扩容,可将keystone此目录/etc/keystone打包传递即将扩容的节点上即可
4、使用脚本认证后,请求令牌使用
openstack token issue5、关于endpoint
数据库查询或者修改地址如下示例
方法一
方法二
直接运行此命令,可覆盖IP端口
如何创建enpoint服务
6、小技巧
关于mysql连接建议填写域名或者VIP,这样便于管理
服务配置 —> 初始化 —> 注册
Loading...
keepalived