[openstack-dev] [keystone] Diagnostic APIs for Keystone

Adam Young ayoung at redhat.com
Tue Nov 24 03:07:46 UTC 2015


Figuring out what is or is not going to work when a user tries to 
perform an operation in OpenStack can be frustrating.  I've had a few 
people ask me for help specifically for configuring LDAP.  With 
Federation , things will get better.  I mean Worse.

What kind of diagnostic tooling do we need?  I know the basics:

If I have a known good user in LDAP, can they .  This is the first 
thing, and it can be done by asking for an unscoped token.

Once they have an unscoped token, can they get a scoped token?  Same as 
before, but adding the project ID or domain name/project name to the 
token request.

OK...what about if the users don't want to give you their password? With 
LDAP, we can do OpenStack user show to see if the user is in the 
backend.  With Federation...not so much.


Recently, I was trying to debug an issue where a server create failed 
due to errors in the service to service communication; Neutron could not 
make the call it needed to Nova due to the service user not having the 
Admin role.  The thing is, the service user was not an actual user, but 
rather a Service principal authenticate via Kerberos.  I think this is 
an indicator of the things to come.


We need an API that will show, given as set of post-validated 
credentials, communicated via Federation, what will the token validation 
response look like.  We'll need user domain id, user id, project, roles, 
and service catalog.

What else do we need diagnostically?  I know that setting up LDAP is 
especially tricky, and multiple LDAP backends, added in live config, 
using the Database backend, is going to be particularly painful to 
troubleshoot.  We need to be able to start with:

Is the LDAP account used to fetch users working properly?
If not, what do  the Actual LDAP queries look like?  Ideally, something 
we could pipe right into ldapsearch to confirm from the command line.

Then, take a real user, and act like they are trying to authenticate, 
list the groups they should have, the roles they would be assigned, and 
the service catalog.  We need this stuff piece by piece, to be able to 
troubleshoot.

Is there anything I am missing here? We are not going to have the luxury 
of cranking up logging and looking at data in a live running server;  My 
friend Hippa Sarbanes-Oxley has told me point blank that is a no-go.




More information about the OpenStack-dev mailing list