make this a modular sinatra application
[local-openid.git] / README.txt
blob5286175cfc76c7f36811f12bfcba585e4260b117
1 = local-openid: Single User, Ephemeral OpenID Provider
3 * http://bogomips.org/local-openid
5 == Description
7 local-openid allows users with shell accounts on servers to authenticate
8 with OpenID consumers by editing a YAML file in their home directory
9 instead of authenticating through HTTP/HTTPS.
11 1. Encounter a login page that accepts OpenID (the consumer)
12 2. Login into your own server (if you're not already logged in)
13 3. Start the local-openid app on your server
14 4. Login using your OpenID (on the consumer)
15    - you should be redirected to your local-openid application
16 5. edit ~/.local-openid/config.yml on your server to approve the consumer
17 6. Reload the local-openid page your browser was on.
18    - you should be logged in to the OpenID consumer site
19    - If not, check the error log (usually stderr) of local-openid
20 8. Shut down the local-openid application.
22 == local-openid exists for the following reasons:
24 1. Passwords and password managers feel clumsy to me on web browsers.
25    On the other hand; using ssh, editing text files, and running servers
26    are second nature.  Clearly, local-openid is not for everyone.
27 2. Identity providers may not last.  Companies die and business plans
28    change.  I'd rather my online identity not be subject to those whims.
29 3. OpenID providers could be compromised without disclosure.  With
30    local-openid, I have server logs to know if somebody is even trying
31    something fishy with my identity.  The vector for compromising my
32    identity is greatly reduced because my local-openid instance has 99.999%
33    downtime.
35 == Install
37 The following command should install local-openid and all dependencies:
39   gem install local-openid
41 setup.rb is also provided for non-Rubygems users.
43 == Requirements
45 local-openid is a small Sinatra application.  It requires the Ruby
46 OpenID library (2.x), Sinatra (0.9+), Rack (0.9+), and any Rack-enabled
47 server.  To be useful, it also depends on having a user account on a
48 machine with a publically-accessible IP and DNS name to use as your
49 OpenID identity.
51 == Hacking
53 I don't have any plans for more development with local-openid.  It was
54 after all, just a weekend hack.  It does what I want it to and nothing
55 more.
57 Feel free to fork it and customize it to your needs.  Of course, drop me
58 a line if you fix any bugs or notice any security holes in it.
60 You can get the latest source via git from the following locations:
62   git://git.bogomips.org/local-openid.git
63   http://git.bogomips.org/local-openid.git
64   git://repo.or.cz/local-openid.git (mirror)
65   http://repo.or.cz/r/local-openid.git (mirror)
67 You may browse the code from the web and download the latest tarballs here:
69 * http://git.bogomips.org/cgit/local-openid.git
70 * http://repo.or.cz/w/local-openid.git (gitweb mirror)
72 == License
74 Copyright 2009 Eric Wong.  It is licensed under the GNU Affero General
75 Public License, version 3.  See the LICENSE file for details.
77 == Disclaimer
79 There is NO WARRANTY whatsoever, implied or otherwise.  OpenID may not
80 be the best choice for dealing with security-sensitive data, and this
81 application is just a weekend hack with no real security auditing.  On
82 the other hand, it's quite hard for somebody to steal your OpenID
83 credentials when your provider implementation has 99.999% downtime :)
85 == Contact
87 Eric Wong, normalperson@yhbt.net
88 OpenID: http://e.yhbt.net/