1. 程式人生 > >Keystone身份認證--主要總結Role的相關配置

Keystone身份認證--主要總結Role的相關配置

使用者管理 三個概念TenantUserRole

Tenant:用來分組或隔離資源或身份物件的容器,根據服務運營商,租戶可以對映成一個客戶,賬號,組織或專案。

    User:使用OpenStack雲服務的人,系統,服務的數字表示.驗證使用者傳入的請求.使用者登入可能被賦予訪問資源的令牌.使用者可能直接被指定給一個特定租戶,好像使用者在這個租戶中一樣,使用者可以在這個租戶中充當一個角色,在另一個租戶中扮演其他角色。

    Role:可執行一特定系列操作的使用者特性。角色包括一系列權利和特權。使用者可繼承其所屬角色的權利和特權。在身份服務中,頒發給使用者的令牌包括使用者能承擔的角色列表。

這個使用者呼叫的服務決定他們怎樣解釋這個使用者所屬的角色,以及每個角色授予訪問的操作和資源

              

以上圖為摘自社群的文件

解釋下這個過程,list intsances為例,從通過

當我們使用dashborad時我們知道登陸的時候提供了使用者名稱密碼, 後面的處理流程如下

    第一步:用這個使用者名稱密碼獲取臨時Token和使用者基本資訊

    第二步:用這個token去查詢這個使用者的租戶資訊,

    第三步:選擇一個租戶, 這時重新向keystone請求token和服務endpoint列表

    第四步:這時開始利用新的token, 選擇向相應服務的endpoint發出請求,如本例就是'http://10.0.0.13:8774/v2/070911b880444bd7adf1796acb780ec8/servers/detail', 這是service會檢查token

    第五步:檢查是不是有許可權, 這就是role policy發揮作用的地方了

    第六步:檢查通過後, 開始執行請求

    第七步:返回結果

應用

1、 建立使用者,即為使用者。

usage:keystone user-create --name <user-name> [--tenant-id<tenant-id>] [--pass<pass>] [--email <email>][--enabled<true|false>]

keystone user-create --name=chenxiao --pass=Passw0rd

[email protected]

2、租戶主要為了隔離資源, 可視為一個project,群組。當你向openstack傳送REST API請求,你必須指定一個租戶tenant

usage:keystone tenant-create --name <tenant-name>[--description<tenant-description>] [--enabled<true|false>]

keystone tenant-create --name=openstackteam --description="openstack team tenant"

3、建立了使用者和租戶,那使用者在這個租戶裡面扮演什麼樣的角色,擁有什麼樣的許可權,這就需要role定義了,賦予chenxiao在租戶openstackteam中role為computerole。

usage:keystone role-create --name <role-name>

keystone role-create –name=computerole

role的建立非常簡單, 當時讓它生效, 還需要配置各個模組中的policy.json檔案, 這個檔案中可以指定相關的功能什麼樣的role可以有許可權執行。

openstack中role的相關配置都在/etc/{componentname}/policy.json中,對應關係如下表所示

nova

/etc/nova/policy.json

keystone

/etc/keystone/policy.json

glance

/etc/glance/policy.json

neutron

/etc/neutron/policy.json

cinder

/etc/cinder/policy.json

heat /etc/heat/policy.json
ceilometer /etc/ceilometer/policy.json

這些檔案預設情況下會提供admin角色許可權,在配置中標示不需要admin許可權的服務表示此租戶下的其他使用者都可以訪問。

配置檔案的格式為json的書寫樣式,以/etc/nova/policy.json為例,如下

{

"context_is_admin": [["role:admin"]],

"admin_or_owner": [["is_admin:True"], ["project_id:%(project_id)s"]],

"default":[["rule:admin_or_owner"]],

"compute:create":[],

"compute:create:attach_network":[],

"compute:create:attach_volume":[],

"compute:get_all":[],

"admin_api":[["is_admin:True"]],

"compute_extension:accounts":[["rule:admin_api"]],

"compute_extension:admin_actions":[["rule:admin_api"]],

"compute_extension:admin_actions:pause":[["rule:admin_or_owner"]],

"compute_extension:admin_actions:unpause":[["rule:admin_or_owner"]],

"compute_extension:admin_actions:suspend":[["rule:admin_or_owner"]],

"compute_extension:admin_actions:resume":[["rule:admin_or_owner"]],

"compute_extension:admin_actions:lock":[["rule:admin_api"]],

....

}

回到建立的computerole中,在nova服務中定義此role,在/etc/nova/policy.json中,做如下修改

"compute:create":["role":"computerole"],

"compute:create:attach_network":["role":"computerole"],

"compute:create:attach_volume":["role":"computerole"],

"compute:get_all":["role":"computerole"],

這樣就定義好了computerole的許可權集合,接下來賦予使用者chenxiao在openstackteam租戶中享有computerole許可權

命令如下

usage:keystone user-role-add --user-id <user-id> --role-id <role-id> [--tenant-id<tenant-id>]

keystoneuser-role-add --user-id=ee31970eb71d444db72381a9542a3b8e --role-id=289b86c57515434e8357a59b6bb95043 --tenant-id=1c5e913ef6074c44acac9a59af246872

至此一個完整的使用配置就此完成

Note:

1.一個使用者可以處在多個租戶中,可以在不同租戶中扮演不同的角色,也可以在一個租戶中扮演多個角色

2.當建立一些資源時,指定了特定的租戶,這時,這些資源只能被這個租戶下的使用者所使用

TroubleShoting:

1.當建立一個使用者,沒有分給任何一個租戶,

這時登陸horizon時會報錯You are not authorized for any projects.

2.各個服務中須設定[filter:authtoken],nova中,需設定具有admin role的使用者及其tenant.

在此需設定項在keystone中已經存在

相關推薦

Keystone身份認證--主要總結Role相關配置

使用者管理 三個概念Tenant,User,Role Tenant:用來分組或隔離資源或身份物件的容器,根據服務運營商,租戶可以對映成一個客戶,賬號,組織或專案。     User:使用OpenStack雲服務的人,系統,服務的數字表示.驗證使用者傳入的請求.使用者登入可能

Keystone身份認證服務

1.keystone 一.Keystone 做下面這幾件事情:  &nb

雲計算OpenStack:keystone身份認證服務(二)--技術流ken

pre 查看 keys sym com col 分享圖片 lis 查詢 Keystone介紹 keystone 是OpenStack的組件之一,用於為OpenStack家族中的其它組件成員提供統一的認證服務,包括身份驗證、令牌的發放和校驗、服務列表

keystone身份認證服務

Keystone介紹   keystone 是OpenStack的元件之一,用於為OpenStack家族中的其它元件成員提供統一的認證服務,包括身份驗證、令牌的發放和校驗、服務列表、使用者許可權的定義等等。雲環境中所有的服務之間的授權和認證都需要經過 keystone. 因此 keystone 是雲平臺中第

SharePoint 2013 配置基於表單的身份認證

framework 中心 fig token borde 和數 說明 ember 選擇 前 言  這裏簡介一下為SharePoint 2013 配置基於表單的身份認證。簡單的說,就是用Net提供的工具創建數據庫。然後配置SharePoint 管理中心、STS服務、Web應

Linux學習總結(四十四)lnmp之php-fpm相關配置

lnmp pool open_basedir error_log 慢執行日誌 1 php-fpm的進程pool 之前我們在nginx 配置文件裏加入了一句 include vhost/*.conf; 然後實現了各個虛擬主機的隔離,php-fpm 作為一個獨立的服務,有沒有類似的操作呢?

配置squid整合域身份認證

終於有時間測試一下squid的域身份認證了,之前一直使用iptables來通過IP地址做的代理訪問許可權控制,而使用哪種方法是根據各個公司內部的具體需求來決定的。 首先明確一下需求,配置squid使它能支援域使用者認證,如果可能的話,使用整合windows身份認證,這樣域使用者登入計算機後,不需要輸入密碼就

配置squid集成域身份認證

username req dma 之前 domain 相差 ring nss 修改dns 終於有時間測試一下squid的域身份認證了,之前一直使用iptables來通過IP地址做的代理訪問權限控制,而使用哪種方法是根據各個公司內部的具體需求來決定的。 首先明確一下需求,配

將james配置為需要身份認證的smtp伺服器

                   將james配置為需要身份認證的smtp伺服器   轉載:http://www.west.cn/www/info/63094-1.htm S

微信小程式小白總結全攻略4-伺服器(windows OS)簡易搭建和相關配置

廢話少敘,切入正題。     作為微信小程式後端的“核心”,伺服器搭建這一步至關重要,而且操作繁雜,需要有耐心而且會查閱,下面將提供一種簡單有效的簡易的微信小程式伺服器從零搭建和相關配置方法。 一、伺服器的購買      同域名一樣,如

http相關的session及cookie的工作原理與身份認證

型別選原創是有點慚愧 其實是我看了這篇文章的總結:http://blog.csdn.net/kgd1120/article/details/2159458 寫得很好,就是略長,後面java的httpsession我就沒看了 正題: 經常上98什麼的時候,發現只要不點退出,

VS2015相關配置總結

一、設定lib庫檔案路徑 二、工程匯入庫,使用庫的函式(兩種方法) 1.程式碼C或者CPP檔案中輸入以下程式碼 #pragma comment(lib,"avformat.lib") #pragma comment(lib,"avcodec.lib") #pragma c

eclipse 中Tomcat的相關配置操作總結之45秒啟動限制

1.修改Tomcat的45秒啟動超時:1.1到eclipse的工作空間,找到工作空間中.metadata/.plugins/org.eclipse.wst.server.core目錄中的servers.xml檔案,修改servers.xml,eg:F:\java_worksp

ftp身份認證時登入框反覆彈出以及ftp常用配置

1.若我們想訪問一個人的ftp站點,直接通過瀏覽器直接訪問就可以了(ftp://要訪問主機A的IP地址)。如果對方開啟了基本身份認證的話,我們就需要輸入正確的使用者名稱及密碼才可正常訪問,即主機A開啟了基本身份認證。如下圖所示: 當主機B通過瀏覽器訪問時就會有驗證提示,如

TFT LCD控制顯示總結(硬體概念、初始化相關配置

01  void lcd_init(unsigned char pic_mode) 02  { 03      //配置LCD相關引腳 04      GPCUP = 0x00000000; 05      GPCCON = 0xaaaa02a9; 06      GPDUP = 0x00000000; 07

Linux下nagios的搭建及相關配置

linux下nagios的搭建及相關配置一、LAMP環境部署1、安裝php 1.安裝yum源 rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh http://rpm

mysql在linux7下systemd的相關配置

scripts multi time tails cst ffi receive oot ons ---- # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. # #

在 eclipse中 創建 web 版的 maven 工程以及 進一步了解 pom.xml 中 scope 的相關配置設置問題

maven scope web 版的 maven 工程 pom.xml 1、在 eclipse中 創建 web 版的 maven 工程: a、和 創建 java 版的 maven 工程一樣,先選中一個簡單的工程(跳過經典模式),後填寫坐標(不了解的看先前的博文),在打包方式中選擇 war

Asp.net MVC使用FormsAuthentication,MVC和WEB API可以共享身份認證 (轉載)

mlp ges web api nbsp 快速 charset 生成頁面 核心 lds 在實際的項目應用中,很多時候都需要保證數據的安全和可靠,如何來保證數據的安全呢?做法有很多,最常見的就是進行身份驗證。驗證通過,根據驗證過的身份給與對應訪問權限。同在Web Api中如何

vsftp的相關配置

vsftp 上傳錯誤 配置配置文件vim /etc/vsftpd/vsftpd.conf#允許匿名訪問 NO anonymous_enable=NO #允許本地帳號登錄 YES local_enable=YES #帳號登錄可寫 YES write_enable=YES local_umask=022 dirm