Openstack API 身份验证
Openstack API Authentication
这里是 Openstack 菜鸟。我已经使用 DevStack 设置了一个 Ubuntu 虚拟机,并且正在尝试使用 Keystone 进行身份验证以获得用于后续 Openstack API 调用的令牌。 Horizon 中“API 访问”页面上显示的身份端点是:http://<DEVSTACK_IP>/identity
。
当我 post 将下面的 JSON 负载发送到此端点时,我收到错误 get_version_v3() got an unexpected keyword argument 'auth’
。
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "admin",
"domain": {
"name": "Default"
},
"password": “AdminPassword”
}
}
}
}
}
基于 Openstack docs,我应该点击 http://<DEVSTACK_IP>/v3/auth/tokens
来获取令牌,但是当我点击那个端点时,我得到 404 Not Found
.
我目前正在使用 Postman 对此进行测试,但最终会以编程方式进行。
是否有人有针对 Openstack API 进行身份验证的经验可以提供帮助?
不确定您是否想以 python 方式进行操作,但如果您这样做,可以使用以下方法:
from keystoneauth1.identity import v3
from keystoneauth1 import session
v3_auth = v3.Password(auth_url=V3_AUTH_URL,
username=USERNAME,
password=PASSWORD,
project_name=PROJECT_NAME,
project_domain_name="default",
user_domain_name="default")
v3_ses = session.Session(auth=v3_auth)
auth_token = v3_ses.get_token()
你 V3_AUTH_URL
应该是 http://<DEVSTACK_IP>:5000/v3
因为 keystone 默认使用端口 5000。
如果你有一个多域的devstack,你可以改变域,否则,它们应该是default
以防万一您没有安装客户端库:pip install python-keystoneclient
这是一个很好的文档供您阅读:
https://docs.openstack.org/keystoneauth/latest/using-sessions.html
HTH
这里是 Openstack 菜鸟。我已经使用 DevStack 设置了一个 Ubuntu 虚拟机,并且正在尝试使用 Keystone 进行身份验证以获得用于后续 Openstack API 调用的令牌。 Horizon 中“API 访问”页面上显示的身份端点是:http://<DEVSTACK_IP>/identity
。
当我 post 将下面的 JSON 负载发送到此端点时,我收到错误 get_version_v3() got an unexpected keyword argument 'auth’
。
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "admin",
"domain": {
"name": "Default"
},
"password": “AdminPassword”
}
}
}
}
}
基于 Openstack docs,我应该点击 http://<DEVSTACK_IP>/v3/auth/tokens
来获取令牌,但是当我点击那个端点时,我得到 404 Not Found
.
我目前正在使用 Postman 对此进行测试,但最终会以编程方式进行。
是否有人有针对 Openstack API 进行身份验证的经验可以提供帮助?
不确定您是否想以 python 方式进行操作,但如果您这样做,可以使用以下方法:
from keystoneauth1.identity import v3
from keystoneauth1 import session
v3_auth = v3.Password(auth_url=V3_AUTH_URL,
username=USERNAME,
password=PASSWORD,
project_name=PROJECT_NAME,
project_domain_name="default",
user_domain_name="default")
v3_ses = session.Session(auth=v3_auth)
auth_token = v3_ses.get_token()
你 V3_AUTH_URL
应该是 http://<DEVSTACK_IP>:5000/v3
因为 keystone 默认使用端口 5000。
如果你有一个多域的devstack,你可以改变域,否则,它们应该是default
以防万一您没有安装客户端库:pip install python-keystoneclient
这是一个很好的文档供您阅读: https://docs.openstack.org/keystoneauth/latest/using-sessions.html
HTH