OpenStack Keystone v3 API新特性
原连接
http://blog.chinaunix.net/uid-21335514-id-3497996.html
keystone的v3 API与v2.0相比有很大的不同,从API的请求格式到response的返回结果都有差别,主要几点如下:
1. 引入了domain的概念,domain是在project,user, group之上抽象出的一个概念,是指
container for projects, users and groups
2. v3中用project代替了以前的v2.0的tenant概念
3. v3的验证/auth/tokens,相比v2.0的/tokens,token的ID不再在body中包含,而是在返回header中的X-Subject-Token
4. v3还在验证上引入plugin方式,
[auth]
methods = password,token
password = keystone.auth.methods.password.Password
token = keystone.auth.methods.token.Token
可以添加自己的plugin来对keystone自己的auth方式进行定制化
关于auth这一部分:因为token有scoped和non-scoped的区别:
Scoped
1. project
If a project is specified by name, then the domain of the project must
also be specified in order to uniquely identify the project
2. domain
Alternatively, a domain name may be used to uniquely identify the project.
A token scoped to a project will also have a service catalog, along with
the user's roles applicable to the project. Example response:
A token scoped to a domain will also have a service catalog along with
the user's roles applicable to the domain. Example response:
Non-scoped
1. user
If the user is specified by name, then the domain of the user must also be specified in order to uniquely identify the user
因为社区的开发方式,keystoneclient的开发和keystone并不是完全同步,加上keystone的v3还没有完全开发完毕,
所以现在用的keystoneclient还不完全支持v3 keystone。如果你要提前用keystoneclient,那就需要修改其中v3的client的代码
5.兼容性
为了让v2.0 的scheme迁移到v3,v2.0会默认的使用(keystone,conf)
# default_domain_id = default
更多的参考资料,可以参看:
1. v3 API design:
https://etherpad.openstack.org/grizzly-keystone-v3api
2. v3 API doc
https://github.com/openstack/identity-api/blob/master/openstack-identity-api/src/markdown/identity-api-v3.md
OpenStack Keystone v3 API新特性的更多相关文章
- [转]OpenStack Keystone V3
Keystone V3 Keystone 中主要涉及到如下几个概念:User.Tenant.Role.Token.下面对这几个概念进行简要说明. User:顾名思义就是使用服务的用户,可以是人.服务或 ...
- OpenStack Keystone V3 简介
Keystone V3 简介 Keystone 中主要涉及到如下几个概念:User.Tenant.Role.Token.下面对这几个概念进行简要说明. User:顾名思义就是使用服务的用户,可以是人. ...
- Atitit dsl exer v3 qb3 新特性
Atitit dsl exer v3 qb3 新特性 /atiplat_cms/src/com/attilax/dsl/DslParser.java V3 支持typeed参数,与简化的notyp参数 ...
- OpenStack IdentityService Keystone V3 API Curl实战
v3 API Examples Using Curl <Tokens> 1,Default scope 获取token Get an token with default scope (m ...
- 使用openstackclient调用Keystone v3 API
本文内容属于个人原创,转载务必注明出处: http://www.cnblogs.com/Security-Darren/p/4138945.html 考虑到Keystone社区逐渐弃用第二版身份AP ...
- cocos2d-x v3.0新特性及使用
八月份cocos2d-x官网发布了v3.0版本,这次更新的内容特别多,包括2dx的架构以及使用 总得来说,给开发者带来了很大的便利: 运行环境需求: Android 2.3 or newer iOS ...
- Openstack Keystone V3 利用 curl 命令获取 token
curl -i \ -H "Content-Type: application/json" \ -d ' { "auth": { "identity& ...
- GitHub 桌面版 v3.0 新特性「GitHub 热点速览」
新版本一般意味着更强的功能特性,比如 GitHub Desktop v3.0.虽然未发布新版本,但本周收录的 7 个开源项目颇有"新版"味.比如,破解(恢复)密码能力 Max 的 ...
- Keystone V3 API Examples
There are few things more useful than a set of examples when starting to work with a new API. Here a ...
随机推荐
- poj2262
Goldb ...
- poj 2229 Sumsets(dp 或 数学)
Description Farmer John commanded his cows to search . Here are the possible sets of numbers that su ...
- JSP错题纠错
A:判断学员是否手动安装过Tomcat(练习熟练度) B:使学员了解Tomcat的运行过程 ,浏览器向Web服务器发送请求,Web站点处理请求后,把处理后的结果响应给浏览器 C:Tomcat作为Web ...
- WinForm 控件不闪烁
1: [DllImport("user32")] 2: public static extern int SendMessage(IntPtr hwnd, int wMsg, in ...
- Max Sum of Max-K-sub-sequence(单调队列)
Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- The kth great number(set)
The kth great number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Oth ...
- windows下用vs2008和boost结合编译程序
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://co63oc.blog.51cto.com/904636/504469 win ...
- visual studio 2015离线版msdn下载和安装
2014年11月13日,微软发布了Visual Studio 2015 Preview,但是Visual Studio 2015 的msdn该如何安装呢?下面脚本之家就为大家分享一篇visual st ...
- 密码算法详解——AES
0 AES简介 1997年1月2号,美国国家标准技术研究所宣布希望征集一个安全性能更高的加密算法(AES)[3],用以取代DES.我们知道DES的密钥长度是64 bits,但实际加解密中使用的有效长度 ...
- EffectiveC#1--尽可能的使用属性(property),而不是数据成员(field)
1.属性可以进行数据绑定 2.可以做数据安全校验.在对数据检测时,如果发现数据不满足条件,最好以抛出异常的形式来解决 如下代码不可取 public string Name { get { if(thi ...