Gets an authentication token that permits access to the OpenStack services REST API.
Like most OpenStack projects, OpenStack Identity protects its APIs by
defining policy rules based on a role-based access control (RBAC) approach.
These rules are stored in a JSON policy file. The Identity service
configuration file, keystone.conf
, sets the name and
location of this policy file. For information about Identity API
protection, see Identity API protection with role-based access control
(RBAC) in the
{ "versions": { "values": [ { "id": "v3.4", "links": [ { "href": "http://localhost:35357/v3/", "rel": "self" } ], "media-types": [ { "base": "application/json", "type": "application/vnd.openstack.identity-v3+json" } ], "status": "stable", "updated": "2015-03-30T00:00:00Z" }, { "id": "v2.0", "links": [ { "href": "http://localhost:35357/v2.0/", "rel": "self" }, { "href": "http://docs.openstack.org/", "rel": "describedby", "type": "text/html" } ], "media-types": [ { "base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json" } ], "status": "stable", "updated": "2014-04-17T00:00:00Z" } ] } }
This operation does not accept a request body.
Parameter | Style | Type | Description |
---|---|---|---|
version | plain | xsd:string |
A |
status | plain | xsd:string |
The status of the version. For example,
|
updated | plain | xsd:string |
The date and time stamp for the last update. |
media-types | plain | xsd:string |
A
|
id | plain | xsd:string |
The
version ID, such as |
links | plain | xsd:string |
The version links. |
{ "version": { "id": "v3.4", "links": [ { "href": "http://localhost:35357/v3/", "rel": "self" } ], "media-types": [ { "base": "application/json", "type": "application/vnd.openstack.identity-v3+json" } ], "status": "stable", "updated": "2015-03-30T00:00:00Z" } }
This operation does not accept a request body.
Manages tokens.
Each REST request against the Identity Service requires the
X-Auth-Token
header. Clients obtain this token
and the URL endpoints for other service APIs by supplying
their valid credentials to the authentication service.
A REST interface provides client authentication by using the
auth/tokens
the path. The body
of the request must include a payload of credentials including
the authentication method and, optionally, the authorization
scope. The scope includes either a project or domain. If you
include both project and domain, this call returns the HTTP
Bad Request (400)
status code because a token
cannot be simultaneously scoped as both a project and domain.
If you do not include the optional scope and the
authenticating user has a defined default project (the
default_project_id
attribute for the user),
that default project is treated as the preferred
authorization scope.
If no default project is defined, the token is issued without an explicit scope of authorization.
Provide one of the following sets of credentials to authenticate: User ID and password, user name and password scoped by domain ID or name, user ID and password scoped by project ID or name with or without domain scope, or token.
The following examples demonstrate authentication requests with different types of credentials.
If scope
is included, project id
uniquely identifies the project
. However,
project name
uniquely identifies the
project
only when used in conjunction with a
domain ID
or a domain name
.
If the authentication token has expired, this call returns the HTTP
401
status code.
If the subject token has expired, this call returns
the HTTP 404
status code.
The Identity API treats expired tokens as no longer valid tokens.
The deployment determines how long expired tokens are stored.
As the following example responses show, the
response to an authentication request returns the
token ID in the X-Subject-Token
header
instead of in the token data.
If the call has no explicit authorization scope, the
response does not contain the catalog
,
project
, domain
, or
roles
fields. However, the response
still uniquely identifies the user.
A token scoped to a project
also has
both a service catalog
and the user's
roles applicable to the project
.
A token scoped to a domain
also has
both a service catalog
and the user's
roles applicable to the project
.
Optionally, The Identity API implementation might
return an authentication
attribute to
indicate the supported authentication methods.
For authentication processes that require
multiple round trips, The Identity API implementation
might return an HTTP 401 Unauthorized
error with additional information for the next
authentication step.
The following examples illustrate several possible
HTTP 401 Unauthorized authentication errors. Other
errors like HTTP
Parameter | Style | Type | Description |
---|---|---|---|
auth | plain | xsd:string |
An |
identity | plain | xsd:string |
An
|
methods | plain | xsd:string |
The authentication method, which is
With password authentication, you can specify user ID and password, user name and password scoped by domain ID or name, or user ID and password scoped by project ID or name with or without domain scope. With token authentication, you specify the token ID. |
password (Optional) | plain | xsd:string |
A |
scope (Optional) | plain | xsd:string |
Token can be scoped for a domain or project. Specify
either an |
token (Optional) | plain | xsd:string |
A |
user (Optional) | plain | xsd:string |
A |
id (Optional) | plain | xsd:string |
With password authentication, |
name (Optional) | plain | xsd:string |
The user name. |
password (Optional) | plain | xsd:string |
The password. |
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "id": "0ca8f6", "password": "secretsecret" } } } } }
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "id": "1789d1" }, "name": "Joe", "password": "secretsecret" } } } } }
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "example.com" }, "name": "Joe", "password": "secretsecret" } } } } }
{ "auth": { "identity": { "methods": [ "token" ], "token": { "id": "e80b74" } } } }
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "id": "0ca8f6", "password": "secretsecret" } } }, "scope": { "project": { "id": "263fd9" } } } }
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "id": "0ca8f6", "password": "secretsecret" } } }, "scope": { "domain": { "id": "263fd9" } } } }
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "id": "0ca8f6", "password": "secretsecret" } } }, "scope": { "project": { "domain": { "id": "1789d1" }, "name": "project-x" } } } }
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "id": "0ca8f6", "password": "secretsecret" } } }, "scope": { "project": { "domain": { "name": "example.com" }, "name": "project-x" } } } }
{ "token": { "expires_at": "2013-02-27T18:30:59.999999Z", "issued_at": "2013-02-27T16:30:59.999999Z", "methods": [ "password" ], "user": { "domain": { "id": "1789d1", "links": { "self": "http://identity:35357/v3/domains/1789d1" }, "name": "example.com" }, "id": "0ca8f6", "links": { "self": "http://identity:35357/v3/users/0ca8f6" }, "name": "Joe" } } }
{ "token": { "expires_at": "2013-02-27T18:30:59.999999Z", "issued_at": "2013-02-27T16:30:59.999999Z", "methods": [ "password" ], "endpoints": [ { "links": { "self": "https://region-a.example.com:35357/v3/endpoints/130_P" }, "id": "example-a", "interface": "public", "region_id": "region-a.geo-1", "url": "https://region-a.example.com:35357/v2.0/", "service_id": "100" }, { "links": { "self": "https://region-a.example.com:35357/v3/endpoints/example-a" }, "id": "example-a", "interface": "public", "region_id": "region-a.geo-1", "url": "https://region-a.example.com:35357/v3/", "service_id": "100" } ], "project": { "domain": { "id": "1789d1", "links": { "self": "http://identity:35357/v3/domains/1789d1" }, "name": "example.com" }, "id": "263fd9", "links": { "self": "http://identity:35357/v3/projects/263fd9" }, "name": "project-x" }, "roles": [ { "id": "76e72a", "links": { "self": "http://identity:35357/v3/roles/76e72a" }, "name": "admin" }, { "id": "f4f392", "links": { "self": "http://identity:35357/v3/roles/f4f392" }, "name": "member" } ], "user": { "domain": { "id": "1789d1", "links": { "self": "http://identity:35357/v3/domains/1789d1" }, "name": "example.com" }, "id": "0ca8f6", "links": { "self": "http://identity:35357/v3/users/0ca8f6" }, "name": "Joe" } } }
{ "token": { "expires_at": "2013-02-27T18:30:59.999999Z", "issued_at": "2013-02-27T16:30:59.999999Z", "methods": [ "password" ], "catalog": [ { "type": "identity", "id": "100", "endpoints": [ { "links": { "self": "https://region-a.example.com:35357/v3/endpoints/130_P" }, "id": "example-a", "interface": "public", "region_id": "region-a.geo-1", "url": "https://region-a.example.com:35357/v2.0/", "service_id": "100" }, { "links": { "self": "https://region-a.example.com:35357/v3/endpoints/example-a" }, "id": "example-a", "interface": "public", "region_id": "region-a.geo-1", "url": "https://region-a.example.com:35357/v3/", "service_id": "100" } ] } ], "domain": { "id": "1789d1", "links": { "self": "http://identity:35357/v3/domains/1789d1" }, "name": "example.com" }, "roles": [ { "id": "76e72a", "links": { "self": "http://identity:35357/v3/roles/76e72a" }, "name": "admin" }, { "id": "f4f392", "links": { "self": "http://identity:35357/v3/roles/f4f392" }, "name": "member" } ], "user": { "domain": { "id": "1789d1", "links": { "self": "http://identity:35357/v3/domains/1789d1" }, "name": "example.com" }, "id": "0ca8f6", "links": { "self": "http://identity:35357/v3/users/0ca8f6" }, "name": "Joe" } } }
{ "error": { "code": 401, "message": "The request you have made requires authentication", "title": "Not Authorized" } }
{ "error": { "code": 401, "identity": { "methods": [ "password", "token", "challenge-response" ] }, "message": "Need to authenticate with one or more supported methods", "title": "Not Authorized" } }
{ "error": { "code": 401, "identity": { "challenge-response": { "challenge": "What was the zip code of your birthplace?", "session_id": "123456" }, "methods": [ "challenge-response" ] }, "message": "Additional authentications steps required.", "title": "Not Authorized" } }
Pass your own token in the X-Auth-Token
header and the token to be validated in the
X-Subject-Token
header. The Identity
API returns the same response as when the subject
token was issued by POST /auth/tokens
.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
X-Subject-Token | header | xsd:string |
The token ID. |
Parameter | Style | Type | Description |
---|---|---|---|
token | plain | xsd:string |
A |
expires_at | plain | xsd:string |
The date and time stamp for when the token expires. |
issued_at | plain | xsd:string |
The date and time stamp for when the token was issued. |
methods | plain | xsd:string |
The authentication method, which is
With password authentication, you can specify user ID and password, user name and password scoped by domain ID or name, or user ID and password scoped by project ID or name with or without domain scope. With token authentication, you specify the token ID. |
user (Optional) | plain | xsd:string |
A |
domain (Optional) | plain | xsd:string |
Specify either |
id | plain | xsd:string |
The domain ID. |
links | plain | xsd:dict |
The domain links. |
name | plain | xsd:string |
The domain name. |
id | plain | xsd:string |
The user ID. |
links | plain | xsd:dict |
The user links. |
name | plain | xsd:string |
The user name. |
Headers: X-Auth-Token: 1dd7e3 X-Subject-Token: c67580
{ "token": { "expires_at": "2013-02-27T18:30:59.999999Z", "issued_at": "2013-02-27T16:30:59.999999Z", "methods": [ "password" ], "user": { "domain": { "id": "1789d1", "links": { "self": "http://identity:35357/v3/domains/1789d1" }, "name": "example.com" }, "id": "0ca8f6", "links": { "self": "http://identity:35357/v3/users/0ca8f6" }, "name": "Joe" } } }
This call is similar to GET
/auth/tokens
, but no response body is
provided, even in the X-Subject-Token
header.
The Identity API returns the same response as
when the subject token was issued by POST
/auth/tokens
, even if an error occurs
because the token is not valid. A 204 response
indicates that the X-Subject-Token
is
valid.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
X-Subject-Token | header | xsd:string |
The token ID. |
Headers: X-Auth-Token: 1dd7e3 X-Subject-Token: c67580
This operation does not return a response body.
This call is similar to HEAD
/auth/tokens
, except that the
X-Subject-Token
token is immediately
not valid (regardless of the expires_at
attribute). An additional X-Auth-Token
is
not required.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
X-Subject-Token | header | xsd:string |
The token ID. |
Headers: X-Auth-Token: 1dd7e3 X-Subject-Token: c67580
This operation does not return a response body.
Manages the catalog of services.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
type | plain | xsd:string |
The service type. |
name (Optional) | plain | xsd:string |
The service name. |
enabled (Optional) | plain | xsd:boolean |
Enables or disables a service. If |
Parameter | Style | Type | Description |
---|---|---|---|
links | plain | csapi:dict |
Policy links. |
services | plain | xsd:string |
A |
description (Optional) | plain | xsd:string |
The description. |
id | plain | xsd:string |
The service ID. |
links | plain | xsd:string |
The service links. |
name | plain | xsd:string |
The service name. |
type | plain | xsd:string |
The service type. |
{ "service": { "type": "volume" } }
{ "service": { "enabled": true, "id": "686766", "links": { "self": "http://identity:5000/v3/services/686766" }, "type": "volume" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
type (Optional) | query | xsd:string |
Filters by service type. Service types include compute, ec2, image, and identity. |
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
Parameter | Style | Type | Description |
---|---|---|---|
services | plain | xsd:string |
A |
description (Optional) | plain | xsd:string |
The description. |
enabled | plain | xsd:boolean |
If |
id | plain | xsd:string |
The service ID. |
links | plain | xsd:string |
The service links. |
name | plain | xsd:string |
The service name. |
type | plain | xsd:string |
The service type. |
{ "links": { "next": null, "previous": null, "self": "http://identity:5000/v3/services" }, "services": [ { "description": "Keystone Identity Service", "enabled": true, "id": "686766", "links": { "self": "http://identity:5000/v3/services/686766" }, "name": "keystone", "type": "identity" }, { "enabled": true, "id": "936521", "links": { "self": "http://identity:5000/v3/services/936521" }, "type": "volume" } ] }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
service_id | URI | capi:uuid |
The service ID. |
Parameter | Style | Type | Description |
---|---|---|---|
service | plain | xsd:string |
A |
description (Optional) | plain | xsd:string |
The description. |
enabled | plain | xsd:boolean |
If |
id | plain | xsd:string |
The service ID. |
links | plain | xsd:string |
The service links. |
name | plain | xsd:string |
The service name. |
type | plain | xsd:string |
The service type. |
{ "service": { "description": "Keystone Identity Service", "enabled": true, "id": "686766", "links": { "self": "http://identity:5000/v3/services/686766" }, "name": "keystone", "type": "identity" } }
This operation does not accept a request body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
service_id | URI | capi:uuid |
The service ID. |
type | plain | xsd:string |
The service type. |
Parameter | Style | Type | Description |
---|---|---|---|
services | plain | xsd:string |
A |
id | plain | xsd:string |
The service ID. |
type | plain | xsd:string |
The service type. |
{ "type": "volume" }
{ "service": { "id": "686766", "type": "volume" } }
Deleting a service when endpoints exist should either (1) delete all associated endpoints or (2) fail until endpoints are deleted.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
service_id | URI | capi:uuid |
The service ID. |
This operation does not accept a request body and does not return a response body.
Manages endpoints.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
endpoint | plain | xsd:string |
An |
interface | plain | xsd:string |
The interface type, which is |
name | plain | xsd:string |
The name. |
region | plain | xsd:string |
The service region. |
url | plain | xsd:string |
The service URL. |
service_id | plain | xsd:string |
The service ID. |
Parameter | Style | Type | Description |
---|---|---|---|
endpoint | plain | xsd:string |
An |
interface | plain | xsd:string |
The interface type, which is |
links | plain | csapi:dict |
Policy links. |
name | plain | xsd:string |
The name. |
region | plain | xsd:string |
The service region. |
url | plain | xsd:string |
The service URL. |
service_id | plain | xsd:string |
The service ID. |
{ "endpoint": { "interface": "public", "name": "name", "region": "north", "url": "http://identity:35357/v3/endpoints/828384", "service_id": "686766" } }
{ "endpoint": { "id": "828384", "interface": "internal", "links": { "self": "http://identity:35357/v3/endpoints/828384" }, "name": "the internal volume endpoint", "region": "north", "service_id": "686766", "url": "http://identity:35357/v3/endpoints/828384" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
interface (Optional) | query | xsd:string |
Filters by interface. |
service_id (Optional) | query | xsd:string |
Filters by service_id. |
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
Parameter | Style | Type | Description |
---|---|---|---|
endpoints | plain | xsd:string |
An |
enabled | plain | xsd:boolean |
If |
id | plain | xsd:uuid |
The endpoint ID. |
interface | plain | xsd:string |
The interface type, which is |
links | plain | xsd:dict |
The endpoint links. |
region | plain | xsd:string |
The service region. |
region_id | plain | xsd:string |
The service region ID. |
service_id | plain | xsd:string |
The service ID. |
url | plain | xsd:string |
The service URL. |
{ "endpoints": [ { "id": "828384", "interface": "public", "links": { "self": "http://identity:35357/v3/endpoints/828384" }, "name": "the public volume endpoint", "service_id": "686766" }, { "id": "642136", "interface": "internal", "links": { "self": "http://identity:35357/v3/endpoints/642136" }, "name": "the internal volume endpoint", "service_id": "686766" } ] }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
endpoint_id | URI | capi:uuid |
The endpoint ID. |
endpoint | plain | xsd:string |
An |
interface (Optional) | plain | xsd:string |
The interface type, which is |
name | plain | xsd:string |
The name. |
region (Optional) | plain | xsd:string |
The service region. |
url (Optional) | plain | xsd:string |
The service URL. |
service_id (Optional) | plain | xsd:string |
The service ID. |
Parameter | Style | Type | Description |
---|---|---|---|
endpoint | plain | xsd:string |
An |
interface | plain | xsd:string |
The interface type, which is |
links | plain | csapi:dict |
Policy links. |
name | plain | xsd:string |
The name. |
region | plain | xsd:string |
The service region. |
url | plain | xsd:string |
The service URL. |
service_id | plain | xsd:string |
The service ID. |
{ "endpoint": { "interface": "public", "name": "Name", "region": "north", "url": "http://identity:35357/v3/endpoints/828384", "service_id": "345678" } }
{ "endpoint": { "id": "828384", "interface": "internal", "links": { "self": "http://identity:35357/v3/endpoints/828384" }, "name": "the internal volume endpoint", "region": "north", "service_id": "686766", "url": "http://identity:35357/v3/endpoints/828384" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
endpoint_id | URI | capi:uuid |
The endpoint ID. |
This operation does not accept a request body and does not return a response body.
Manages domains.
Domains represent collections of users, groups, and projects. Each is owned by exactly one domain. Users, however, can be associated with multiple projects by granting roles to the user on a project, including projects owned by other domains.
Each domain defines a namespace where certain API-visible name attributes exist, which affects whether those names must be globally unique or unique within that domain. In the Identity API, the uniqueness of the following attributes is as follows:
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
description (Optional) | plain | xsd:string |
The domain description. |
enabled (Optional) | plain | xsd:boolean |
Enables or disables a domain.
Set to |
name | plain | xsd:string |
The domain name. |
Parameter | Style | Type | Description |
---|---|---|---|
description (Optional) | plain | xsd:string |
The description. |
enabled (Optional) | plain | xsd:boolean |
If |
id | plain | xsd:string |
The domain ID. |
links | plain | csapi:dict |
Policy links. |
name | plain | xsd:string |
The name of the resource. |
{ "domain": { "description": "Domain description", "enabled": true, "name": "myDomain" } }
{ "domain": { "description": "Domain description", "enabled": true, "id": "161718", "links": { "self": "http://identity:35357/v3/domains/161718" }, "name": "myDomain" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
name (Optional) | query | xsd:string |
Filters on a name. |
enabled (Optional) | query | xsd:string |
Filters on enabled or disabled roles. Values are
|
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
Parameter | Style | Type | Description |
---|---|---|---|
description (Optional) | plain | xsd:string |
The description. |
enabled (Optional) | plain | xsd:boolean |
If |
id | plain | csapi:uuid |
The credential ID. |
links | plain | csapi:dict |
Policy links. |
name | plain | xsd:string |
The name of the resource. |
{ "domains": [ { "description": "Domain description", "enabled": true, "id": "161718", "links": { "self": "http://identity:35357/v3/domains/161718" }, "name": "myDomain" }, { "description": "Another domain", "enabled": true, "id": "864369", "links": { "self": "http://identity:35357/v3/domains/864369" }, "name": "anotherDomain" } ] }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
Parameter | Style | Type | Description |
---|---|---|---|
domains | plain | xsd:string |
A |
description (Optional) | plain | xsd:string |
The description. |
enabled (Optional) | plain | xsd:boolean |
If |
id | plain | xsd:string |
The domain ID. |
links | plain | csapi:dict |
Policy links. |
name | plain | xsd:string |
The name of the resource. |
{ "domain": { "description": "Domain description", "enabled": true, "id": "161718", "links": { "self": "http://identity:35357/v3/domains/161718" }, "name": "myDomain" } }
This operation does not accept a request body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
description (Optional) | plain | xsd:string |
The domain description. |
enabled (Optional) | plain | xsd:boolean |
Enables or disables a domain.
Set to |
name | plain | xsd:string |
The domain name. |
{ "domain": { "description": "my updated domain", "enabled": true, "name": "myUpdatedDomain" } }
{ "domain": { "description": "my updated domain", "enabled": true, "id": "161718", "links": { "self": "http://identity:35357/v3/domains/161718" }, "name": "myUpdatedDomain" } }
To minimize the risk of accidentally deleting a
domain, you must first disable the domain by using the
update domain API. If you try to delete an enabled
domain, the call returns an HTTP 403
Forbidden
response.
Deleting a domain deletes all entities owned by it, such as users, groups, and projects, as well as any credentials and granted roles that relate to those entities.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
This operation does not accept a request body and does not return a response body.
Lists roles for a user on a domain.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
user_id | URI | capi:uuid |
The user ID. |
{ "roles": [ { "id": "123456", "links": { "self": "http://identity:35357/v3/roles/123456" }, "name": "admin" }, { "id": "123457", "links": { "self": "http://identity:35357/v3/roles/123457" }, "name": "manager" } ], "links": { "self": "http://identity:35357/v3/domains/161718/users/313233/roles", "previous": null, "next": null } }
This operation does not accept a request body.
Grants a role to a specified domain user.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
user_id | URI | capi:uuid |
The user ID. |
role_id | URI | capi:uuid |
The role ID. |
This operation does not accept a request body and does not return a response body.
Validates that a user has a role on a domain.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
user_id | URI | capi:uuid |
The user ID. |
role_id | URI | capi:uuid |
The role ID. |
This operation does not accept a request body and does not return a response body.
Revokes a role from a specified domain user.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
user_id | URI | capi:uuid |
The user ID. |
role_id | URI | capi:uuid |
The role ID. |
This operation does not accept a request body and does not return a response body.
Lists roles for a specified domain group.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
group_id | URI | capi:uuid |
The group ID. |
{ "roles": [ { "id": "123456", "links": { "self": "http://identity:35357/v3/roles/123456" }, "name": "admin" }, { "id": "123457", "links": { "self": "http://identity:35357/v3/roles/123457" }, "name": "manager" } ], "links": { "self": "http://identity:35357/v3/domains/161718/groups/101112/roles", "previous": null, "next": null } }
This operation does not accept a request body.
Grants a specified role to a specified domain group.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
group_id | URI | capi:uuid |
The group ID. |
role_id | URI | capi:uuid | The role ID. |
This operation does not accept a request body and does not return a response body.
Validates that a group has a role on a domain.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
group_id | URI | capi:uuid |
The group ID. |
role_id | URI | capi:uuid | The role ID. |
This operation does not accept a request body and does not return a response body.
Revokes a role from a group on a domain.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id | URI | capi:uuid |
The domain ID. |
group_id | URI | capi:uuid |
The group ID. |
role_id | URI | capi:uuid | The role ID. |
This operation does not accept a request body and does not return a response body.
Manages projects.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
description (Optional) | plain | xsd:string |
The project description. |
domain_id (Optional) | plain | csapi:uuid |
The ID of the domain for the project. |
parent_id (Optional) | plain | csapi:uuid |
The ID of the parent project. |
enabled (Optional) | plain | xsd:boolean |
Enables or disables a project.
Set to |
name | plain | xsd:string |
The project name. |
Parameter | Style | Type | Description |
---|---|---|---|
description | plain | xsd:string |
The project description. |
domain_id | plain | csapi:uuid |
The ID of the domain for the project. |
parent_id | plain | csapi:uuid |
The ID of the parent project. |
enabled | plain | xsd:boolean |
If set to |
id | plain | csapi:uuid |
The ID for the project. |
links | plain | xsd:dict |
The project links. |
name | plain | xsd:string |
The project name. |
{ "project": { "description": "My new project", "domain_id": "1789d1", "parent_id": "123c56", "enabled": true, "name": "myNewProject" } }
{ "project": { "domain_id": "1789d1", "parent_id": "123c56", "enabled": true, "id": "456789", "links": { "self": "http://identity:35357/v3/projects/456789" }, "name": "myNewProject" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id (Optional) | query | xsd:string |
Filters on domain_id. |
parent_id (Optional) | query | xsd:string |
Filters on parent_id. |
name (Optional) | query | xsd:string |
Filters on a name. |
enabled (Optional) | query | xsd:string |
Filters on enabled or disabled roles. Values are
|
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
{ "projects": [ { "domain_id": "1789d1", "parent_id": "123c56", "enabled": true, "id": "263fd9", "links": { "self": "https://identity:35357/v3/projects/263fd9" }, "name": "Test Group" }, { "domain_id": "1789d1", "parent_id": "123c56", "enabled": true, "id": "50ef01", "links": { "self": "https://identity:35357/v3/projects/50ef01" }, "name": "Build Group" } ], "links": { "self": "https://identity:35357/v3/users/9fe1d3/projects", "previous": null, "next": null } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
{ "project": { "domain_id": "1789d1", "parent_id": "123c56", "enabled": true, "id": "456789", "links": { "self": "http://identity:35357/v3/projects/456789" }, "name": "myNewProject" } }
This operation does not accept a request body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
{ "project": { "description": "My updated project", "domain_id": "1789d1", "parent_id": "123c56", "enabled": true, "name": "myUpdatedProject" } }
{ "project": { "description": "My updated project", "domain_id": "1789d1", "parent_id": "123c56", "enabled": true, "id": "263fd9", "links": { "self": "http://identity:35357/v3/projects/263fd9" }, "name": "myUpdatedProject" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
This operation does not accept a request body and does not return a response body.
Lists roles for a user in a project.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
user_id | URI | capi:uuid |
The user ID. |
{ "roles": [ { "id": "123456", "links": { "self": "http://identity:35357/v3/roles/123456" }, "name": "admin" }, { "id": "123457", "links": { "self": "http://identity:35357/v3/roles/123457" }, "name": "manager" } ], "links": { "self": "http://identity:35357/v3/projects/456789/users/313233/roles", "previous": null, "next": null } }
This operation does not accept a request body.
Grants a role to a user on a project.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
user_id | URI | capi:uuid |
The user ID. |
role_id | URI | capi:uuid |
The role ID. |
This operation does not accept a request body and does not return a response body.
Validates that a user has a specified role on a project.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
user_id | URI | capi:uuid |
The user ID. |
role_id | URI | capi:uuid |
The role ID. |
This operation does not accept a request body and does not return a response body.
Revokes a role from a project user.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
user_id | URI | capi:uuid |
The user ID. |
role_id | URI | capi:uuid |
The role ID. |
This operation does not accept a request body and does not return a response body.
Lists roles for a project group.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
group_id | URI | capi:uuid |
The group ID. |
{ "roles": [ { "id": "123456", "links": { "self": "http://identity:35357/v3/roles/123456" }, "name": "admin" }, { "id": "123457", "links": { "self": "http://identity:35357/v3/roles/123457" }, "name": "manager" } ], "links": { "self": "http://identity:35357/v3/projects/456789/groups/101112/roles", "previous": null, "next": null } }
This operation does not accept a request body.
Grants a role to a project group.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
group_id | URI | capi:uuid |
The group ID. |
role_id | URI | capi:uuid |
The role ID. |
This operation does not accept a request body and does not return a response body.
Validates that a project group has a role.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
group_id | URI | capi:uuid |
The group ID. |
role_id | URI | capi:uuid |
The role ID. |
This operation does not accept a request body and does not return a response body.
Revokes a role from a project group.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
project_id | URI | xsd:string | The project ID. |
group_id | URI | capi:uuid |
The group ID. |
role_id | URI | capi:uuid |
The role ID. |
This operation does not accept a request body and does not return a response body.
Manages users.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
user | plain | xsd:string |
A |
default_project_id (Optional) | plain | xsd:string |
The default tenant for the new user. |
description (Optional) | plain | xsd:string |
The user description. |
domain_id (Optional) | plain | csapi:uuid |
The ID of the domain for the new user. |
email (Optional) | plain | xsd:string |
The email address for the new user. |
enabled (Optional) | plain | xsd:boolean |
Enables or disables the new user. To enable the user, set to
|
name | plain | xsd:string |
The user name. |
password (Optional) | plain | xsd:string |
The user password. Required for some authentication back ends. |
Parameter | Style | Type | Description |
---|---|---|---|
user | plain | xsd:string |
A |
default_project_id | plain | xsd:string |
The default tenant for the new user. |
description | plain | xsd:string |
The user description. |
domain_id | plain | csapi:uuid |
The ID of the domain for the new user. |
plain | xsd:string |
The email address for the new user. |
|
enabled | plain | xsd:boolean |
If the user is enabled, this value is |
name | plain | xsd:string |
The user name. |
id | plain | csapi:uuid |
The ID for the new user. |
links | plain | xsd:dict |
The links for the new user. |
password | plain | xsd:string |
The user password. Required for some authentication back ends. |
{ "user": { "default_project_id": "263fd9", "description": "James Doe's user", "domain_id": "1789d1", "email": "jdoe@example.com", "enabled": true, "name": "James Doe", "password": "secretsecret" } }
{ "user": { "default_project_id": "263fd9", "description": "James Doe's user", "domain_id": "1789d1", "email": "jdoe@example.com", "enabled": true, "id": "ff4e51", "links": { "self": "https://identity:35357/v3/users/ff4e51" }, "name": "James Doe" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id (Optional) | query | xsd:string |
Filters on domain_id. |
name (Optional) | query | xsd:string |
Filters on a name. |
enabled (Optional) | query | xsd:string |
Filters on enabled or disabled roles. Values are
|
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
{ "users": [ { "default_project_id": "263fd9", "description": "Admin user", "domain_id": "1789d1", "email": "admin@example.com", "enabled": true, "id": "0ca8f6", "links": { "self": "https://identity:35357/v3/users/0ca8f6" }, "name": "admin" }, { "default_project_id": "263fd9", "description": "John Smith's user", "domain_id": "1789d1", "email": "jsmith@example.com", "enabled": true, "id": "9fe1d3", "links": { "self": "https://identity:35357/v3/users/9fe1d3" }, "name": "jsmith" } ], "links": { "self": "http://identity:35357/v3/users", "previous": null, "next": null } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
user_id | URI | capi:uuid | The user ID. |
{ "user": { "default_project_id": "263fd9", "description": "John Smith's user", "domain_id": "1789d1", "email": "jsmith@example.com", "enabled": true, "id": "9fe1d3", "links": { "self": "https://identity:35357/v3/users/9fe1d3" }, "name": "jsmith" } }
This operation does not accept a request body.
Updates the password for or enables or disables a specified user.
This operation might return the HTTP 501 Not
Implemented
code if the back-end driver
does not allow this functionality.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
user_id | URI | capi:uuid | The user ID. |
{ "user": { "default_project_id": "263fd9", "description": "James Doe's user", "email": "jamesdoe@example.com", "enabled": true } }
{ "user": { "default_project_id": "263fd9", "description": "James Doe's user", "domain_id": "1789d1", "email": "jamesdoe@example.com", "enabled": true, "id": "ff4e51", "links": { "self": "https://identity:35357/v3/users/ff4e51" }, "name": "jamesdoe" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
user_id | URI | capi:uuid | The user ID. |
This operation does not accept a request body and does not return a response body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
user_id | URI | capi:uuid | The user ID. |
{ "groups": [ { "description": "Developers cleared for work on all general projects", "domain_id": "1789d1", "id": "ea167b", "links": { "self": "https://identity:35357/v3/groups/ea167b" }, "name": "Developers" }, { "description": "Developers cleared for work on secret projects", "domain_id": "1789d1", "id": "a62db1", "links": { "self": "https://identity:35357/v3/groups/a62db1" }, "name": "Secure Developers" } ], "links": { "self": "http://identity:35357/v3/users/9fe1d3/groups", "previous": null, "next": null } }
This operation does not accept a request body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
user_id | URI | capi:uuid | The user ID. |
{ "projects": [ { "description": "description of this project", "domain_id": "161718", "enabled": true, "id": "456788", "parent_id": "212223", "links": { "self": "http://identity:35357/v3/projects/456788" }, "name": "a project name" }, { "description": "description of this project", "domain_id": "161718", "enabled": true, "id": "456789", "parent_id": "212223", "links": { "self": "http://identity:35357/v3/projects/456789" }, "name": "another domain" } ], "links": { "self": "http://identity:35357/v3/users/313233/projects", "previous": null, "next": null } }
This operation does not accept a request body.
Manages groups.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
description (Optional) | plain | xsd:string |
The group description. |
domain_id (Optional) | plain | csapi:uuid |
The ID of the domain for the group. |
name | plain | xsd:string |
The group name. |
{ "group": { "description": "Developers cleared for work on secret projects", "domain_id": "161718", "name": "Secure Developers" } }
{ "group": { "description": "Developers cleared for work on secret projects", "domain_id": "161718", "id": "101112", "links": { "self": "http://identity:35357/v3/groups/101112" }, "name": "Secure Developers" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
domain_id (Optional) | query | xsd:string |
Filters on domain_id. |
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
Parameter | Style | Type | Description |
---|---|---|---|
description (Optional) | plain | xsd:string |
The description. |
domain_id | plain | xsd:string |
The domain ID. |
id | plain | csapi:uuid |
The credential ID. |
links | plain | csapi:dict |
Policy links. |
name | plain | xsd:string |
The name of the resource. |
{ "groups": [ { "description": "Developers cleared for work on all general projects", "domain_id": "161718", "id": "101112", "links": { "self": "http://identity:35357/v3/groups/101112" }, "name": "Developers" }, { "description": "Developers cleared for work on secret projects", "domain_id": "161718", "id": "101113", "links": { "self": "http://identity:35357/v3/groups/101113" }, "name": "Secure Developers" }, { "description": "Testers cleared for work on all general projects", "domain_id": "161718", "id": "101114", "links": { "self": "http://identity:35357/v3/groups/101114" }, "name": "Testers" } ], "links": { "self": "http://identity:35357/v3/groups", "previous": null, "next": null } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
group_id | URI | capi:uuid | The group ID. |
Parameter | Style | Type | Description |
---|---|---|---|
description (Optional) | plain | xsd:string |
The description. |
domain_id | plain | xsd:string |
The domain ID. |
id | plain | csapi:uuid |
The credential ID. |
links | plain | csapi:dict |
Policy links. |
name | plain | xsd:string |
The name of the resource. |
{ "group": { "description": "Developers cleared for work on secret projects", "domain_id": "161718", "id": "101112", "links": { "self": "http://identity:35357/v3/groups/101112" }, "name": "Secure Developers" } }
This operation does not accept a request body.
Use this operation to update the name or description
of a group. This operation might return the HTTP
501 Not Implemented
code if the
back-end driver does not allow this functionality.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
group_id | URI | capi:uuid | The group ID. |
{ "group": { "description": "my updated group", "name": "myUpdatedGroup" } }
{ "group": { "description": "my updated group", "domain_id": "161718", "id": "101112", "links": { "self": "http://identity:35357/v3/groups/101112" }, "name": "myUpdatedGroup" } }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
group_id | URI | capi:uuid | The group ID. |
This operation does not accept a request body and does not return a response body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
group_id | URI | capi:uuid | The group ID. |
name (Optional) | query | xsd:string |
Filters on a name. |
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
domain_id (Optional) | query | xsd:string |
Filters on domain_id. |
description (Optional) | query | xsd:string |
Filters on a description. |
name (Optional) | query | xsd:string |
Filters on a name. |
enabled (Optional) | query | xsd:string |
Filters on enabled or disabled roles. Values are
|
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
{ "users": [ { "default_project_id": "414345", "description": "a user", "domain_id": "161718", "email": "user@example.com", "enabled": true, "id": "313233", "links": { "self": "http://identity:35357/v3/users/313233" }, "name": "admin" }, { "default_project_id": "414345", "description": "another user", "domain_id": "161718", "email": "user@example.com", "enabled": true, "id": "313233", "links": { "self": "http://identity:35357/v3/users/313233" }, "name": "someone" } ], "links": { "self": "http://identity:35357/v3/groups/101112/users", "previous": null, "next": null } }
Assigns a specified user to a specified group.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
group_id | URI | capi:uuid | The group ID. |
user_id | URI | capi:uuid | The user ID. |
This operation does not accept a request body and does not return a response body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
group_id | URI | capi:uuid | The group ID. |
user_id | URI | capi:uuid | The user ID. |
This operation does not accept a request body and does not return a response body.
Validates that a user is in a group.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
group_id | URI | capi:uuid | The group ID. |
user_id | URI | capi:uuid | The user ID. |
This operation does not accept a request body and does not return a response body.
Manages credentials.
The following example shows how to create an EC2-style
credential. The credential blob is a string that contains a
JSON-serialized dictionary with the access
and
secret
keys. This format is required when you
specify the ec2
type. To specify other
credentials such as access_key
, change the type
and contents of the data blob.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
{ "blob": "{\"access\":\"181920\",\"secret\":\"secretKey\"}", "project_id": "456789", "type": "ec2", "user_id": "616263" }
{ "blob": "{\"access\":\"181920\",\"secret\":\"secretKey\"}", "id": "414243", "links": { "self": "http://identity:35357/v3/credentials/414243" }, "project_id": "456789", "type": "ec2", "user_id": "616263" }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
user_id (Optional) | query | xsd:string |
Filters on user_id. |
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
Parameter | Style | Type | Description |
---|---|---|---|
blob | plain | xsd:string |
The policy rule set itself, as a serialized blob. |
id | plain | csapi:uuid |
The credential ID. |
links | plain | csapi:dict |
Policy links. |
project_id | plain | csapi:uuid |
The UUID for the project. |
type | plain | xsd:string |
The MIME media type of the serialized policy blob. |
user_id | plain | xsd:string |
The ID of the user who owns the credential. |
[ { "blob": "{\"access\":\"181920\",\"secret\":\"secretKey\"}", "id": "414243", "links": { "self": "http://identity:35357/v3/credentials/414243" }, "project_id": "456789", "type": "ec2", "user_id": "616263" }, { "blob": "{\"access\":\"181920\",\"secret\":\"secretKey\"}", "id": "414243", "links": { "self": "http://identity:35357/v3/credentials/414243" }, "project_id": "456789", "type": "ec2", "user_id": "616263" } ]
Shows details for a specified credential.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
credential_id | URI | capi:uuid | The credential ID. |
{ "blob": "{\"access\":\"181920\",\"secret\":\"secretKey\"}", "id": "414243", "links": { "self": "http://identity:35357/v3/credentials/414243" }, "project_id": "456789", "type": "ec2", "user_id": "616263" }
This operation does not accept a request body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
credential_id | URI | capi:uuid | The credential ID. |
{ "blob": "{\"access\":\"181920\",\"secret\":\"secretKey\"}", "project_id": "456789", "type": "ec2", "user_id": "616263" }
{ "blob": "{\"access\":\"181920\",\"secret\":\"secretKey\"}", "id": "414243", "links": { "self": "http://identity:35357/v3/credentials/414243" }, "project_id": "456789", "type": "ec2", "user_id": "616263" }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
credential_id | URI | capi:uuid | The credential ID. |
This operation does not accept a request body and does not return a response body.
Manages roles.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
name | plain | xsd:string |
The role name. |
{ "role": { "name": "a role name" } }
{ "id": "123456", "links": { "self": "http://identity:35357/v3/roles/123456" }, "name": "a role name" }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
name (Optional) | query | xsd:string |
Filters on a name. |
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
{ "roles": [ { "id": "123456", "links": { "self": "http://identity:35357/v3/roles/123456" }, "name": "admin" }, { "id": "123457", "links": { "self": "http://identity:35357/v3/roles/123457" }, "name": "manager" } ], "links": { "self": "http://identity:35357/v3/roles", "previous": null, "next": null } }
The list of all role assignments can be long. To filter the list, use the query parameters.
Some typical examples are:
GET /role_assignments?user.id={user_id}
lists all role assignments for the specified
user.
GET
/role_assignments?scope.project.id={project_id}
lists all role assignments for the specified
project.
Each role assignment entity in the collection contains a link to the assignment that created this entity.
Use the effective
query parameter to
list effective assignments at the user, project, and
domain level. This parameter allows for the effects of
group membership. The group role assignment entities
themselves are not returned in the collection. This
represents the effective role assignments that would
be included in a scoped token. You can use the other
query parameters with the effective
parameter.
For example, to determine what a user can actually
do, issue this request: GET
/role_assignments?user.id={user_id}&effective
To return the equivalent set of role assignments
that would be included in the token response of a
project-scoped token, issue: GET
/role_assignments?user.id={user_id}&scope.project.id={project_id}&effective
In the response, the entity links
section for entities that are included by virtue of
group members also contains a url that you can use to
access the membership of the group.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
group.id (Optional) | query | xsd:string |
Filters on group ID.
Specify |
role.id (Optional) | query | xsd:string |
Filters on role ID.
Specify |
scope.domain.id (Optional) | query | xsd:string |
Filters on domain ID.
Specify
|
scope.project.id (Optional) | query | xsd:string |
Filters on project ID.
Specify
|
user.id (Optional) | query | xsd:string |
Filters on user ID.
Specify |
effective (Optional) | query | xsd:key |
Lists effective assignments at the user, project, and domain level, allowing for the effects of group membership. The group role assignment entities themselves are not returned in the collection. This represents the effective role
assignments that would be included in a
scoped token. You can use the other query
parameters with the |
GET /role_assignments?user.id={user_id}&scope.project.id={project_id}&effective
{ "role_assignments": [ { "links": { "assignment": "http://identity:35357/v3/domains/161718/users/313233/roles/123456" }, "role": { "id": "123456" }, "scope": { "domain": { "id": "161718" } }, "user": { "id": "313233" } }, { "group": { "id": "101112" }, "links": { "assignment": "http://identity:35357/v3/projects/456789/groups/101112/roles/123456" }, "role": { "id": "123456" }, "scope": { "project": { "id": "456789" } } } ], "links": { "self": "http://identity:35357/v3/role_assignments", "previous": null, "next": null } }
GET /role_assignments?user.id={user_id}&scope.project.id={project_id}&effective
{ "role_assignments": [ { "links": { "assignment": "http://identity:35357/v3/domains/161718/users/313233/roles/123456" }, "role": { "id": "123456" }, "scope": { "domain": { "id": "161718" } }, "user": { "id": "313233" } }, { "links": { "assignment": "http://identity:35357/v3/projects/456789/groups/101112/roles/123456", "membership": "http://identity:35357/v3/groups/101112/users/313233" }, "role": { "id": "123456" }, "scope": { "project": { "id": "456789" } }, "user": { "id": "313234" } } ], "links": { "self": "http://identity:35357/v3/role_assignments?effective", "previous": null, "next": null } }
This operation does not accept a request body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
role_id | URI | capi:uuid | The role ID. |
This operation does not accept a request body and does not return a response body.
Manages policies.
You can encode policy rule sets into a blob to be consumed by
remote services. To do so, set type
to
application/json
and specify policy rules as JSON strings in a
blob
. For example:
"blob": { "default": false }
Or:
"blob": { "foobar_user": [ "role:compute-user" ] }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
blob | plain | xsd:string |
The policy rule set itself, as a serialized blob. |
project_id | plain | csapi:uuid |
The UUID for the project. |
type | plain | xsd:string |
The MIME media type of the serialized policy blob. From the
perspective of the Identity API, a policy blob can be based on any
technology. In OpenStack, the |
user_id | plain | xsd:string |
The ID of the user who owns the credential. |
Parameter | Style | Type | Description |
---|---|---|---|
blob | plain | xsd:string |
The policy rule set itself, as a serialized blob. |
id | plain | csapi:uuid |
The credential ID. |
links | plain | csapi:dict |
Policy links. |
project_id | plain | csapi:uuid |
The UUID for the project. |
type | plain | xsd:string |
The MIME media type of the serialized policy blob. |
user_id | plain | xsd:string |
The ID of the user who owns the credential. |
{ "blob": { "default": false }, "project_id": "456789", "type": "application/json", "user_id": "616263" }
{ "blob": { "foobar_user": [ "role:compute-user" ] }, "id": "717273", "links": { "self": "http://identity:35357/v3/policies/717273" }, "project_id": "456789", "type": "application/json", "user_id": "616263" }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
type (Optional) | query | xsd:string |
Filters by service type. Service types include compute, ec2, image, and identity. |
page (Optional) | query | xsd:string |
Enables you to page through the list. |
per_page (Optional) | query | xsd:string |
Sets the page size for paging through the list. Default page size is 30. |
Parameter | Style | Type | Description |
---|---|---|---|
blob | plain | xsd:string |
The policy rule set itself, as a serialized blob. |
id | plain | csapi:uuid |
The credential ID. |
links | plain | csapi:dict |
Policy links. |
project_id | plain | csapi:uuid |
The UUID for the project. |
type | plain | xsd:string |
The MIME media type of the serialized policy blob. |
user_id | plain | xsd:string |
The ID of the user who owns the credential. |
[ { "blob": { "foobar_user": [ "role:compute-user" ] }, "id": "717273", "links": { "self": "http://identity:35357/v3/policies/717273" }, "project_id": "456789", "type": "application/json", "user_id": "616263" }, { "blob": { "foobar_user": [ "role:compute-user" ] }, "id": "717274", "links": { "self": "http://identity:35357/v3/policies/717274" }, "project_id": "456789", "type": "application/json", "user_id": "616263" } ]
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
policy_id | URI | capi:uuid | The policy ID. |
Parameter | Style | Type | Description |
---|---|---|---|
blob | plain | xsd:string |
The policy rule set itself, as a serialized blob. |
id | plain | csapi:uuid |
The credential ID. |
links | plain | csapi:dict |
Policy links. |
project_id | plain | csapi:uuid |
The UUID for the project. |
type | plain | xsd:string |
The MIME media type of the serialized policy blob. |
user_id | plain | xsd:string |
The ID of the user who owns the credential. |
{ "blob": { "foobar_user": [ "role:compute-user" ] }, "id": "717273", "links": { "self": "http://identity:35357/v3/policies/717273" }, "project_id": "456789", "type": "application/json", "user_id": "616263" }
This operation does not accept a request body.
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
policy_id | URI | capi:uuid | The policy ID. |
Parameter | Style | Type | Description |
---|---|---|---|
blob | plain | xsd:string |
The policy rule set itself, as a serialized blob. |
id | plain | csapi:uuid |
The credential ID. |
links | plain | csapi:dict |
Policy links. |
project_id | plain | csapi:uuid |
The UUID for the project. |
type | plain | xsd:string |
The MIME media type of the serialized policy blob. |
user_id | plain | xsd:string |
The ID of the user who owns the credential. |
{ "blob": { "foobar_user": [ "role:compute-user" ] }, "project_id": "456789", "type": "application/json", "user_id": "616263" }
{ "blob": { "foobar_user": [ "role:compute-user" ] }, "id": "717273", "links": { "self": "http://identity:35357/v3/policies/717273" }, "project_id": "456789", "type": "application/json", "user_id": "616263" }
Parameter | Style | Type | Description |
---|---|---|---|
X-Auth-Token | header | xsd:string |
A valid authentication token for an administrative user. |
policy_id | URI | capi:uuid | The policy ID. |
This operation does not accept a request body and does not return a response body.