Skip to content

Instantly share code, notes, and snippets.

@sandhawke
Forked from melvincarvalho/solidauth.md
Last active March 24, 2016 17:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save sandhawke/bf5f0c7733050fd1b11b to your computer and use it in GitHub Desktop.
Save sandhawke/bf5f0c7733050fd1b11b to your computer and use it in GitHub Desktop.
Solid Auth

Options for resolving Issue #22

Scenario: Alice, using her browser, wants to access resources on server bob.example, authenticating herself as the owner of server alice.example (or a specific resource on it, like her WebID graph or profile)

Current solution: use WebID-TLS. But support in the browser has issues (see issue statement), so what are some alternatives?

Basic Approaches

  1. Proxy TLS: Alice talks to her pod, while her pod uses WebID-TLS to talk to bob.example. Her secret key remains on her pod.
  2. Digital Signatures: Alice signs her request to bob.example using a (non-TLS) private key; bob verifies with public key obtained from alice.example
  3. Token Confirmation: A secret bearer token passes through all three parties, confirming to bob.example that the client controls alice.example

Candidates

Candidates Proxy Digital Signatures Token Confirmation
Homegrown Design TBD WebID-RSA, HTTP Signatures + ?? SPOT,WebID-Tokens
Community Design - - IndieAuth

Note: I've been unable to find a spec for communicating the public key in http-sig, making it only one component in a solution, not a complete candidate. But I've heard of a demo where Manu used it for logging in, and Henry says he's implemented it, so maybe the spec exists somewhere.

Other:

Comparison

|WebID-RSA|HTTP-Sig|SPOT|WebID-Tokens|IndieAuth ---|---|---|---|---|--- User identifier|WebID|??|Web Page|WebID|Web Page Works in browser with JS off|N|N|N|N|Yes (OAuth Flow) Discovery|GET RDF|??|HTTP Headers|GET RDF|Parse HTML + HTTP Headers Profile can be on static site|Y|Y|N|Y|Y Implementations|-|Digital Bazaar?|-|-|Several in IndieWebCamp Client round trips| Patent Status|

@bblfish
Copy link

bblfish commented Mar 24, 2016

I've been unable to find a spec for communicating the public key in http-sig

You place the key at the URI of the key the client passes in the HTTPSig header.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment