|
@@ -1,15 +1,12 @@
|
|
|
[role="xpack"]
|
|
|
-[[security-api-tokens]]
|
|
|
-=== Token Management APIs
|
|
|
+[[security-api-get-token]]
|
|
|
+=== Get token API
|
|
|
|
|
|
-The `token` API enables you to create and invalidate bearer tokens for access
|
|
|
-without requiring basic authentication.
|
|
|
+Creates a bearer token for access without requiring basic authentication.
|
|
|
|
|
|
==== Request
|
|
|
|
|
|
-`POST /_xpack/security/oauth2/token` +
|
|
|
-
|
|
|
-`DELETE /_xpack/security/oauth2/token`
|
|
|
+`POST /_xpack/security/oauth2/token`
|
|
|
|
|
|
==== Description
|
|
|
|
|
@@ -19,20 +16,20 @@ you can explicitly enable the `xpack.security.authc.token.enabled` setting. When
|
|
|
you are running in production mode, a bootstrap check prevents you from enabling
|
|
|
the token service unless you also enable TLS on the HTTP interface.
|
|
|
|
|
|
-The Get Token API takes the same parameters as a typical OAuth 2.0 token API
|
|
|
+The get token API takes the same parameters as a typical OAuth 2.0 token API
|
|
|
except for the use of a JSON request body.
|
|
|
|
|
|
-A successful Get Token API call returns a JSON structure that contains the access
|
|
|
+A successful get token API call returns a JSON structure that contains the access
|
|
|
token, the amount of time (seconds) that the token expires in, the type, and the
|
|
|
scope if available.
|
|
|
|
|
|
-The tokens returned by the Get Token API have a finite period of time for which
|
|
|
+The tokens returned by the get token API have a finite period of time for which
|
|
|
they are valid and after that time period, they can no longer be used. That time
|
|
|
period is defined by the `xpack.security.authc.token.timeout` setting. For more
|
|
|
information, see <<token-service-settings>>.
|
|
|
|
|
|
-If you want to invalidate a token immediately, you can do so by using the Delete
|
|
|
-Token API.
|
|
|
+If you want to invalidate a token immediately, you can do so by using the
|
|
|
+<<security-api-invalidate-token,delete token API>>.
|
|
|
|
|
|
|
|
|
==== Request Body
|
|
@@ -41,28 +38,28 @@ The following parameters can be specified in the body of a POST request and
|
|
|
pertain to creating a token:
|
|
|
|
|
|
`grant_type`::
|
|
|
-(string) The type of grant. Currently only the `password` grant type is supported.
|
|
|
+(string) The type of grant. Valid grant types are: `password` and `refresh_token`.
|
|
|
|
|
|
-`password` (required)::
|
|
|
-(string) The user's password.
|
|
|
+`password`::
|
|
|
+(string) The user's password. If you specify the `password` grant type, this
|
|
|
+parameter is required.
|
|
|
+
|
|
|
+`refresh_token`::
|
|
|
+(string) If you specify the `refresh_token` grant type, this parameter is
|
|
|
+required. It contains the string that was returned when you created the token
|
|
|
+and enables you to extend its life.
|
|
|
|
|
|
`scope`::
|
|
|
(string) The scope of the token. Currently tokens are only issued for a scope of
|
|
|
`FULL` regardless of the value sent with the request.
|
|
|
|
|
|
-`username` (required)::
|
|
|
-(string) The username that identifies the user.
|
|
|
-
|
|
|
-The following parameters can be specified in the body of a DELETE request and
|
|
|
-pertain to deleting a token:
|
|
|
-
|
|
|
-`token`::
|
|
|
-(string) An access token.
|
|
|
+`username`::
|
|
|
+(string) The username that identifies the user. If you specify the `password`
|
|
|
+grant type, this parameter is required.
|
|
|
|
|
|
==== Examples
|
|
|
-[[security-api-get-token]]
|
|
|
-To obtain a token, submit a POST request to the `/_xpack/security/oauth2/token`
|
|
|
-endpoint.
|
|
|
+
|
|
|
+The following example obtains a token for the `test_admin` user:
|
|
|
|
|
|
[source,js]
|
|
|
--------------------------------------------------
|
|
@@ -101,8 +98,8 @@ curl -H "Authorization: Bearer dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvb
|
|
|
// NOTCONSOLE
|
|
|
|
|
|
[[security-api-refresh-token]]
|
|
|
-To extend the life of an existing token, the token api may be called again with the refresh
|
|
|
-token within 24 hours of the token's creation.
|
|
|
+To extend the life of an existing token, you can call the API again with the
|
|
|
+refresh token within 24 hours of the token's creation. For example:
|
|
|
|
|
|
[source,js]
|
|
|
--------------------------------------------------
|
|
@@ -116,7 +113,8 @@ POST /_xpack/security/oauth2/token
|
|
|
// TEST[s/vLBPvmAB6KvwvJZr27cS/$body.refresh_token/]
|
|
|
// TEST[continued]
|
|
|
|
|
|
-The API will return a new token and refresh token. Each refresh token may only be used one time.
|
|
|
+The API will return a new token and refresh token. Each refresh token may only
|
|
|
+be used one time.
|
|
|
|
|
|
[source,js]
|
|
|
--------------------------------------------------
|
|
@@ -128,32 +126,4 @@ The API will return a new token and refresh token. Each refresh token may only b
|
|
|
}
|
|
|
--------------------------------------------------
|
|
|
// TESTRESPONSE[s/dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ==/$body.access_token/]
|
|
|
-// TESTRESPONSE[s/vLBPvmAB6KvwvJZr27cS/$body.refresh_token/]
|
|
|
-
|
|
|
-[[security-api-invalidate-token]]
|
|
|
-If a token must be invalidated immediately, you can do so by submitting a DELETE
|
|
|
-request to `/_xpack/security/oauth2/token`. For example:
|
|
|
-
|
|
|
-[source,js]
|
|
|
---------------------------------------------------
|
|
|
-DELETE /_xpack/security/oauth2/token
|
|
|
-{
|
|
|
- "token" : "dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ=="
|
|
|
-}
|
|
|
---------------------------------------------------
|
|
|
-// CONSOLE
|
|
|
-// TEST[s/dGhpcyBpcyBub3QgYSByZWFsIHRva2VuIGJ1dCBpdCBpcyBvbmx5IHRlc3QgZGF0YS4gZG8gbm90IHRyeSB0byByZWFkIHRva2VuIQ==/$body.access_token/]
|
|
|
-// TEST[continued]
|
|
|
-
|
|
|
-A successful call returns a JSON structure that indicates whether the token
|
|
|
-has already been invalidated.
|
|
|
-
|
|
|
-[source,js]
|
|
|
---------------------------------------------------
|
|
|
-{
|
|
|
- "created" : true <1>
|
|
|
-}
|
|
|
---------------------------------------------------
|
|
|
-// TESTRESPONSE
|
|
|
-
|
|
|
-<1> When a token has already been invalidated, `created` is set to false.
|
|
|
+// TESTRESPONSE[s/vLBPvmAB6KvwvJZr27cS/$body.refresh_token/]
|