Mercurial > prosody-modules
view mod_captcha_registration/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 |
parents | 8de50be756e5 |
children |
line wrap: on
line source
--- labels: - 'Stage-Beta' summary: provides captcha protection for registration form ... Introduction ============ Prosody-captcha is a little modification of prosody's "mod\_register.lua" module that provides captcha protection for registration form. Installation ============ First of all you should build and install lua bindings for libgd — [lua-gd](https://github.com/ittner/lua-gd/). Then clone repsository lua-captcha: $ git clone https://github.com/mrDoctorWho/lua-captcha install it: $ make install Configuration ============= After that you would configure prosody. This module requires from you 4 fields, you should add this into your VirtualHost entry. captcha_config = { dir = "/tmp"; -- Directory used to storage captcha images. Please make sure prosody user allowed to write there. timeout = 60; -- Timeout when captcha will expire web_path = "challenge"; -- Web path used to separate main prosody site from itself modules. font = "/usr/lib/prosody/FiraSans-Regular.ttf" -- Font used for captcha text } You can run script "install.lua" to install this or instead of that while prosody developers didn't accepted "dataforms" changes you should replace standard prosody "dataforms.lua" located in ubuntu in /usr/lib/prosody/util by another one from this repository. You should do the same thing with "mod\_register.lua" located in ubuntu in /usr/lib/prosody/modules. After this all you can try to register on your server and see the captcha. TODO ==== - Maybe use recaptcha instead of libgd.