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 ...
随机推荐
- Python模块学习——tempfile
主要有以下几个函数: tempfile.TemporaryFile 如何你的应用程序需要一个临时文件来存储数据,但不需要同其他程序共享,那么用TemporaryFile函数创建临时文件是最好的选择.其 ...
- VS生成后事件对文件的copy以及更换扩展名
在VC++2012的项目里,属性内有生成事件. 可以用后期生成事件命令行做一些生成之后的事情,比如对编译出的.dll,.lib,.pdb等文件进行copy或者更改扩展名. 我用到的就是将和项目同名的. ...
- ubuntu14.04 +nginx+php5-fpm
一,安装Nginx apt-get install nginx 1,配置nginx nginx所有的配置在 /etc/nginx/nginx.conf中 nginx.conf配置里面包括了 inclu ...
- SVN如何切换账号
https://www.cnblogs.com/six-moon/p/5233878.html **************************************************** ...
- 使用spin.js优化等待ajax返回时的页面效果
[本文出自天外归云的博客园] 最近在做一个JIRA信息统计的系统,在统计JIRA关联信息的过程中由于需要等待ajax返回结果到前端,时间较长,所以要添加一段等待时的loading画面,使用spin.j ...
- pandas入门——loc与iloc函数
oc与iloc函数 loc函数 import pandas as pd import numpy # 导入数据 df = pd.read_csv(filepath_or_buffer="D: ...
- jQuery 学习笔记2 点击时弹出一个对话框
上次学习的是页面加载完成后弹出一个警告框,这里我们改为当用户点击后弹出一个警告框. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...
- 设置定时任务(Timer类的介绍)
设置定时任务(Timer类的介绍) 在我们的很多项目中,我们都须要用到定时任务,因此想借此博文来对定时任务进行一个介绍. 设置定时任务过程例如以下: 先new一个Timer对象 Timer timer ...
- 【Android】按钮点击事件的常用写法
学习总结: 最近学习了Android点击事件的常用写法.点击事件会触发监听对象身上的回调,常用写法有以下四种: 方法一:使用匿名内部类. public class MainActivity exten ...
- [Socket]Socket进程间的通信
转自:http://blog.csdn.net/giantpoplar/article/details/47657303 前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket ...