Mercurial > prosody-wiki
view mod_auth_external.wiki @ 308:f5d82d6588d4
mod_auth_external: Clarify the protocol a bit more.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Wed, 10 Oct 2012 01:28:20 +0500 |
parents | fa73a9b9d907 |
children | 35702f67785f |
line wrap: on
line source
#summary Authentication via external script/process #labels Stage-Alpha,Type-Auth = Introduction = Allow client authentication to be handled by an external script/process. = Configuration = As with all auth modules, there is no need to add this to modules_enabled. Simply add in the global section, or for the relevant hosts: {{{ authentication = "external" }}} These options are specific to mod_auth_external: ||external_auth_protocol||May be "generic" or "ejabberd" (the latter for compatibility with ejabberd external auth scripts. Default is "generic".|| ||external_auth_command||The command/script to execute.|| = Protocol = Prosody executes the given command/script, and sends it queries. Your auth script should simply read a line from standard input, and write the result to standard output. It must do this in a loop, until there's nothing left to read. Prosody can keep sending more lines to the script, with a command on each line. Each command is one line, and the response is expected to be a single line containing "0" for failure or "1" for success. Your script must respond with "0" for anything it doesn't understand. There are three commands used at the moment: == auth == Check if a user's password is valid. Example: {{{auth:username:example.com:abc123}}} == isuser == Check if a user exists. Example: {{{isuser:username:example.com}}} == setpass == Set a new password for the user. Implementing this is optional. Example: {{{setpass:username:example.com:abc123}}} == ejabberd compatibilty == ejabberd implements a similar protocol. The main difference is that Prosody's protocol is line-based, while ejabberd's is length-prefixed. Add this to your config if you need to use an ejabberd auth script: {{{ external_auth_protocol = "ejabberd" }}} = Compatibility = ||0.8||Works||