openstack組件之keystone

一、概念

1、keystone的作用

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

  •     管理用戶及其權限

  •     維護 OpenStack Services 的 Endpoint(端點)

  •     Authentication(認證)和 Authorization(鑑權)

2、預備概念

1)User

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

    當 User 請求訪問 OpenStack 時,Keystone 會對其進行驗證。

2)Credentials

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

        a. 用戶名/密碼 

        b. Token 

        c. API Key 

        d. 其他高級方式

3)Authentication

     Authentication 是 Keystone 驗證 User 身份的過程。

     User 訪問 OpenStack 時向 Keystone 提交用戶名和密碼形式的 Credentials,Keystone 驗證通過後會給 User 簽發一個 Token 作爲後續訪問的 Credential。

4)Token

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

     Token 用做訪問 Service 的 Credential

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

     Token 的有效期默認是 24 小時

5)Project

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

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

    這裏請注意:

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

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

    •  每個 User(包括 admin)必須掛在 Project 裏才能訪問該 Project 的資源。 

    •  一個User可以屬於多個 Project。

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

6)Service

    OpenStack 的 Service 包括 Compute (Nova)、Block Storage (Cinder)、Object Storage (Swift)、Image Service (Glance) 、Networking Service (Neutron) 等。

    每個 Service 都會提供若干個 Endpoint,User 通過 Endpoint 訪問資源和執行操作。

7)Endpoint

    Endpoint 是一個網絡上可訪問的地址,通常是一個 URL。 

    Service 通過 Endpoint 暴露自己的 API。 

    Keystone 負責管理和維護每個 Service 的 Endpoint。

8)Role 

    角色,roles代表一組用戶可以訪問的資源權限;

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

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

    Authorization 解決的是“你能幹什麼?”的問題

    Keystone 是藉助 Role 來實現Authorization(Keystone定義Role,可以爲 User 分配一個或多個 Role) 

    Service 決定每個 Role 能做什麼事情


二、舉例認證的流程

    1、客戶輸入賬號密碼進行登錄

    2、keystone收到登錄請求之後對賬號密碼進行驗證,驗證成功會分配token

    3、因爲token中包含了user的role信息,所以web頂部會顯示用戶可以訪問的project和service

    4、用戶點擊 “Images”,是先將請求發送到glance的Endpoint

    5、glance向Keystone詢問用戶身份的有效性,keystone驗證成功

    6、接下來glance會查看 /etc/glance/policy.json,判斷用戶是否有查看image的權限

    7、權限判定通過,Glance 將 image 列表發給用戶

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章