OpenStack Identity(Keystone)服務為運行OpenStack Compute上的OpenStack雲提供了認證和系統管理使用者、帳號和角色資訊服務,並為OpenStack Object Storage提供授權服務。
Keystone體繫結構
Keystone 有兩個主要組件:驗證和服務類別目錄
驗證:提供了一個基於令牌的驗證服務,主要有以下幾個概念:
租戶(Tenant)
使用OpenStack相關服務的一個組織。一個租戶映射到一個Nova的“project-id”,在Object Storage Service中,一個租戶可以有多個容器。根據不同的安裝方式,一個租戶可以代表一個客戶、帳號、組織或項目。
使用者(User)
代表一個個體,OpenStack以使用者的形式來授權服務給它們。使用者擁有認證(credentials),且可能分配給一個或多個租戶。經過驗證後,會為每個單獨的租戶提供一個特定的令牌。
認證(credentials)
為了給使用者提供一個令牌,需要用認證來唯一標識一個Keystone使用者的密碼或其它資訊
令牌(token)
一個令牌是一個任意位元的文本,用於與其它OpenStack服務來共用資訊,Keystone以此來提供一個central location,以驗證訪問OpenStack服務的使用者。一個令牌可以是“scoped”或“unscoped”。一個scoped令牌代表為某個租戶驗證過的使用者,而unscoped令牌則僅代表一個使用者。令牌的有效期間是有限的,可以隨時被撤回。
角色(Role)
一個角色是應用於某個租戶的使用許可權集合,以允許某個指定使用者訪問或使用特定操作。角色是使用許可權的邏輯分組,它使得通用的許可權可以簡單地分組並綁定到與某個指定租戶相關的使用者。
服務類別目錄(Service Catalog)
Keystone為OpenStack安裝提供了一個REST API端點列表並以此作為決策參考。主要的概念包括:
服務(Service)
一個OpenStack服務,例如nova、swift、glance或keystone。一個服務可以擁有一個或多個端點,通過它使用者可以與OpenStack的服務或資源互動。
端點(Endpoint)
一個可以通過網路訪問的地址(典型地,一個URL),代表了OpenStack服務的API介面。端點也可以分組為模板,每個模板代表一組可用的OpenStack服務,這些服務是跨地區(regions)可用的。
模板(Template)
一個端點集合,代表一組可用的OpenStack服務端點。
Keystone的組件
Keystone包含一個命令列介面,可以與Keystone API互動以管理keystone和相關服務。
keystone - 運行keystone-admin和keystone-service
keystone-admin - 操作keystone的管理API
keystone-service - 用於驗證的,面向使用者的AP
keystone-manage - 管理keystone的命令列介面
Keystone還包括WSGI中介軟體以為Nova和Swift提供驗證服務。
Keystone使用一個內建的SQLite資料庫 - 為驗證使用者,將來也可能使用一個外部LDAP服務來代替儲存認證
中介軟體(Middleware)
Keystone中介軟體位於OpenStack服務前面,處理進來的請求驗證。中介軟體的設計遵循如下的規範。
中介軟體的原始碼位於Keystone/middleware。
中介軟體支援兩個介面:WSGI和REST/HTTP。
REST & HTTP API
如果進來一個未經認證的調用,中介軟體將響應一個401 Unautorized錯誤。根據每HTTP的標準,它也會返回一個WWW-Authenticate包頭以通知調用者支援哪個協議。對於Keystone驗證,響應的文法格式如下:
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.
令牌使用 X-Auth-Toke包頭傳遞。
WSGI API(包頭)
當成功驗證後中介軟體經為下行的WSGI應用發送如下包頭:
X-Identity-Status
提供請求是否被驗證的資訊。
X-Tenant
提供了租戶ID(在Keystone中以URL的形式出現)。在Keysotne轉為採用ID/Name模式之前,它為租戶提供了對任意遺留實現的支援。
X-Tenant-Id
唯一不變的租戶ID。
X-Tenant-Name
唯一但可變的租戶名字。
X-User
用於登入的使用者名稱。
X-Roles
分配給使用者的角色。
以上所述是小編給大家介紹的OpenStack Identity(Keystone)身份服務、體繫結構與中介軟體 ,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!