OpenStack has two DOMAIN configuration parameters: OS_PROJECT_DOMAIN_NAME and OS_USER_DOMAIN_NAME and they are not the same as just OS_DOMAIN_NAME. I wasn't able to authenticate on OpenStack system because OS_DOMAIN_NAME was used in both cases.
Auth body should look like this:
{
"auth": {
"identity" : {
"methods": ["password"],
"password": {
"user": {
"name": "<OS_USERNAME>",
"domain": { "name": "<OS_USER_DOMAIN_NAME>" },
"password": "<OS_PASSWORD>"
}
}
},
"scope": {
"project": {
"domain": {
"name": "<OS_PROJECT_DOMAIN_NAME>"
},
"name": "<OS_PROJECT_NAME>"
}
}
}
}
This is the debug content which I got using openstack.AuthenticatedClient
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"domain": {
"name": "my_domain"
},
"name": "USER",
"password": "*****"
}
}
},
"scope": {
"project": {
"domain": {
"name": "my_domain"
},
"name": "PROJECT"
}
}
}
}
OpenStack has two DOMAIN configuration parameters:
OS_PROJECT_DOMAIN_NAMEandOS_USER_DOMAIN_NAMEand they are not the same as justOS_DOMAIN_NAME. I wasn't able to authenticate on OpenStack system becauseOS_DOMAIN_NAMEwas used in both cases.Auth body should look like this:
{ "auth": { "identity" : { "methods": ["password"], "password": { "user": { "name": "<OS_USERNAME>", "domain": { "name": "<OS_USER_DOMAIN_NAME>" }, "password": "<OS_PASSWORD>" } } }, "scope": { "project": { "domain": { "name": "<OS_PROJECT_DOMAIN_NAME>" }, "name": "<OS_PROJECT_NAME>" } } } }This is the debug content which I got using
openstack.AuthenticatedClient{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "my_domain" }, "name": "USER", "password": "*****" } } }, "scope": { "project": { "domain": { "name": "my_domain" }, "name": "PROJECT" } } } }