aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: d077f94325089b1d2f0bf01043cb2cd12ecea665 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<!--- -*- mode: markdown; coding: utf-8 -*- --->

# Mulky IMAP BrowserID Primary

## Introduction

This software provides a simple BrowserID primary (authenticating
party) based on an existing local IMAP server setup.  Users use their
IMAP login and password to authenticate themselves as the owner of
their email address.

The primary is implemented as a set of simple CGI scripts.


## Assumptions About Your E-Mail Setup

This software assumes that email addresses can be resolved to user
names by way of `/etc/aliases` and that the user names provided
therein are identical to those accepted by your IMAP server for
purposes of authenticating.

If this is not true for your setup, you will need to hack the source
code.


## Installation

### Prerequisites

The following CPAN modules need to be installed:

 * `CGI`
 * `CGI::Fast`
 * `CGI::Session`
 * `common::sense`
 * `Crypt::OpenSSL::RSA`
 * `File::Slurp`
 * `JSON`
 * `MIME::Base64`
 * `Mail::ExpandAliases`
 * `Mail::IMAPTalk`
 * `Modern::Perl`
 * `Time::HiRes`
 * `LWP::Simple` (for the setup process only)

### Key Setup and jQuery Download

In order to generate an RSA private key and download necessary
third-party components, run `setup.sh`.

`setup.sh` will also generate a `browserid.json` file and prompt you
to put it wherever your web server will be able to serve it as
`/.well-known/browserid`.  **It is very important to do this now**,
because `browserid.org` will look at that location and *cache* the
response, even if it is just a 404.


## License

Copyright 2012, Matthias Andreas Benkard.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.