Annotate

mod_muc_reserve_nick_pattern/README.markdown @ 5193:2bb29ece216b

mod_http_oauth2: Implement stateless dynamic client registration Replaces previous explicit registration that required either the additional module mod_adhoc_oauth2_client or manually editing the database. That method was enough to have something to test with, but would not probably not scale easily. Dynamic client registration allows creating clients on the fly, which may be even easier in theory. In order to not allow basically unauthenticated writes to the database, we implement a stateless model here. per_host_key := HMAC(config -> oauth2_registration_key, hostname) client_id := JWT { client metadata } signed with per_host_key client_secret := HMAC(per_host_key, client_id) This should ensure everything we need to know is part of the client_id, allowing redirects etc to be validated, and the client_secret can be validated with only the client_id and the per_host_key. A nonce injected into the client_id JWT should ensure nobody can submit the same client metadata and retrieve the same client_secret
author Kim Alvefur <zash@zash.se>
date Fri, 03 Mar 2023 21:14:19 +0100
parent 5172:dc6a10629670
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5172
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
1 ---
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
2 labels:
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
3 - 'Stage-Alpha'
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
4 summary: 'Require MUC occupant nicknames to no match some patterns'
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
5 ---
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
6
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
7 Introduction
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
8 ============
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
9
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
10 This checks the nickname of a joining user against a configurable list of
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
11 [Lua patterns](https://www.lua.org/manual/5.2/manual.html#6.4.1), and prevents
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
12 them from joining if it matches any of them.
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
13
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
14 Configuration
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
15 =============
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
16
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
17 There is a single configuration option, `muc_reserve_nick_patterns` and the
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
18 default is `{}` - i.e. allow everything.
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
19
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
20 Compatibility
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
21 =============
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
22
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
23 Requires Prosody 0.11 or higher.