Set Project ID for synchronization across servers
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Identity (keystone) |
In Progress
|
Undecided
|
Adam Young |
Bug Description
Identifiers
Each resource in Keystone has a unique identifier. For the majority of resources, the identifiers are currently generated as UUIDs. In addition, the identifiers are assigned by the system, and are not something an end user can specify when creating the resource. The theory is that this would prevent identifier squatting, where a user creates a resource with a specified ID in order to deny that ID to another user, or hijack the use of the identifier for some other reason. In practice it means that two Keystone deployments will have different identifiers for resources that should be common, such as role, project, or user groups.
This identifier skew means that to track something for audit purposes you can only correlate on the resource name. But resource names are modifiable.
The limiting fact for using the API to duplicate data from one Keystone system to another is the generation of the identifier. Since a new record always gets a new identifier, and the the value for the identifier can only be generated, the API does not allow matching of records.
However, allowing all users to specify the identifiers when creating records would create the potential for "squatting" on the identifier, and also prevent synchronization.
Thus, for normal record generation, the identifiers should be generated by the system, and explicit identifier specification should be reserved for the synchronization use case only.
With the advent of System scoped roles, we can split the RBAC enforcement on the creation APIs. Normal creation should require a project or domain scoped token. Synchronization should require a system scoped token.
Changed in keystone: | |
assignee: | nobody → Adam Young (ayoung) |
status: | New → In Progress |
Change abandoned by ayoung (<email address hidden>) on branch: master /review. opendev. org/664746
Review: https:/