本文共 2881 字,大约阅读时间需要 9 分钟。
Identity service,对应代码项目为Keystone,是OpenStack默认的身份管理系统,是OpenStack众多服务中的一个,用以对用户进行认证和鉴权,是访问OpenStack其他服务的基础。
Identity service支持基于Token的认证和基于“用户-服务”的授权,以REST API的形式提供服务。
1.Identity service的版本
2.Identity service的安装
1)安装MySQL数据库管理系统
CREATE DATABASE keystone
2)安装(包括Apache HTTP服务器和mod_wsgi模块)
yum install openstack-keystone httpd mod_wsgi
3)配置文件/etc/keystone/keystone.conf
4)使用keystone命令行工具keystone-manage
3.Identity service的认证机制
采用PKI,Public Key Infrastructure,三要素如下:
4.Identity service的Token
1)token的组成
2)token的作用域(scopes)
3)token的类型(types)
5. 通过cURL获取token的方法
1)只标明身份,无任何权限的unscoped token
curl -i \ -H "Content-Type: application/json" \ -d '{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "myName", "domain": { "id": "default" }, "password": "myPass" } } } }}' \ "https://my-openstack-cloud:5000/v3/auth/tokens"
注意:这里的身份认证采用name/password,另外以id的方式给出了其所在的domain(id="default")。命令执行成功即返回access token,用于后续操作。
2)根据project设置访问权限的project-scoped token
curl -i \ -H "Content-Type: application/json" \ -d '{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "myName", "domain": { "id": "default" }, "password": "myPass" } } }, "scope": { "project": { "name": "myProject", "domain": { "id": "default" } } } }}' \ "https://my-openstack-cloud:5000/v3/auth/tokens"
注意与unscoped token的比较,这里通过请求参数scope给出了token能够访问的范围,具体到一个domain中的一个project。
3)根据domain设置访问权限的domain-scoped token
curl -i \ -H "Content-Type: application/json" \ -d '{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "myName", "domain": { "id": "default" }, "password": "myPass" } } }, "scope": { "domain": { "id": "default" } } }}' \ "https://my-openstack-cloud:5000/v3/auth/tokens"
注意与unscoped token的比较,这里通过请求参数domain给出了token能够访问的范围。这样的token就能够访问该domain下的所有project。
参考文献:
https://wiki.openstack.org/wiki/Keystone https://github.com/openstack/keystone https://docs.openstack.org/developer/keystone/ http://specs.openstack.org/openstack/keystone-specs/#identity-v3-api http://specs.openstack.org/openstack/keystone-specs/#v2-0-api转载地址:http://rtlai.baihongyu.com/