OpenStack核心组件-keystone

1. Keystone介绍

  keystone是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证、令牌的发放和校验、服务列表、用户权限的定义等等。云环境中所有的服务之间的授权和认证都需要经过 keystone. 因此 keystone 是云平台中第一个即需要安装的服务。

作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情:

  ?   管理用户及其权限

?     维护 OpenStack Services 的 Endpoint(服务端点)

  ?   Authentication(认证)和 Authorization(鉴权)

例如:

学习 Keystone,得理解下面这些概念:

keystone的相关概念可以以一个城市的酒店服务来举例说明:

酒店就类似于project项目,酒店提供住宿的服务service,user相当于客人,endpoint相当于客人住酒店时的询问的酒店的地址,role为角色,如客人定了个豪华套房,name他就是贵宾,定了标间,他就是普通客人,credentials相当于入住酒店时提供的身份证,酒店前台利用身份证获取身份信息并提供房间,这个过程相当于authentication,办理入住后拿到的房卡相当于token,利用token就可以刷开房间门进行住宿这项service。

 

1> User

  User 指代任何使用 OpenStack 的实体,可以是真正的用户,其他系统或者服务。

  当 User 请求访问 OpenStack 时,Keystone 会对其进行验证。Horizon 在 Identity->Users 管理 User

  admin:openstack平台的超级管理员,负责openstack服务的管理和访问权限

  demo: 常规(非管理)任务应该使用无特权的项目和用户,所有要创建 demo 项目和 demo 用户

除了 admin 和 demo,OpenStack 也为 nova、cinder、glance、neutron 服务创建了相应的   User。 admin 也可以管理这些 User。

2> credentials

Credentials 是 User 用来证明自己身份的信息,可以是:

  用户名/密码

  Token

  API Key

  其他高级方式

3> Authentication

  Authentication 是 Keystone 验证 User 身份的过程。User 访问 OpenStack 时向 Keystone 提交用户名和密码形式的 Credentials,Keystone 验证通过后会给 User 签发一个 Token 作为后续访问的 Credential。

4> Token

  Token 是由数字和字母组成的字符串,User 成功 Authentication 后 Keystone 生成 Token 并分配给 User。

?    Token 用做访问 Service 的 Credential

?    Service 会通过 Keystone 验证 Token 的有效性

?    Token 的有效期默认是 24 小时

5> oject

  Project 用于将 OpenStack 的资源(计算、存储和网络)进行分组和隔离。

根据 OpenStack 服务的对象不同,Project 可以是一个客户(公有云,也叫租户)、部门或者项目组(私有云)。

这里请注意:

  ?  资源的所有权是属于 Project 的,而不是 User。

  ?  在 OpenStack 的界面和文档中,Tenant / Project / Account 这几个术语是通用的,但长期看会倾向使用 Project

?    每个 User(包括 admin)必须挂在 Project 里才能访问该 Project 的资源。 一个User可以属于多个 Project。

?    admin 相当于 root 用户,具有最高权限

Horizon 在 Identity->Projects 中管理 Project

通过 Manage Members 将 User 添加到 Project

 

6> service

  OpenStack 的 Service 包括 Compute (Nova)、Block Storage (Cinder)、Object Storage (Swift)、Image Service (Glance) 、Networking Service (Neutron) 等。每个 Service 都会提供若干个 Endpoint,User 通过 Endpoint 访问资源和执行操作。

7> Endpoint

  Endpoint 是一个网络上可访问的地址,通常是一个 URL。Service 通过 Endpoint 暴露自己的 API。 Keystone 负责管理和维护每个 Service 的 Endpoint。

可以使用下面的命令来查看 Endpoint。

source devstack/openrc admin admin
openstack catalog list

8> Role

  安全包含两部分:Authentication(认证)和 Authorization(鉴权)

  Authentication 解决的是“你是谁?”的问题

  Authorization 解决的是“你能干什么?”的问题

Keystone 借助 Role 实现 Authorization:

  1. Keystone定义Role

  1. 可以为 User 分配一个或多个 Role,Horizon 的菜单为:Identity->Project->ManageMembers

  1. Service 决定每个 Role 能做什么事情 Service 通过各自的 policy.json 文件对 Role 进行访问控制。 下面是 Nova 服务 /etc/nova/policy.json 中的示例:

上面配置的含义是:对于 create、attach_network 和 attach_volume 操作,任何Role的 User 都可以执行; 但只有 admin 这个 Role 的 User 才能执行 forced_host 操作。

   2. OpenStack 默认配置只区分 admin 和非 admin Role。 如果需要对特定的 Role 进行授权,可以修改 policy.json。

Openstack对User的验证除了身份验证,还需要鉴别 User 对某个Service是否有访问权限。Policy用来定义什么角色对应什么权限。对Keystone来说,Policy其实是一个JSON文件,默认是 /etc/keystone/policy.json 。通过Policy,Keystone实现了对User的权限管理。

3. openstack系统基本角色有两个:

一个是管理员admin
         一个是租户_member_

2. Keystone基本架构

  •Token: 用来生成和管理token

  •Catalog:用来存储和管理service/endpoint

  •Identity:用来管理tenant/user/role和验证

  •Policy:用来管理访问权限

3. 通过例子认识Keystone

  可以通过“查询可用 image”这个实际操作让大家对这些概念建立更加感性的认识。User admin 要查看 Project 中的 image

第 1 登录

  当点击
时,OpenStack 内部发生了哪些事情?请看下面

  Token 中包含了 User 的 Role 信息

第 2 显示操作界面

  请注意,顶部显示 admin 可访问的  Project 为 “admin” 和 “demo”。 其实在此之前发生了一些事情:

  同时,admin 可以访问 Intance, Volume, Image 等服务

  这是因为 admin 已经从 Keystone 拿到了各 Service 的 Endpoints

第 3 显示 image 列表

  点击 “Images”,会显示 image 列表

背后发生了这些事:

  首先 admin 将请求发送到 Glance 的 Endpoint

  Glance 向 Keystone 询问 admin 身份是否有效

  接下来 Glance 会查看 /etc/glance/policy.json 判断 admin 是否有查看 image 的权限

  权限判定通过,Glance 将 image 列表发给 admin。

Troubleshoot

OpenStack 排查问题的方法主要是通过日志。每个 Service 都有自己的日志文件。

  Keystone 主要有两个日志: keystone.log 和 keystone_access.log,保存在 /var/log/apache2/ 目录里。devstack 的 screen 窗口已经帮我们打开了这两个日志。 可以直接查看:

  如果需要得到最详细的日志信息,可以在 /etc/keystone/keystone.conf 中打开 debug 选项。

  在非 devstack 安装中,日志可能在 /var/log/keystone/ 目录里。

4. 部署keystone

4.1 部署共享服务

  可以通过访问OpenStack的官网:https://docs.openstack.org/stein/ ,中文版的操作手册版本只有M版本,因此用英文版来操作选择ocata版本来进行部署。

进入ocata版本后下拉选择installation Guides,进入后选择centos环境进行操作。

进入操作手册后可以选择在线看,也可以选择下载PDF看。

  选择在线观看,进入操作手册界面。

  但由于官网下载速度较慢,此处实验使用内网从已下载的网页资源进行部署,部署内容与官网操作一致。在终端192.168.16.66上部署,部署是要善用虚拟机快照。

1> 对OpenStack所用到的四台终端均进行域名解析。

[[email protected] ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.65 ajy5
192.168.16.66 ajy6
192.168.16.68 ajy8
192.168.16.69 ajy9

2> 选择Environment,在生产环境中NTP服务是一定要部署的,但在实验环境中为了节省时间,直接进行OpenStack package 部署。部署过程按照官网步提供的骤进行即可。

3> 根据官网提示,先进行centos环境里OpenStack源的配置。

也可以直接使用内网已经准备好的源。

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# ls
Centos7-Base-yunwei.repo  rdo-release-yunwei.repo    epel-yunwei.repo    

4> 安装OpenStack client的安装包

  安装之前确保防火墙和selinux是关闭的。

yum install python-openstackclient

5> 安装OpenStack selinux的扩展包。

[[email protected] ~]#  yum install openstack-selinux -y

6> 部署数据库

  1) 安装

[[email protected] ~]#  yum install openstack-selinux -y

  2) 编辑数据库配置文件

[[email protected] ~]# cd /etc/my.cnf.d/
[[email protected] my.cnf.d]# ls
auth_gssapi.cnf  enable_encryption.preset  mysql-clients.cnf
client.cnf       mariadb-server.cnf        tokudb.cnf

  默认数据库配置文件为mariadb-server.cnf,此处不使用默认的配置文件,新建一个openstack.cnf的配置文件,使用官方模板

[[email protected] my.cnf.d]# vim openstack.cnf
[mysqld]
bind-address = 192.168.16.66               #监听地址改为本地主机地址
default-storage-engine = innodb            #默认引擎
innodb_file_per_table = on                 #过滤规则
max_connections = 4096                     #最大连接数
collation-server = utf8_general_ci         #字符集
character-set-server = utf8

  3) 启动数据库,并开机自启

[[email protected] my.cnf.d]# systemctl start mariadb.service
[[email protected] my.cnf.d]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

  4) 数据库初始化

[[email protected] my.cnf.d]# mysql_secure_installation
.........
[[email protected] my.cnf.d]# mysql -uroot -p123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.1.20-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

7> 部署消息队列

  1) 安装RabbitMQ

[[email protected] my.cnf.d]# yum install rabbitmq-server

  2) 启动消息队列服务并开机自启

[[email protected] ~]# systemctl start rabbitmq-servre.service
Failed to start rabbitmq-servre.service: Unit not found.        #重启失败,删除多于的缓存文件再启动
[[email protected] ~]# cd /var/lib/rabbitmq/
[[email protected] rabbitmq]# ls
erl_crash.dump  mnesia
[[email protected] rabbitmq]# rm -rf *
[[email protected] ~]# systemctl start rabbitmq-server.service
[[email protected] ~]# systemctl enable rabbitmq-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.

  3) 添加用户OpenStack,并给予权限

[[email protected] ~]# rabbitmqctl add_user openstack 123
Creating user "openstack" ...
[[email protected] ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...

8> 部署Memcache

  1) 下载安装

[[email protected] ~]# yum install memcached python-memcached -y

  2) 编辑mamcache配置文件

[[email protected] ~]# vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1,ajy6"    #添加主机名或主机ip均可

  3) 启动Memcache服务

[[email protected] ~]# systemctl start memcached.service
[[email protected] ~]# systemctl enable memcached.service
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.

4.2 部署身份认证服务

1> 登录数据库,创建keystone数据库

[[email protected] ~]# mysql -uroot -p123
MariaDB [(none)]> create database keystone;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| keystone           |
| mysql              |
| performance_schema |
+--------------------+

2> 给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‘;
MariaDB [(none)]> exit
Bye

3> 安装keystone服务

[[email protected] ~]# yum install openstack-keystone httpd mod_wsgi -y

keystone没有自己单独的服务,只是一个人软件包,keystone通过加载mod_wsgi模块调用http来对外服务。

4> 修改keystone的配置文件

[[email protected] ~]# cd /etc/keystone/
[[email protected] keystone]# ls
default_catalog.templates  logging.conf
keystone.conf              policy.json
keystone-paste.ini         sso_callback_template.html

# 删除keyston.conf所有文件按照官方文档重新配置,所以配置之前先备份。
[[email protected] keystone]# cp keystone.conf keystone.conf.bak
[[email protected] keystone]# vim keystone.conf                             #编辑配置端,大部分默认段是空的,只修改两处:主机和令牌提供者的插件
[DEFAULT]

[assignment]

[auth]

[cache]

[catalog]

[cors]

[cors.subdomain]

[credential]

[database]
connection = mysql+pymysql://keystone:[email protected]/keystone  #已做过域名解析可以写主机名,也可以写主机ip
[domain_config]

[endpoint_filter]

[endpoint_policy]

[eventlet_server]

[federation]

[fernet_tokens]

[healthcheck]

[identity]

[identity_mapping]

[kvs]

[ldap]

[matchmaker_redis]

[memcache]

[oauth1]

[oslo_messaging_amqp]

[oslo_messaging_kafka]

[oslo_messaging_notifications]

[oslo_messaging_rabbit]

[oslo_messaging_zmq]

[oslo_middleware]

[oslo_policy]

[paste_deploy]

[policy]

[profiler]

[resource]

[revoke]

[role]

[saml]

[security_compliance]

[shadow_users]

[signing]

[token]                            #令牌由插件fernet提供

provider = fernet

[tokenless_auth]

[trust]

5> 同步数据库

[[email protected] ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

  同步数据库后查看导入到数据库的表,有表存在则同步成功。

[[email protected] ~]# mysql -uroot -p123
MariaDB [(none)]> use keystone
MariaDB [keystone]> show tables;
+------------------------+
| Tables_in_keystone     |
+------------------------+
| access_token           |
| assignment             |
| config_register        |
| consumer               |
| credential             |
| endpoint               |
| endpoint_group         |
| federated_user         |
| federation_protocol    |
| group                  |
| id_mapping             |
| identity_provider      |
| idp_remote_ids         |
| implied_role           |
| local_user             |
| mapping                |
| migrate_version        |
| nonlocal_user          |
| password               |
| policy                 |
| policy_association     |
| project                |
| project_endpoint       |
| project_endpoint_group |
| region                 |
| request_token          |
| revocation_event       |
| role                   |
| sensitive_config       |
| service                |
| service_provider       |
| token                  |
| trust                  |
| trust_role             |
| user                   |
| user_group_membership  |
| user_option            |
| whitelisted_config     |
+------------------------+
38 rows in set (0.00 sec)
MariaDB [keystone]> exit
Bye

6> 用fernet设置token

[[email protected] ~]#  keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
[[email protected] ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

7> 设置keystone服务端点并设置admin用户密码

[[email protected] ~]# keystone-manage bootstrap --bootstrap-password admin \   #用户密码为admin
>   --bootstrap-admin-url http://ajy6:35357/v3/ \                       #管理网,端口为35357
>   --bootstrap-internal-url http://ajy6:5000/v3/ \                     #内网,端口为5000
>   --bootstrap-public-url http://ajy6:5000/v3/ \                       #公共网,端口为5000
>   --bootstrap-region-id RegionOne                                     #工作域

8> 配置http服务,加入主机名

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
#ServerName www.example.com:80
ServerName ajy6

9> 创建插件wsgi调用http的链接

[[email protected] ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
[[email protected] ~]# cd /etc/httpd/conf.d/
[[email protected] conf.d]# ll
lrwxrwxrwx 1 root root   38 Jun 29 02:55 wsgi-keystone.conf -> /usr/share/keystone/wsgi-keystone.conf

10> 启动httpd服务,则将keystone服务启动

[[email protected] ~]# systemctl start httpd
[[email protected] ~]# systemctl enable  httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

11> 配置admin用户的环境变量。

  在命令行要控制OpenStack环境必须进行登录,因此需要在命令将OpenStack admin身份信息设置为环境变量,宣告admin身份信息。

环境变量保存在/root/openrc下面,文件名openrc自定义。

[[email protected] ~]# pwd
/root
[[email protected] ~]# vim openrc
export OS_USERNAME=admin                    #用户
export OS_PASSWORD=admin                    #密码
export OS_PROJECT_NAME=admin                #项目
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://ajy6:35357/v3     #主机
export OS_IDENTITY_API_VERSION=3

执行文件脚本,宣告环境变量

[[email protected] ~]# sh openrc
#或者用命令source
[[email protected] ~]# source openrc

  宣告完成后就相当于在图形界面使用账户密码登录OpenStack,因此可以使用openstack 命令了。

#查看OpenStack里面的用户
[[email protected] ~]# openstack user list
+----------------------------------+-------+
| ID                               | Name  |
+----------------------------------+-------+
| 4a3f3226d6a74669a23da16b623c386c | admin |
+----------------------------------+-------+

4.3 创建一个domain

1> 创建一个服务项目

[[email protected] ~]# openstack project create --domain default >   --description "Service Project" service          #创建一个service项目,默认在domain域
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Service Project                  |
| domain_id   | default                          |
| enabled     | True                             |
| id          | 6338a2d46b78461fb172e3f5a4774482 |
| is_domain   | False                            |
| name        | service                          |
| parent_id   | default                          |

查看项目列表

[[email protected] ~]# openstack project list
+----------------------------------+---------+
| ID                               | Name    |
+----------------------------------+---------+
| 6338a2d46b78461fb172e3f5a4774482 | service |
| 9856add5c8ad499b8b7e07b2d8cf0c0d | admin   |
+----------------------------------+---------+

2> 创建demo项目

[[email protected] ~]# openstack project create --domain default >   --description "Demo Project" demo
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Demo Project                     |
| domain_id   | default                          |
| enabled     | True                             |
| id          | a617fd3550a74b039ceec50afec1e370 |
| is_domain   | False                            |
| name        | demo                             |
| parent_id   | default                          |
+-------------+----------------------------------+
[[email protected] ~]# openstack project list
+----------------------------------+---------+
| ID                               | Name    |
+----------------------------------+---------+
| 6338a2d46b78461fb172e3f5a4774482 | service |
| 9856add5c8ad499b8b7e07b2d8cf0c0d | admin   |
| a617fd3550a74b039ceec50afec1e370 | demo    |
+----------------------------------+---------+

3> 创建demo用户

[[email protected] ~]#  openstack user create --domain default >   --password-prompt demo
User Password:                     #为方便记忆,用户和密码均为demo
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | fca9c0d1f4fb4524a25ee8562794f6c0 |
| name                | demo                             |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[[email protected] ~]# openstack user list
+----------------------------------+-------+
| ID                               | Name  |
+----------------------------------+-------+
| 4a3f3226d6a74669a23da16b623c386c | admin |
| fca9c0d1f4fb4524a25ee8562794f6c0 | demo  |
+----------------------------------+-------+

#删除用户用命令 user delete
[[email protected] ~]# openstack user delete demo
[[email protected] ~]# openstack user list
+----------------------------------+-------+
| ID                               | Name  |
+----------------------------------+-------+
| 4a3f3226d6a74669a23da16b623c386c | admin |
+----------------------------------+-------+

#重新创建用户demo,直接在添加的时候写入密码
[[email protected] ~]#  openstack user create --domain default   --password=demo demo
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | a5b7806347f04a839e5f87098c45e8b1 |
| name                | demo                             |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

4> 创建角色user

[[email protected] ~]# openstack role list
+----------------------------------+----------+
| ID                               | Name     |
+----------------------------------+----------+
| 6a7c42942f1a4a3881c1b89f0052de38 | admin    |
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
+----------------------------------+----------+
[[email protected] ~]# openstack role create user
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | None                             |
| id        | 58e8774b5b01404bbbc1feec776abcfe |
| name      | user                             |
+-----------+----------------------------------+
[[email protected] ~]# openstack role list
+----------------------------------+----------+
| ID                               | Name     |
+----------------------------------+----------+
| 58e8774b5b01404bbbc1feec776abcfe | user     |
| 6a7c42942f1a4a3881c1b89f0052de38 | admin    |
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
+----------------------------------+----------+

5> 将角色user添加到demo项目的demo用户

[[email protected] ~]# openstack role add --project demo --user demo user

原文地址:https://www.cnblogs.com/ajunyu/p/11106186.html

时间: 2024-10-31 17:46:36

OpenStack核心组件-keystone的相关文章

OpenStack核心组件原理与应用之Keystone

认证服务介绍 在 OpenStack核心组件原理与应用一文中,我们介绍了OpenStack的架构及安装前的准备工作,这篇我们来完成 OpenStack 第一个服务--认证服务的部署.上篇"服务与项目名称对照表"中,认证服务的 Service 名字为"Identity Service",项目名称为"Keystone",主要功能是为 OpenStack 集群中的其他组件提供认证和授权服务.它能列出所有 OpenStack 服务的端点目录.其它服务将身

OpenStack总体架构概览&OpenStack核心组件介绍

下面个是51CTO上一位朋友发布的O版OpenStack核心组件说明,总结的非常到位,所以我就不再造轮子了.~,~ https://down.51cto.com/data/2448945 私有云 公有云 混合云 IaaS(基础架构即服务):OpenStack,CloudStack PaaS(平台即服务):Docker,Openshift SaaS(服务即服务):主要面对终端用户,可通过一个浏览器就可以实现使用任何应用,而无需安装. DBaaS(Database as a Service) FWa

58 Openstack基础、openstack之glance、openstack之keystone

03 openstack之keystone 配置环境 Controller CentOS release 6.7 controller eth0:仅主机 192.168.28.121 eth1:桥接 192.168.1.121 node2 192.168.1.122 CentOS release 6.7 compute1 eth0:仅主机,eth1:VMnet2 不会直接与外部网络通信 node3 192.168.1.123 CentOS release 6.7 networking eth0:

【N版】openstack——认证服务keystone(三)

[N版]openstack--认证服务keystone 一.keystone介绍 1.1keystone Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证.服务规则和服务令牌功能的模块.用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone 来处理. 用户认证:用户权限与用户行为跟踪 服务目录:提供一个服务目录,包括所有服务项与相关API的端点 主要涉及如下概念: User:  

OpenStack 认证服务 KeyStone [二]

 openstack认证服务Keystone 介绍 Keystone作用: 1.用户与认证:用户权限与用户行为跟踪: 2.服务目录:提供一个服务目录,包括所有服务项和相关Api的断点 3.SOA相关知识 Keystone主要两大功能用户认证 服务目录(相当于一个注册中心) 用户认证几大名词介绍 User:用户  它是用一个数字代表使用openstack云服务的一个人.系统.或服务.身份验证服务将会验证传入的由用户声明将调用的请求  一个租户可以有多个用户  一个用户可以属于一个或多个租户  用户

OpenStack之Keystone模块

一.Keystone介绍 OpenStack Identity(Keystone)服务为运行OpenStack Compute上的OpenStack云提供了认证和管理用户.帐号和角色信息服务,并为OpenStack Object Storage提供授权服务. OpenStack的身份服务提供了集成的管理身份验证,授权和服务目录服务的单点,其他的OpenStack服务使用的身份服务作为一个通用统一的API,此外,提供有关用户的信息,但该服务不包括开栈(如LDAP服务)可以被集成到一个预先存在的基础

在安装Openstack的keystone认证服务时,出现The request you have made requires authentication. (HTTP 401) (Request-ID: req-f94bebba-f0c5-4a92-85问题的处理

创建openstack的keystone认证服务器报错: The request you have made requires authentication. (HTTP 401) (Request-ID: req-f94bebba-f0c5-4a92-85 处理方法: #openssl rand -hex 10                 //随机获取一个值 c833dac455762a01542a #vi /etc/keystore/keystore.conf [admin_token]

openstack之keystone

keystone在openstack中充当认证作用 用户与认证:用户权限和用户行为跟踪 服务目录:提供一个服务目录,包括所有服务项和API端点 1.安装keystone yum install openstack-keystone httpd mod_wsgi python-openstackclient memcached python-memcached -y [[email protected] ~]# systemctl enable memcached.service Created

OpenStack 认证服务 KeyStone 服务注册(五)

创建服务实体和API端点 创建服务 openstack service create --name keystone --description "OpenStack Identity" identity 创建endpoint OpenStack使用三个API端点变种代表每种服务:admin,internal和public.默认情况下,管理API端点允许修改用户和租户而公共和内部APIs不允许这些操作.在生产环境中,处于安全原因,变种为了服务不同类型的用户可能驻留在单独的网络上.对实例