1. 为什么要申请token?
首先每一个openstack命令都会按照如下图所示的顺序:(1)向keystone申请token;(2)keystone返回一个可用token以及可用的服务端口;(3)客户端将获取的token、api请求以及服务端口地址发送给组件内部的api;(4)(5)之后,组件自己的api还要讲自己的用户名和密码跟keystone做验证;(6)得到确定的结果后,API将服务提供给client
2. 怎样申请token?
申请token有三种,这里介绍一种常用的token申请方法(利用json字符串申请),其步骤如下:
(1)新建一个json文件,例如建立一个get_token.json文件放在/root目录,其内容如下所示:
{
"auth":{
"identity":{
"methods":[
"password"
],
"password":{
"user":{
"name":"admin",
"domain":{
"id":"default"
},
"password":"admin"
}
}
}
},
"scope":{
"project":{
"name":"admin",
"domain":{
"id":"default"
}
}
}
}
admin",
"domain":{
"id":"default"
},
"password":"admin"
}
}
}
},
"scope":{
"project":{
"name":"admin",
"domain":{
"id":"default"
}
}
}
}
注:其中红色的自己要跟根据自己的用户名进行修改,“id”一般都是default
(2)使用命令申请token,命令如下
curl -i 'http://10.0.0.11:5000/v3/auth/tokens' -X POST -H "Content-Type: application/json" -H "Application/json" -H "Accept: application/json" -d @/root/get_token.json
10.0.0.11:5000/v3/auth/tokens' -X POST -H "Content-Type: application/json" -H "Application/json" -H "Accept: application/json" -d @/root/get_token.json
注:同样红色的部分需要根据自己的设置进行修改,其中目录前的@代表绝对地址需要添加