Authentication
肯定一個用戶身份的過程。用戶須要提供一組credentials供Openstack驗證。首先,credentials通常是用戶名、密碼,或用戶名和API key。當Openstack驗證credentials有效,會返回用戶一個authentication token。後續全部的請求,用戶必須提供該token。
Credentials
用於覈實用戶身份的數據。例如用戶名+密碼,用戶名+API key,或者一個
authentication token(注:某一具體服務驗證用戶的合法性時。例如用戶經過token調用barbican服務api,barbican須要經過該token去keystone覈實該用戶的合法性)。
Domain
keystone API v3新增長的概念。Domain是project和user的集合,定義了管理身份實例的管理邊界。Domain能夠表明我的、公司或其它運營實體。這些實體把管理功能交給系統用戶,用戶被授予domain的管理員角色。domain管理員能夠在domain中建立project、user和group,並將role分配給domain中的user和group。
Endpoint
一個網絡可達的地址,一般是一個URL,經過該URL能夠訪問一個service。( If you are using an extension for templates, you can create an endpoint template that represents the templates of all consumable services that are available across the regions.
)
Group
keystone API v3新增長的概念。Group是Domain中用戶的集合,一個Group所被賦予的role,該group下全部的user都被賦予該role。添加一個user到一個group中,該user被賦予該group的role,移除同理。
OpenStackClient
Openstack服務的命令行工具。例如用戶能夠執行:openstack service create命令來建立一個service。 openstack endpoint create來建立一個endpoint。
Project
將資源或標識對象分組或隔離的容器。根據service的運營者不一樣,project可能映射到客戶、帳戶、組織或租戶。
Region
keystone API v3新增長的概念。表明Openstack部署的通常劃分。能夠將零個或多個sub-regions與一個region關聯,從而造成樹狀層次結構。雖然region沒有地理上的含義,但部署時能夠用 一個地理地區的名字,例如us-east.
Role
一個標識符,定義了一組特定用戶權限和特權來執行一組特定的操做。keystone給user分配token時,同時會包括一個role列表,表明該用戶擁有的全部roles。當user調用一個service時,service檢查user的role集合,肯定是否有權限調用該service。
Service
一個Openstac服務,例如Compute(nova),Object Storage(swift),image service(glance),key management(barbican)。service會提供一個或多個endpoints,用於用戶訪問該service的資源或命令service執行某種操做。
Token
由字母或數字組成的字符串。訪問Openstack APIs時須要提供該token。token能夠隨時被撤銷,而且有過時時間。在這個版本中,keystone支持基於token的身份認證。未來會支持更多的協議。keystone是一個集成服務,它不但願成爲一個完整的身份存儲和管理解決方案。
User
使用OpenStack雲服務的人、系統或服務的數字表示。當user發出訪問請求時,keystone要驗證user的合法性。user有一個登陸名,可使用分配的token訪問資源。用戶能夠直接分配給一個project,而且表現得像在該項目中同樣。
Create and manage services and service users
keystone服務容許以下方式定義service:
- 用模版文件做爲catalog服務的後端。Service catalog template. 對於OpenStack其它服務,keystone服務扮演service的endpoint目錄。/etc/keystone/default_catalog.templates 模版文件定義了全部services的endpoint。當keystone服務用模版文件做爲後端時,任何對於endpoint的修改,都會被緩存,可是不會被持久化,當重啓服務或機器後,會還原成原來模版中的內容。
- 用SQL做爲catalog服務的後端。當keystone服務啓動後,必須把全部service添加到catalog中。生產環境用SQL做爲後端。
auth_token中間件,對於每個service,支持用shared secret 或 users。(The
auth_token
middleware supports the use of either a shared secret or users for each service.
)
爲了經過keystone驗證用戶,須要爲每個OpenStack service建立一個service user。例如,爲Compute、Block Stone和Networking Service建立對應的service user。
爲了用service user配置Openstack service ,爲全部的service建立一個project,爲每個service建立對應的user。爲每個service user和project對(service user and project pair
)分配admin角色。該角色使service user可以驗證token,並對其餘用戶的請求進行身份驗證和受權。