Add Multi-factor auth and caching
The keystone-rxt plugin will now allow a user to auth with passwords,
apikeys, and leverage multi-factor auth following the multifactor
authentication standards implemented by Rackspace Identity. These
improvements make it possible for all users of Rackspace Identity to
leverage an OpenStack environment with their existing credentials,
in the way that best suits their requirements.
On top of the interaction features this change also adds caching,
which will ensure we're able to efficiently interact with Rackspace
Identity without creating an authentication storm. The plugin will
now pull the service catalog from Rackspace Identity when needed
and then inspect the expires time, should the cached catalog expire,
a new one will be pulled. The same is true for the sessionID used
when dealing with multi-factor auth. Because Rackspace MFA requires
two requests, caching the session will allow us to shortcut the
number of repeat calls being made should a user run many commands
in short order. The caching implementation is fairly basic, but
extends our current capabilities and ensures good user experiences.
Signed-off-by: Kevin Carter <[email protected]>