赞
踩
目录
OpenStack:term:`Identity service`为认证管理,授权管理和服务目录服务管理提供单点整合。其它OpenStack服务将身份认证服务当做通用统一API来使用。此外,提供用户信息但是不在OpenStack项目中的服务(如LDAP服务)可被整合进先前存在的基础设施中。
为了从identity服务中获益,其他的OpenStack服务需要与它合作。当某个OpenStack服务收到来自用户的请求时,该服务询问Identity服务,验证该用户是否有权限进行此次请求
身份服务包含这些组件:
服务器:
一个中心化的服务器使用RESTful 接口来提供认证和授权服务。
驱动:
驱动或服务后端被整合进集中式服务器中。它们被用来访问OpenStack外部仓库的身份信息, 并且它们可能已经存在于OpenStack被部署在的基础设施(例如,SQL数据库或LDAP服务器)中。
模块:
中间件模块运行于使用身份认证服务的OpenStack组件的地址空间中。这些模块拦截服务请求,取出用户凭据,并将它们送入中央是服务器寻求授权。中间件模块和OpenStack组件间的整合使用Python Web服务器网关接口。
当安装OpenStack身份服务,用户必须将之注册到其OpenStack安装环境的每个服务。身份服务才可以追踪那些OpenStack服务已经安装,以及在网络中定位它们。
创建数据库
- mysql -u root -p
- CREATE DATABASE keystone;
- GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
- IDENTIFIED BY 'keystone';
- GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
- IDENTIFIED BY 'keystone';
生成一个随机值在初始的配置中作为管理员的令牌。
openssl rand -hex 10
安装包:
yum install openstack-keystone httpd mod_wsgi
编辑文件:
vim /etc/keystone/keystone.conf
使用前面步骤生成的随机数替换``ADMIN_TOKEN`` 值
初始化身份认证服务的数据库:
su -s /bin/sh -c "keystone-manage db_sync" keystone
初始化Fernet keys:
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
编辑
- vim /etc/httpd/conf/httpd.conf
- ServerName controller
创建文件
- vim /etc/httpd/conf.d/wsgi-keystone.conf
-
- Listen 5000
- Listen 35357
-
- <VirtualHost *:5000>
- WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
- WSGIProcessGroup keystone-public
- WSGIScriptAlias / /usr/bin/keystone-wsgi-public
- WSGIApplicationGroup %{GLOBAL}
- WSGIPassAuthorization On
- ErrorLogFormat "%{cu}t %M"
- ErrorLog /var/log/httpd/keystone-error.log
- CustomLog /var/log/httpd/keystone-access.log combined
-
- <Directory /usr/bin>
- Require all granted
- </Directory>
- </VirtualHost>
-
- <VirtualHost *:35357>
- WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
- WSGIProcessGroup keystone-admin
- WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
- WSGIApplicationGroup %{GLOBAL}
- WSGIPassAuthorization On
- ErrorLogFormat "%{cu}t %M"
- ErrorLog /var/log/httpd/keystone-error.log
- CustomLog /var/log/httpd/keystone-access.log combined
-
- <Directory /usr/bin>
- Require all granted
- </Directory>
- </VirtualHost>
启动 Apache HTTP 服务并配置其随系统启动:
systemctl enable --now httpd.service
- export OS_TOKEN=643dd9423324699e8143
- export OS_URL=http://controller:3535
- export OS_IDENTITY_API_VERSION=37/v3
创建服务实体和身份认证服务:
- openstack service create \
- --name keystone --description "OpenStack Identity" identity
创建认证服务的 API 端点:
- openstack endpoint create --region RegionOne \
- identity public http://controller:5000/v3
- openstack endpoint create --region RegionOne \
- identity internal http://controller:5000/v3
- openstack endpoint create --region RegionOne \
- identity admin http://controller:35357/v3
创建域``default``:
openstack domain create --description "Default Domain" default
创建 admin 项目
- openstack project create --domain default \
- --description "Admin Project" admin
创建 admin 用户:
- openstack user create --domain default \
- --password admin admin
创建 admin 角色:
openstack role create admin
添加``admin`` 角色到 admin 项目和用户上:
openstack role add --project admin --user admin admin
创建``service``项目:
- openstack project create --domain default \
- --description "Service Project" service
创建``demo`` 项目:
- openstack project create --domain default \
- --description "Demo Project" demo
创建``demo`` 用户:
- openstack user create --domain default \
- --password demo demo
创建 user 角色:
openstack role create user
添加 user``角色到 ``demo 项目和用户:
openstack role add --project demo --user demo user
重置``OS_TOKEN``和``OS_URL`` 环境变量:
unset OS_TOKEN OS_URL
作为 admin demo 用户,请求认证令牌:
- openstack --os-auth-url http://controller:35357/v3 \
- --os-project-domain-name default --os-user-domain-name default \
- --os-project-name admin --os-username admin token issue
-
- openstack --os-auth-url http://controller:5000/v3 \
- --os-project-domain-name default --os-user-domain-name default \
- --os-project-name demo --os-username demo token issue
1、创建脚本
admin-openrc
- vim 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=http://controller:35357/v3
- export OS_IDENTITY_API_VERSION=3
- export OS_IMAGE_API_VERSION=2
-
- vim 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=http://controller:5000/v3
- export OS_IDENTITY_API_VERSION=3
- export OS_IMAGE_API_VERSION=2
2、使用脚本
- . admin-openrc
- . demo-openrc
- openstack token issue
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。