provide a 'whoami' service for authenticated users
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Dashboard (Horizon) |
Confirmed
|
Wishlist
|
Unassigned | ||
OpenStack Identity (keystone) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
It would be very helpful if keystone could provide a 'whoami' service to users and other projects, for example for building clouds.yaml and openstackrc files to horizon interface / openstack client and API users
openstack user show admin
+------
| Field | Value |
+------
| domain_id | default |
| enabled | True |
| id | 22b8b60e6*
| name | admin |
| options | {} |
| password_expires_at | None |
+------
This is not very useful. - and I need a working RC file to get this far!
Federated users have to build their own clouds.yaml and need to find out fairly low level details from multiple systems for example with a SAML user:
-os-auth-type v3samlpassword
--os-identity-
--os-identity-
--os-protocol saml2
--os-username <federated username>
--os-password
--os-auth-url http://
--os-project-name demo
--os-project-
--os-identity-
I logged this with the horizon team, who suggested I log it here.
Currently Horizon builds environment variables for users in a static way, it's quite messy and will only ever work for manual users
export OS_AUTH_URL=
# With the addition of Keystone we have standardized on the term **project**
# as the entity that owns the resources.
export OS_PROJECT_ID=
export OS_PROJECT_NAME=
export OS_USER_
if [ -z "$OS_USER_
export OS_PROJECT_
if [ -z "$OS_PROJECT_
# unset v2.0 items in case set
unset OS_TENANT_ID
unset OS_TENANT_NAME
# In addition to the owning entity (tenant), OpenStack stores the entity
# performing the action as the **user**.
export OS_USERNAME=
# With Keystone you pass the keystone password.
echo "Please enter your OpenStack Password for project $OS_PROJECT_NAME as user $OS_USERNAME: "
read -sr OS_PASSWORD_INPUT
export OS_PASSWORD=
# If your configuration has multiple regions, we set that information here.
# OS_REGION_NAME is optional and only valid in certain environments.
export OS_REGION_
# Don't leave a blank variable, unset it if it was empty
if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi
export OS_INTERFACE=
export OS_IDENTITY_
It's quite ironic given that keystone is a discovery service too ;-)
here's the original bug on Horizon
https:/
and this is an abomination :-/
https:/
thanks!
.....I love keystone
> This is not very useful. - and I need a working RC file to get this far!
You need to be authenticated in order for keystone to know who you are. How could keystone possibly be able to identify you if you haven't authenticated? Same as `whoami` on the command line, you have to have logged into the system already for it to work. I think I'm not fully understanding the request, can you give an example of how you see it working?
> .....I love keystone
<3