Summary

OpenStack needs an authentication service which will allow for centralization of authentication credentials. Currently we are investigating Keystone for such a system:

User stories

As a deployer of Nova, I want to use Keystone to store authentication credentials.

As a deployer of Nova, I want to use the existing OpenStack authentication credentials.

As a deployer of Nova, I want it to be painless to transition an existing deployment from the existing database into Keystone.

Implementation

All references to OpenStack API refer, more specifically, to the OpenStack Nova API.

Phase 1

http://wiki.openstack.org/Nova/AuthManagerSpec?action=AttachFile&do=get&target=auth_phase1.png

Description of Phase 1 Items

Steps to Complete Phase 1

  1. Creation/completion of "OpenStack API Authentication Middlware" (potentially alternatively called "Token Authentication Middleware" in Keystone.

  2. Creation/completion of "EC2 API Authentication Middleware" in Keystone.
  3. Creation of "Authentication Migration Middleware" in OpenStack Nova.

Phase 2

The first phase was more centered around creating a good migration plan for moving authentication to Keystone. Phase 2 deals with the nova code migration. Much of the current authentication code in OpenStack Nova will be able to be removed and Keystone library calls will replace the existing authentication code.

  1. Replace nova.auth:AuthManager internals with keystone library calls for authentication.

  2. Remove existing Nova authentication middleware and replace it with references to keystone's authentication middleware in Nova's paste deployment file.

Wiki: Nova/AuthManagerSpec (last edited 2011-05-28 17:12:22 by Ziad Sawalha)