Authentication Plugin Support

Registered by Dean Troyer

Begin using Keystone client's auth plugins and clean up the authentication options

The first step is to switch to utilizing the ksc plugins: https://review.openstack.org/#/c/106178/ switched to using ksc Sessions and hard-coding the plugins; https://review.openstack.org/#/c/108325/ switched to dynamic plugin support + plugin-specified options.

The auth options need to be cleaned up

The library client creation needs to be cleaned up, particularly where the client accepts a ksc Session now.

Blueprint information

Status:
Complete
Approver:
None
Priority:
High
Drafter:
Dean Troyer
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon m6
Started by
Dean Troyer
Completed by
Dean Troyer

Related branches

Sprints

Whiteboard

* Clarify token-flow vs v[23]Token plugin auth: The ksc Token plugin wants OS_AUTH_URL and OS_TOKEN where the traditional token-flow uses OS_URL and OS_TOKEN and does not set up any auth plugin instance. We should remove the special-case for token-flow and either use ksc's auth.token_endpoint.Token or narrow the token-flow to just Identity for admin_token bootstrapping.

* Clean up option checks: most of those checks can/should now be done by the auth plugins directly. A few sanity checks may still be required and the token-flow vs Token plugin needs to be sorted.
https://review.openstack.org/#/c/129778/

* Convert all client make_client() functions to use Session if possible, otherwise get token/endpoint from auth plugin.

* Remove now-unnecessary old auth attributes from ClientManager

Final cleanup commit: https://review.openstack.org/#/c/129778/

(?)

Work Items

Work items:
Use ksc Session and plugins (https://review.openstack.org/#/c/106178/): DONE
Load auth plugins as requested/required (https://review.openstack.org/#/c/108325/): DONE
Clean up option checks in shell.py: DONE
Clarify usage of token-flow auth vs v[23]Token plugin auth: DONE
Use Session in make_client() functions if possible, otherwise get token/endpoint from auth plugin: DONE
Remove now-unnecessary old auth attributes from ClientManager: DONE

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.