Skip to content

Instantly share code, notes, and snippets.

@melvincarvalho
Forked from sandhawke/solidauth.md
Created February 9, 2016 01:20
Show Gist options
  • Save melvincarvalho/7a458814a184392f7a4b to your computer and use it in GitHub Desktop.
Save melvincarvalho/7a458814a184392f7a4b to your computer and use it in GitHub Desktop.
Solid Auth

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)

Original answer: use WebID-TLS. But support in the browser has issues, 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 SPOT
Community Design TBD HTTP Signatures IndieAuth

Two more token confirmation approaches:

Comparison

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

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