Keystone API
Keystone身份API简介
Keystone提供REST风格的API, 客户端可以通过HTTP方法和URL操作资源. Keystone有两个主要版本的API, 以及构建在这些核心API上的一些API扩展. 这两个主要版本的API分别是第二版身份API和第三版身份API. 查阅所有的Keystone身份API, 请移步这里.
之所以没有"第一版"身份API是因为1.x系列的API是Rackspace公司为自己的公有云产品开发的简单原型, 这一系列的身份API早于OpenStack项目推出, 在Keystone中已经看不到它们了. 随着OpenStack的出现, Keystone逐渐成为Rackspace的公有云, Nova, Swift等产品中已实现的身份认证和多租户授权模型的超集, 2.0版的身份API也就由此诞生.
OpenStack官方推荐使用第三版身份API, 第三版身份API是第二版身份API功能的超集, 提供了更为一致的开发者体验, Keystone社区正在逐渐弃用并将会最终减少(乃至放弃)对第二版身份API的支持. 此外, 第三版身份API引入了"域"(Domain)的概念. 域作为高级容器担当用户, 项目(Projects)等实体的命名空间, 使得身份管理变得更加灵活, 也改进了第二版身份API中不记名令牌(Bearer Token)出现在URL中的安全隐患.
第三版与第二版身份API的显著区别包括:
- 第二版身份API中的"租户"(tenant)现在改称"项目"(project).
- 身份认证方法 (password, token等) 如今需要明确指明.
- 用户和项目的命名空间是他们所属的域(默认id = "default"), 这个id为“default”的域在Keystone中默认存在, 成为所有第二版身份API的命名空间(由于那时没有引入"域"的概念). 你也可以引用不在这个默认的域的命名空间中的用户和项目, 但是这些功能是第二版身份API所不支持的.
- 在第三版的身份API中, 令牌作为响应头的X-Subject-Token字段由Keystone服务返还给你, 而不是存放于响应体中. 当你需要向其他的服务证明自己的身份时, 仍然将你获得的令牌放置在请求头的X-Auth-Token字段.
如何使用第三版身份API?
一. 在Keystone服务上部署
为了使用第三版的身份API, 先要配置Keystone服务端向外开放必要的接口.
由于最新的Keystone已经实现并继续开发第三版身份API, 我们只需要在Paste部署配置中进行简单的配置即可. Keystone自带的Paste配置模板是keystone/etc/keystone-paste.ini, 我们这里以这个文件为例, 其中包括了第三版身份API的Paste应用和管道.
[app:service_v3]
paste.app_factory = keystone.service:v3_app_factory
[pipeline:api_v3]
pipeline = ... service_v3
[composite:main]
use = egg:Paste#urlmap
/v2.0 = public_api
/v3 = api_v3
... [composite:admin]
use = egg:Paste#urlmap
/v2.0 = admin_api
/v3 = api_v3
...
这些Paste配置信息提供在模板keystone-paste.ini文件中, 说明Keystone默认配置为同时支持第二版和第三版的身份API.
Keystone API的更多相关文章
- 使用openstackclient调用Keystone v3 API
本文内容属于个人原创,转载务必注明出处: http://www.cnblogs.com/Security-Darren/p/4138945.html 考虑到Keystone社区逐渐弃用第二版身份AP ...
- openstack Rocky系列之keystone:(二)keystone中API注册
主要说一下initialize_application中的application_factory def loadapp(): app = application.application_factor ...
- 【openStack】Libcloud 如何支持 keystone V3?
Examples This section includes some examples which show how to use the newly available functionality ...
- 探索 OpenStack 之(13):研究 Keystone
Keystone 是 OpenStack Identity Service 的项目名称.本文就试着尽可能深入地研究 Keystone. 1. Keystone 的功能 做为 OpenStack 云系统 ...
- keystone命令与client接口学习
keystone学习 ------------------ Keystone(OpenStack Identity Service)是OpenStack框架中,负责身份验证.服务规则和服务令牌的功能, ...
- keystone系列二:keystone源码分析
六 keystone架构 6.1 Keystone API Keystone API与Openstack其他服务的API类似,也是基于ReSTFul HTTP实现的. Keystone API划分为A ...
- openstack之keystone
一.什么是keystone 用于为openstack家族中的其它组件成员提供统一的认证服务,包括身份认证.令牌发放和校验.服务列表.用户权限定义等: 基本概念: 用户User:用于身份认证.一个用户可 ...
- [转]Setting Keystone v3 domains
http://www.florentflament.com/blog/setting-keystone-v3-domains.html The Openstack Identity v3 API, p ...
- keystone系列五:keystone源码分析
六 keystone架构 6.1 Keystone API Keystone API与Openstack其他服务的API类似,也是基于ReSTFul HTTP实现的. Keystone API划分为A ...
随机推荐
- Lua函数[转]
在大多数Lua语法分析中可以获得这些标准Lua函数. 无可争辩, 我们可以查阅Lua网站, 但是一些少了的函数被Blizzard进行了调整. 下面列出了所有Lua函数. WoW API中的Lua注意在 ...
- LeetCode: Merge k Sorted Lists 解题报告
Merge k Sorted Lists Merge k sorted linked lists and return it as one sorted list. Analyze and descr ...
- C#学习笔记(26)——委托计算器
说明(2017-11-20 15:14:18): 1. 委托一直稀里糊涂的,有人说简单,有人说难,艹你们! 2. 其实主要是因为,平时不用委托也能解决大部分问题,所以都没有特意去用,网上也没有什么很好 ...
- 初学SSH 配置+错误总结
初学java web 一上手就接触ssh,前段时间,断断续续配置好了ssh,今天从Hibernate入手开始学习.先总结今天遇到的问题. 配置链接的是sqlserver的数据库,首先是下载了一个jdb ...
- Django的安装要点
Django 的安装: 安装包: 百度盘里搜索"Django-1.7.tar.gz" 安装环境 WIN7 解压文件 移动到python安装目录下 python setup.py i ...
- 调整Intellij IDEA内存
最近IDEA真是卡的要死,下面
- Visual Studio无法导航到插入点下面的符号
Visual Studio2017编辑器按F12无法跳转到变量所属的类定义,弹窗提示[无法导航到插入点下面的符号],如下图: 解决办法: 方法一: 清理解决方案,重新生成. 方法二: 如果以上办法不行 ...
- pip修改国内源
Linux在~/.pip/pip.conf文件中添加或修改, windows不存在该目录,在当前用户目录下创建pip.ini(例如 C:\Users\bin\pip\pip.ini): [global ...
- C语言 · 征税程序
算法提高 征税程序 时间限制:1.0s 内存限制:512.0MB 问题描述 税务局希望你帮他们编写一个征税程序,该程序的功能是:首先输入某公司的年销售额sale和税率rate,然后程 ...
- Dubbo相关博文整理
configServer配置中心在dubbo client和 dubbo server之间的作用 http://www.cnblogs.com/dengzy/p/5677531.html dubbo ...