Mercurial > prosody-modules
annotate mod_auth_custom_http/README.markdown @ 5682:527c747711f3
mod_http_oauth2: Limit revocation to clients own tokens in strict mode
RFC 7009 section 2.1 states:
> The authorization server first validates the client credentials (in
> case of a confidential client) and then verifies whether the token was
> issued to the client making the revocation request. If this
> validation fails, the request is refused and the client is informed of
> the error by the authorization server as described below.
The first part was already covered (in strict mode). This adds the later
part using the hash of client_id recorded in 0860497152af
It still seems weird to me that revoking a leaked token should not be
allowed whoever might have discovered it, as that seems the responsible
thing to do.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 29 Oct 2023 11:30:49 +0100 |
parents | f90cf59bee8e |
children |
rev | line source |
---|---|
1934 | 1 --- |
2 summary: HTTP Authentication using custom JSON protocol | |
3 ... | |
4 | |
5 Introduction | |
6 ============ | |
7 | |
8 To authenticate users, this module does a `POST` request to a configured | |
9 URL with a JSON payload. It is not async so requests block the server | |
10 until answered. | |
11 | |
12 Configuration | |
13 ============= | |
14 | |
15 ``` lua | |
16 VirtualHost "example.com" | |
17 authentication = "custom_http" | |
2868
f90cf59bee8e
mod_auth_custom_http: fix documentation config example
Senya <senya@kinetiksoft.com>
parents:
1934
diff
changeset
|
18 auth_custom_http = { |
f90cf59bee8e
mod_auth_custom_http: fix documentation config example
Senya <senya@kinetiksoft.com>
parents:
1934
diff
changeset
|
19 post_url = "http://api.example.com/auth"; |
f90cf59bee8e
mod_auth_custom_http: fix documentation config example
Senya <senya@kinetiksoft.com>
parents:
1934
diff
changeset
|
20 } |
1934 | 21 ``` |
22 | |
23 Protocol | |
24 ======== | |
25 | |
26 The JSON payload consists of an object with `username` and `password` | |
27 members: | |
28 | |
29 {"username":"john","password":"secr1t"} | |
30 | |
31 The module expects the response body to be exactly `true` if the | |
32 username and password are correct. |