keystone身份認證服務


1. Keystone介紹

keystone 是OpenStack的組件之一,用於為OpenStack家族中的其它組件成員提供統一的認證服務,包括身份驗證、令牌的發放和校驗、服務列表、用戶權限的定義等等。雲環境中所有的服務之間的授權和認證都需要經過 keystone. 因此 keystone 是雲平台中第一個即需要安裝的服務。

作為 OpenStack 的基礎支持服務,Keystone 做下面這幾件事情:

a.管理用戶及其權限

b.維護 OpenStack Services 的 Endpoint(服務地址)

c.Authentication(認證)和 Authorization(鑒權)

學習 Keystone,得理解下面這些概念:

clip_image001

1.1 User

User 指代任何使用 OpenStack 的實體,可以是真正的用戶,其他系統或者服務。

clip_image002

當 User 請求訪問 OpenStack 時,Keystone 會對其進行驗證。Horizon 在 Identity->Users 管理 User

admin:openstack平台的超級管理員,負責openstack服務的管理和訪問權限

demo:常規(非管理)任務應該使用無特權的項目和用戶,所有要創建 demo 項目和 demo 用戶

除了 admin 和 demo,OpenStack 也為 nova、cinder、glance、neutron 服務創建了相應的 User。 admin 也可以管理這些 User。

1.2 Credentials

Credentials 是 User 用來證明自己身份的信息,可以是:

1. 用戶名/密碼

2. Token

3. API Key

4. 其他高級方式

clip_image003

1.3 Authentication

Authentication 是 Keystone 驗證 User 身份的過程。User 訪問 OpenStack 時向 Keystone 提交用戶名和密碼形式的 Credentials,Keystone 驗證通過后會給 User 簽發一個 Token 作為后續訪問的 Credential。

clip_image004

1.4 Token

Token 是由數字和字母組成的字符串,User 成功 Authentication 后 Keystone 生成 Token 並分配給 User。

Token 用做訪問 Service 的 Credential

Service 會通過 Keystone 驗證 Token 的有效性

Token 的有效期默認是 24 小時

clip_image005

1.5 Project

Project 用於將 OpenStack 的資源(計算、存儲和網絡)進行分組和隔離。

根據 OpenStack 服務的對象不同,Project 可以是一個客戶(公有雲,也叫租戶)、部門或者項目組(私有雲)。

這里請注意:

1.資源的所有權是屬於 Project 的,而不是 User。

2.在 OpenStack 的界面和文檔中,Tenant / Project / Account 這幾個術語是通用的,但長期看會傾向使用 Project

3.每個 User(包括 admin)必須掛在 Project 里才能訪問該 Project 的資源。 一個User可以屬於多個 Project。

4.admin 相當於 root 用戶,具有最高權限

1.6 Service

OpenStack 的 Service 包括 Compute (Nova)、Block Storage (Cinder)、Object Storage (Swift)、Image Service (Glance) 、Networking Service (Neutron) 等。每個 Service 都會提供若干個 Endpoint,User 通過 Endpoint 訪問資源和執行操作。

clip_image006

1.7 Endpoint

Endpoint 是一個網絡上可訪問的地址,通常是一個 URL。Service 通過 Endpoint 暴露自己的 API。 Keystone 負責管理和維護每個 Service 的 Endpoint。

clip_image007

可以使用下面的命令來查看 Endpoint。

# source devstack/openrc admin admin

# openstack catalog list

1.8 Role

安全包含兩部分:Authentication(認證)和 Authorization(鑒權)

Authentication 解決的是“你是誰?”的問題

Authorization 解決的是“你能干什么?”的問題

2. Keystone基本架構

clip_image008

•Token: 用來生成和管理token

•Catalog:用來存儲和管理service/endpoint

•Identity:用來管理tenant/user/role和驗證

•Policy:用來管理訪問權限

clip_image009


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM