Keystone认证服务详细操作流程
第3章 全局服務類部署(上)
3.1 認證服務
3.1.1 服務簡介
做為云操作系統的Keystone認證服務,主要提供兩個功能:
①用戶身份認證:為系統提供是否為合法用戶的判斷功能。對user的管理和保存,管理user的tenant、role、group、domain等,保存user的存放、驗證、令牌管理等。
②服務目錄列表:顯示系統提供的服務列表。其他服務通過keystone來注冊其服務的Endpoint(服務訪問的URL),任何服務之間的相互調用,需要經過keystone的身份驗證來獲得目標服務的Endpoint來找到目標服務。
認證服務中出現的名詞介紹及運行方式:
User用戶:一個使用OpenStack云服務的人、系統或者服務的數字表示。用戶需要登錄,然后被分配token去訪問資源。用戶可以被分配到一個tenant。
Credential用戶證據:用來證明用戶身份的證據,可以是用戶名和密碼、用戶名和API key,或者一個Keystone分配的身份token。
Authentication身份驗證:驗證用戶身份的過程。Keystone服務通過檢查用戶的Credential來確定用戶的身份。最開始,使用用戶名/密碼或者用戶名/API key作為credential。當用戶的credential被驗證后,Keystone會給用戶分配一個authentication token供該用戶后續的請求使用。
Token令牌:一個用于訪問OpenStack API和資源的alpha數字字符串。一個token可能在任何時間被撤銷(revoke),因此其有效期是有限的。OpenStack中,token是和特定的tenant綁定的,因此如果user如果訪問多個tenant的話他就需要多個token。
Tenant租戶:一個用于分組或者隔離資源的容器。一個tenant可能對應一個客戶、賬號、組織或者項目。在OpenStack中,用戶至少必須在一個tenant中。tenant容器的可使用資源的限制成為Tenant Quota,它包括tenant內各子資源的quota。
Service服務:一個OpenStack服務,比如Nova、Swift或者Glance等。每個服務提供一個或者多個endpoint供用戶訪問資源以及進行操作。
Endpoint端點:一個網絡可訪問的服務地址,通過它你可以訪問一個服務,通常是個URL地址。不同region有不同的service endpoint。endpoint告訴也可告訴OpenStack service去哪里訪問特定的service。比如,當Nova需要訪問 Glance服務去獲取image時,Nova通過訪問Keystone拿到Glance的endpoint,然后通過訪問該endpoint去獲取Glance服務。我們可以通過Endpoint的region屬性去定義多個region。Endpoint該使用對象分為三類:①admin url給admin用戶使用。②internal url給OpenStack內部服務使用來跟別的服務通信。③public url其它用戶可以訪問的地址。
3.1.2 服務配置信息
創建keystone數據庫
進入數據庫,運行如下命令。
[root@ljl-controller ~]# mysql -uroot -p000000MariaDB [(none)]> CREATE DATABASE keystone;Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \-> IDENTIFIED BY '000000';Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \-> IDENTIFIED BY '000000';Query OK, 0 rows affected (0.00 sec)認證服務安裝和配置
從yum中安裝認證服務包。
[root@ljl-controller ~]# yum install openstack-keystone httpd mod_wsgi隨機數生成10位數。
[root@ljl-controller ~]# openssl rand -hex 104104bb0055496edc5650配置認證令牌、端點URL、認證API版本。
[root@ljl-controller ~]# export OS_TOKEN=4104bb0055496edc5650[root@ljl-controller ~]# export OS_URL=http://ljl-controller:35357/v3[root@ljl-controller ~]# export OS_IDENTITY_API_VERSION=3配置keystone.conf文件。
[root@ljl-controller ~]# vi /etc/keystone/keystone.conf[DEFAULT]admin_token = 4104bb0055496edc5650…[database]connection = mysql+pymysql://keystone:000000@ljl-controller/keystone…[token]provider = fernet初始化身份認證服務的數據庫,初始化Fernet keys。
[root@ljl-controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone[root@ljl-controller ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone進入數據庫查看同步是否成功。
[root@ljl-controller ~]# mysql -uroot -p000000MariaDB [(none)]> use keystone;MariaDB [keystone]> show tables;??????????????????????????????????????????????? ? ?? ? 圖3-1 keystone數據庫部分信息
配置Apache HTTP服務器
配置httpd.conf文件,添加如下。
[root@ljl-controller ~]# vi /etc/httpd/conf/httpd.confServerName ljl-controller因為mitaka鏡像中本身帶有wsgi-keystone.conf文件,所以只需要移動到/etc/httpd/conf.d/目錄下,重啟HTTP服務即可。
[root@ljl-controller ~]# cp /LJL/mitaka/wsgi-keystone.conf /etc/httpd/conf.d/[root@ljl-controller ~]# systemctl enable httpd.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.[root@ljl-controller ~]# systemctl restart httpd.service創建服務實體和API端點變種
創建服務實體和身份認證服務,每個添加到OpenStack環境中的服務要求一個或多個服務實體和三個認證服務中的API端點變種。
[root@ljl-controller ~]# openstack service create --name krystone --description "OpenStck Identity" identity創建認證服務的三個API端點變種。
[root@ljl-controller ~]# openstack endpoint create --region RegionOne identity public http://ljl-controller:5000/v3 [root@ljl-controller ~]# openstack endpoint create --region RegionOne identity internal http://ljl-controller:5000/v3 [root@ljl-controller ~]# openstack endpoint create --region RegionOne identity admin http://ljl-controller:35357/v3創建認證服務依賴組合
通過如下命令,創建域。
[root@ljl-controller ~]# openstack domain create --description "liujianlin Domain" default為了進行管理的操作,創建admin的項目、用戶和角色,命令如下。
[root@ljl-controller ~]# openstack project create --domain default --description "Admin Project" admin[root@ljl-controller ~]# openstack user create --domain default --password-prompt admin[root@ljl-controller ~]# openstack role create admin添加admin角色到admin用戶上。
[root@ljl-controller ~]# openstack role add --project admin --user admin admin創建service項目,使環境中所有服務都含有用戶自己的服務項目。
[root@ljl-controller ~]# openstack project create --domain default --description "Service Project" service常規(非管理)任務應該使用無特權的項目和用戶。創建一個演示demo項目和用戶。
[root@ljl-controller ~]# openstack project create --domain default --description "Demo Project" demo[root@ljl-controller ~]# openstack user create --domain default --password-prompt demo創建user角色。
[root@ljl-controller ~]# openstack role create user添加user角色到demo用戶上。
[root@ljl-controller ~]# openstack role add --project demo --user demo user3.1.3 驗證功能狀態
用戶請求認證令牌
重置環境變量。
[root@ljl-controller ~]# unset OS_TOKEN OS_URL作為admin用戶,請求認證令牌。
[root@ljl-controller ~]# openstack --os-auth-url http://ljl-controller:35357/v3 \> --os-project-domain-name default --os-user-domain-name default \> --os-project-name admin --os-username admin token issue作為demo用戶,請求認證令牌,這個命令使用demo用戶的密碼和API端口5000,這樣只會允許對身份認證服務API的常規(非管理)訪問。
[root@ljl-controller ~]# openstack --os-auth-url http://ljl-controller:5000/v3 \> --os-project-domain-name default --os-user-domain-name default \> --os-project-name demo --os-username demo token issue創建優化環境變量腳本
前一節中使用環境變量和命令選項的組合通過open stack客戶端與身份認證服務交互。為了提升客戶端操作的效率,OpenStack支持簡單的客戶端環境變量腳本即openrc文件。
創建open stack客戶端環境變量腳本,創建文件admin-openrc、demo-openrc。
[root@ljl-controller ~]# vi /root/admin-openrcexport OS_PROJECT_DOMAIN_NAME=defaultexport OS_USER_DOMAIN_NAME=defaultexport OS_PROJECT_NAME=adminexport OS_USERNAME=adminexport OS_PASSWORD=000000export OS_AUTH_URL=http://ljl-controller:35357/v3export OS_IDENTITY_API_VERSION=3export OS_IMAGE_API_VERSION=2[root@ljl-controller ~]# vi /root/demo-openrcexport OS_PROJECT_DOMAIN_NAME=defaultexport OS_USER_DOMAIN_NAME=defaultexport OS_PROJECT_NAME=demoexport OS_USERNAME=demoexport OS_PASSWORD=000000export OS_AUTH_URL=http://ljl-controller:5000/v3export OS_IDENTITY_API_VERSION=3export OS_IMAGE_API_VERSION=2生效腳本并認證令牌
生效腳本文件,請求認證令牌。
[root@ljl-controller ~]# . admin-openrc[root@ljl-controller ~]# openstack token issue?
本文由阿里云-掩日編輯,有阿里云服務器、數據庫、直播等需求可私信我,官網折上折,阿里更優惠!
————阿里云優惠返現————
????? 1:官網優惠+返現優惠雙享優惠
????? 2:新老賬號都可以,招代理
???? 咨詢:18580699993??(vx同號)
以下為操作流程每步的返回結果圖。
?
本文由阿里云-掩日編輯,有阿里云服務器、數據庫、直播等需求可私信我,官網折上折,阿里更優惠!
————阿里云優惠返現————
1:官網優惠+返現優惠雙享優惠
2:新老賬號都可以,招代理
咨詢:18580699993??(vx同號)
總結
以上是生活随笔為你收集整理的Keystone认证服务详细操作流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis-查询处理一对一和一对多
- 下一篇: 互联网金融风控面试算法知识(一)