zoukankan      html  css  js  c++  java
  • OpenStack Keystone

    OpenStack Keystone

    简介

    用于管理身份验证 (managing authentication),授权 (authorization) 和服务目录 (service catalog)
    用户和服务可以使用服务目录来来查找其他服务 (服务目录是 OpenStack 部署中可用服务的集合)

    User

    User 指代任何使用 OpenStack 的实体,可以是真正的用户,也可以是其他系统或者服务
    除了 admin 和 demo,OpenStack 也为 nova、cinder、glance、neutron 服务创建了相应的 User, admin 也可以管理这些 User

    Credentials

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

    • 用户名/密码
    • Token
    • API Key
    • 其他高级方式

    Authentication

    Authentication 是 Keystone 验证 User 身份的过程
    User 访问 OpenStack 时向 Keystone 提交用户名和密码形式的 Credentials,Keystone 验证通过后会给 User 签发一个 Token 作为后续访问的 Credential

    Token

    Token 是由数字和字母组成的字符串,User 成功 Authentication 后 Keystone 生成 Token 并分配给 User

    • Token 是用做访问 Service 的 Credential
    • Service 会通过 Keystone 验证 Token 的有效性
    • Token 的有效期默认是 24 小时

    Project

    Project 用于将 OpenStack 的资源(计算、存储和网络)进行分组和隔离
    根据 OpenStack 服务的对象不同,Project 可以是一个客户(公有云,也叫租户)、部门或者项目组(私有云)
    注意:

    • 资源的所有权是属于 Project 的,而不是 User。
    • 在 OpenStack 的界面和文档中,Tenant / Project / Account 这几个术语是通用的,但长期看会倾向使用 Project
    • 每个 User(包括 admin)必须挂在 Project 里才能访问该 Project 的资源,一个 User 可以属于多个 Project
    • admin 相当于 root 用户,具有最高权限

    Service

    OpenStack 的 Service 包括 Compute (Nova)、Block Storage (Cinder)、Object Storage (Swift)、Image Service (Glance) 、Networking Service (Neutron) 等,每个 Service 都会提供若干个 Endpoint,User 通过 Endpoint 访问资源和执行操作

    Endpoint

    Endpoint 是一个网络上可访问的地址,通常是一个 URL,Service 通过 Endpoint 暴露自己的 API
    每个服务可以有一个或多个 Endpoint,每个 Endpoint 可以是以下三种类型之一:admin,internal或public。
    Keystone 负责管理和维护每个 Service 的 Endpoint
    在生产环境中,出于安全原因,不同的 Endpoint 类型可能驻留在暴露给不同类型用户的不同网络上

    Role

    Keystone 借助 Role 实现 Authorization:
    Keystone 定义 Role, 可以为 User 分配一个或多个 Role
    Service 决定每个 Role 能做什么事情, Service 通过各自的 policy.json 文件对 Role 进行访问控制

    Identity 服务包含以下组件:

    Server

    集中式服务器通过 RESTful 接口提供身份验证和授权服务

    Drivers

    Drivers 或服务后端 (service back end) 被集成到中央服务器,它们用于访问 OpenStack 外部存储库中的身份信息,并且可能已存在于部署 OpenStack 的基础架构中 (例如,SQL 数据库或 LDAP 服务器)

    Modules

    中间件模块 (Middleware modules) 在使用 Identity 服务的 OpenStack 组件的地址空间中运行。 这些模块监听服务请求,获取用户证书 (Credentials),并将它们发送到中央服务器以进行授权
    中间件模块和 OpenStack 组件之间的集成使用 Python Web 服务器网关接口

    使用服务的流程

    通过 User admin 查看 image 的流程可以更好地理解 Keystone

    1. admin 登录时把 Credentials (用户名、密码) 给 Keystone
      Keystone 通过认证 (authentication) 确定身份后返回一个 token, token 中包含了 User 的 Role 信息
    2. admin 把 token 给 Keystone
      Keystone 返回 admin 可以访问的 Projects 和各个 Service 的 Endpoint
    3. admin 把 token 给 Glance,请求查看 Project admin 中的 image
      Glance 将 token 发送给 Keystone,询问 admin 的 token 是否有效
      Keystone 确认 admin 的 token 有效,确定用户为 admin 中的 User
      Glance 查看 /etc/glance/policy.json ,确定 admin 拥有查看 image 的权限,返回 image 的列表
  • 相关阅读:
    普通文本(.txt)篇章排版样式参考 [文档说明][日志]
    C++基础练习案例
    Markdown 编写技巧汇总(二)
    Markdown 编写技巧汇总(一)
    有关C++程序设计基础的各种考题解答参考汇总
    有关算法与数据结构的考题解答参考汇总 [C++] [链表] · 第三篇
    有关算法与数据结构的考题解答参考汇总 [C++] [链表] · 第二篇
    有关算法与数据结构的考题解答参考汇总 [C++] [链表]
    DOS批处理小案例应用分享
    基于Processing图像序列处理保存导出的流程梳理
  • 原文地址:https://www.cnblogs.com/dbf-/p/11534030.html
Copyright © 2011-2022 走看看