123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- [role="xpack"]
- [[security-api-has-privileges]]
- === Has Privileges API
- [[security-api-has-privilege]]
- The `has_privileges` API allows you to determine whether the logged in user has
- a specified list of privileges.
- ==== Request
- `GET _xpack/security/user/_has_privileges`
- ==== Description
- For a list of the privileges that you can specify in this API,
- see {stack-ov}/security-privileges.html[Security privileges].
- A successful call returns a JSON structure that shows whether each specified
- privilege is assigned to the user.
- ==== Request Body
- `cluster`:: (list) A list of the cluster privileges that you want to check.
- `index`::
- `names`::: (list) A list of indices.
- `privileges`::: (list) A list of the privileges that you want to check for the
- specified indices.
- `application`::
- `application`::: (string) The name of the application.
- `privileges`::: (list) A list of the privileges that you want to check for the
- specified resources. May be either application privilege names, or the names of
- actions that are granted by those privileges
- `resources`::: (list) A list of resource names against which the privileges
- should be checked
- ==== Authorization
- All users can use this API, but only to determine their own privileges.
- To check the privileges of other users, you must use the run as feature. For
- more information, see
- {xpack-ref}/run-as-privilege.html[Submitting Requests on Behalf of Other Users].
- ==== Examples
- The following example checks whether the current user has a specific set of
- cluster, index, and application privileges:
- [source,js]
- --------------------------------------------------
- GET _xpack/security/user/_has_privileges
- {
- "cluster": [ "monitor", "manage" ],
- "index" : [
- {
- "names": [ "suppliers", "products" ],
- "privileges": [ "read" ]
- },
- {
- "names": [ "inventory" ],
- "privileges" : [ "read", "write" ]
- }
- ],
- "application": [
- {
- "application": "inventory_manager",
- "privileges" : [ "read", "data:write/inventory" ],
- "resources" : [ "product/1852563" ]
- }
- ]
- }
- --------------------------------------------------
- // CONSOLE
- The following example output indicates which privileges the "rdeniro" user has:
- [source,js]
- --------------------------------------------------
- {
- "username": "rdeniro",
- "has_all_requested" : false,
- "cluster" : {
- "monitor" : true,
- "manage" : false
- },
- "index" : {
- "suppliers" : {
- "read" : true
- },
- "products" : {
- "read" : true
- },
- "inventory" : {
- "read" : true,
- "write" : false
- }
- },
- "application" : {
- "inventory_manager" : {
- "product/1852563" : {
- "read": false,
- "data:write/inventory": false
- }
- }
- }
- }
- --------------------------------------------------
- // TESTRESPONSE[s/"rdeniro"/"$body.username"/]
- // TESTRESPONSE[s/: false/: true/]
|