OpenStack Identity(Keystone)服務(wù)為運(yùn)行OpenStack Compute上的OpenStack云提供了認(rèn)證和管理用戶、帳號和角色信息服務(wù),并為OpenStack Object Storage提供授權(quán)服務(wù)。
Keystone體系結(jié)構(gòu)
Keystone 有兩個主要部件:驗證和服務(wù)目錄
驗證:提供了一個基于令牌的驗證服務(wù),主要有以下幾個概念:
租戶(Tenant)
使用OpenStack相關(guān)服務(wù)的一個組織。一個租戶映射到一個Nova的“project-id”,在對象存儲中,一個租戶可以有多個容器。根據(jù)不同的安裝方式,一個租戶可以代表一個客戶、帳號、組織或項目。
用戶(User)
代表一個個體,OpenStack以用戶的形式來授權(quán)服務(wù)給它們。用戶擁有證書(credentials),且可能分配給一個或多個租戶。經(jīng)過驗證后,會為每個單獨(dú)的租戶提供一個特定的令牌。
證書(credentials)
為了給用戶提供一個令牌,需要用證書來唯一標(biāo)識一個Keystone用戶的密碼或其它信息
令牌(token)
一個令牌是一個任意比特的文本,用于與其它OpenStack服務(wù)來共享信息,Keystone以此來提供一個central location,以驗證訪問OpenStack服務(wù)的用戶。一個令牌可以是“scoped”或“unscoped”。一個scoped令牌代表為某個租戶驗證過的用戶,而unscoped令牌則僅代表一個用戶。令牌的有效期是有限的,可以隨時被撤回。
角色(Role)
一個角色是應(yīng)用于某個租戶的使用權(quán)限集合,以允許某個指定用戶訪問或使用特定操作。角色是使用權(quán)限的邏輯分組,它使得通用的權(quán)限可以簡單地分組并綁定到與某個指定租戶相關(guān)的用戶。
服務(wù)目錄(Service Catalog)
Keystone為OpenStack安裝提供了一個REST API端點列表并以此作為決策參考。主要的概念包括:
服務(wù)(Service)
一個OpenStack服務(wù),例如nova、swift、glance或keystone。一個服務(wù)可以擁有一個或多個端點,通過它用戶可以與OpenStack的服務(wù)或資源交互。
端點(Endpoint)
一個可以通過網(wǎng)絡(luò)訪問的地址(典型地,一個URL),代表了OpenStack服務(wù)的API接口。端點也可以分組為模板,每個模板代表一組可用的OpenStack服務(wù),這些服務(wù)是跨區(qū)域(regions)可用的。
模板(Template)
一個端點集合,代表一組可用的OpenStack服務(wù)端點。
Keystone的組件
Keystone包含一個命令行接口,可以與Keystone API交互以管理keystone和相關(guān)服務(wù)。
keystone - 運(yùn)行keystone-admin和keystone-service
keystone-admin - 操作keystone的管理APIkeystone-service - 用于驗證的,面向用戶的APkeystone-manage - 管理keystone的命令行接口Keystone還包括WSGI中間件以為Nova和Swift提供驗證服務(wù)。Keystone使用一個內(nèi)置的SQLite數(shù)據(jù)庫 - 為驗證用戶,將來也可能使用一個外部LDAP服務(wù)來代替存儲證書中間件(Middleware)
Keystone中間件位于OpenStack服務(wù)前面,處理進(jìn)來的請求驗證。中間件的設(shè)計遵循如下的規(guī)范。
中間件的源代碼位于Keystone/middleware。
中間件支持兩個接口:WSGI和REST/HTTP。
REST & HTTP API
如果進(jìn)來一個未經(jīng)認(rèn)證的調(diào)用,中間件將響應(yīng)一個401 Unautorized錯誤。根據(jù)每HTTP的標(biāo)準(zhǔn),它也會返回一個WWW-Authenticate包頭以通知調(diào)用者支持哪個協(xié)議。對于Keystone驗證,響應(yīng)的語法格式如下:
WWW-Authenticate: Keystone uri="url to Keystone server"The client can then make the necessary calls to the Keystone server, obtain a token, and retry the call with the token.
新聞熱點
疑難解答
圖片精選