Deprecate authentication via a query string (#1808)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
This commit is contained in:
parent
ae70b5fcf3
commit
625999a039
6 changed files with 31 additions and 20 deletions
|
@ -0,0 +1 @@
|
||||||
|
Deprecate authentication via a query string, as per [MSC4126](https://github.com/matrix-org/matrix-spec-proposals/issues/4126).
|
|
@ -0,0 +1 @@
|
||||||
|
Deprecate authentication via a query string, as per [MSC4126](https://github.com/matrix-org/matrix-spec-proposals/issues/4126).
|
|
@ -390,8 +390,7 @@ specify parameter values. The flow for this method is as follows:
|
||||||
## Client Authentication
|
## Client Authentication
|
||||||
|
|
||||||
Most API endpoints require the user to identify themselves by presenting
|
Most API endpoints require the user to identify themselves by presenting
|
||||||
previously obtained credentials in the form of an `access_token` query
|
previously obtained credentials in the form of an access token.
|
||||||
parameter or through an Authorization Header of `Bearer $access_token`.
|
|
||||||
An access token is typically obtained via the [Login](#login) or
|
An access token is typically obtained via the [Login](#login) or
|
||||||
[Registration](#account-registration-and-management) processes. Access tokens
|
[Registration](#account-registration-and-management) processes. Access tokens
|
||||||
can expire; a new access token can be generated by using a refresh token.
|
can expire; a new access token can be generated by using a refresh token.
|
||||||
|
@ -405,16 +404,19 @@ investigate [macaroons](http://research.google.com/pubs/pub41892.html).
|
||||||
|
|
||||||
### Using access tokens
|
### Using access tokens
|
||||||
|
|
||||||
Access tokens may be provided in two ways, both of which the homeserver
|
Access tokens may be provided via a request header, using the Authentication
|
||||||
MUST support:
|
Bearer scheme: `Authorization: Bearer TheTokenHere`.
|
||||||
|
|
||||||
1. Via a query string parameter, `access_token=TheTokenHere`.
|
Clients may alternatively provide the access token via a query string parameter:
|
||||||
2. Via a request header, `Authorization: Bearer TheTokenHere`.
|
`access_token=TheTokenHere`. This method is deprecated to prevent the access
|
||||||
|
token being leaked in access/HTTP logs and SHOULD NOT be used by clients.
|
||||||
|
|
||||||
Clients are encouraged to use the `Authorization` header where possible
|
Homeservers MUST support both methods.
|
||||||
to prevent the access token being leaked in access/HTTP logs. The query
|
|
||||||
string should only be used in cases where the `Authorization` header is
|
{{% boxes/note %}}
|
||||||
inaccessible for the client.
|
{{% changed-in v="1.11" %}}
|
||||||
|
Sending the access token as a query string parameter is now deprecated.
|
||||||
|
{{% /boxes/note %}}
|
||||||
|
|
||||||
When credentials are required but missing or invalid, the HTTP call will
|
When credentials are required but missing or invalid, the HTTP call will
|
||||||
return with a status of 401 and the error code, `M_MISSING_TOKEN` or
|
return with a status of 401 and the error code, `M_MISSING_TOKEN` or
|
||||||
|
|
|
@ -162,15 +162,20 @@ of access tokens to authenticate users. The access tokens provided by an
|
||||||
Identity Server cannot be used to authenticate Client-Server API
|
Identity Server cannot be used to authenticate Client-Server API
|
||||||
requests.
|
requests.
|
||||||
|
|
||||||
An access token is provided to an endpoint in one of two ways:
|
Access tokens may be provided via a request header, using the
|
||||||
|
Authentication Bearer scheme: `Authorization: Bearer TheTokenHere`.
|
||||||
|
|
||||||
1. Via a query string parameter, `access_token=TheTokenHere`.
|
Clients may alternatively provide the access token via a query string
|
||||||
2. Via a request header, `Authorization: Bearer TheTokenHere`.
|
parameter: `access_token=TheTokenHere`. This method is deprecated to
|
||||||
|
prevent the access token being leaked in access/HTTP logs and SHOULD NOT
|
||||||
|
be used by clients.
|
||||||
|
|
||||||
Clients are encouraged to the use the `Authorization` header where
|
Identity Servers MUST support both methods.
|
||||||
possible to prevent the access token being leaked in access/HTTP logs.
|
|
||||||
The query string should only be used in cases where the `Authorization`
|
{{% boxes/note %}}
|
||||||
header is inaccessible for the client.
|
{{% changed-in v="1.11" %}}
|
||||||
|
Sending the access token as a query string parameter is now deprecated.
|
||||||
|
{{% /boxes/note %}}
|
||||||
|
|
||||||
When credentials are required but missing or invalid, the HTTP call will
|
When credentials are required but missing or invalid, the HTTP call will
|
||||||
return with a status of 401 and the error code `M_UNAUTHORIZED`.
|
return with a status of 401 and the error code `M_UNAUTHORIZED`.
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
accessTokenQuery:
|
accessTokenQuery:
|
||||||
type: apiKey
|
type: apiKey
|
||||||
description: |-
|
description: |-
|
||||||
The `access_token` returned by a call to `/login` or `/register`, as a query
|
**Deprecated.** The `access_token` returned by a call to `/login` or `/register`, as a query
|
||||||
parameter.
|
parameter.
|
||||||
|
|
||||||
It can also be the `as_token` of an application service.
|
It can also be the `as_token` of an application service.
|
||||||
|
@ -33,7 +33,8 @@ accessTokenBearer:
|
||||||
appserviceAccessTokenQuery:
|
appserviceAccessTokenQuery:
|
||||||
type: apiKey
|
type: apiKey
|
||||||
description: |-
|
description: |-
|
||||||
The `as_token` of an application service, as a query parameter.
|
**Deprecated.** The `as_token` of an application service, as a query
|
||||||
|
parameter.
|
||||||
name: access_token
|
name: access_token
|
||||||
in: query
|
in: query
|
||||||
appserviceAccessTokenBearer:
|
appserviceAccessTokenBearer:
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
accessTokenQuery:
|
accessTokenQuery:
|
||||||
type: apiKey
|
type: apiKey
|
||||||
description: |-
|
description: |-
|
||||||
The `access_token` returned by a call to `/register`, as a query parameter.
|
**Deprecated.** The `access_token` returned by a call to `/register`, as a
|
||||||
|
query parameter.
|
||||||
name: access_token
|
name: access_token
|
||||||
in: query
|
in: query
|
||||||
accessTokenBearer:
|
accessTokenBearer:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue