Skip to content
This repository was archived by the owner on Apr 13, 2022. It is now read-only.

Commit 5f2f6db

Browse files
committed
Removed references to TLS as primary auth method
1 parent c9a8214 commit 5f2f6db

File tree

4 files changed

+8
-185
lines changed

4 files changed

+8
-185
lines changed

README.md

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@
1414
* [WebID Profile Documents](#webid-profile-documents)
1515
4. [Authentication](#authentication)
1616
* [Primary Authentication](#primary-authentication)
17-
* [WebID-TLS](#webid-tls)
18-
* [Alternative Authentication
19-
Mechanisms](#alternative-authentication-mechanisms)
2017
* [Secondary Authentication: Account
2118
Recovery](#secondary-authentication-account-recovery)
2219
5. [Authorization and Access Control](#authorization-and-access-control)
@@ -106,7 +103,7 @@ services also have a *secondary authentication mechanism* (usually an external
106103
email address) that they use for account recovery (in case the user forgets or
107104
loses their primary authentication tokens, username and password).
108105

109-
Solid currently uses WebID-TLS as its primary authentication mechanism.
106+
Solid currently uses WebID-OIDC as its primary authentication mechanism.
110107
Alternative complementary mechanisms are also being actively investigated.
111108
In addition, Solid recommends that server implementations also offer secondary
112109
authentication available for users for Account Recovery (via email or some
@@ -120,44 +117,14 @@ platforms and ecosystems. Specifically, it requires *cross-domain*,
120117
de-centralized authentication mechanisms not tied to any particular identity
121118
provider or certificate authority.
122119

123-
#### WebID-TLS
124-
125-
**Note:** Several browser vendors (Chrome, Firefox) have removed support
126-
for the `KEYGEN` element, on which WebID-TLS relied for in-browser certificate
127-
generation.
128-
129-
Solid uses the [WebID-TLS
130-
protocol](http://www.w3.org/2005/Incubator/webid/spec/tls/) as one of its
131-
primary authentication mechanism. Instead of usernames, it uses WebIDs as unique
132-
identifiers, as previously mentioned. And instead of using passwords as bearer
133-
tokens, it uses cryptographic certificates (stored and managed by the user's web
134-
browser) to prove a user's identity.
135-
136-
When accessing a Solid server using WebID-TLS, a user is presented by their
137-
web browsers with a popup asking them to select an appropriate security
138-
certificate for that site. After a user makes their selection, the server
139-
securely matches the private key stored by the browser with the public key
140-
stored in that user's [WebID Profile Document](#webid-profile-documents), and
141-
authenticates them.
142-
143-
**See component spec:
144-
[Solid WebID-TLS Specification](authn-webid-tls.md)**
145-
146120
#### WebID-OIDC
147121

148-
The Solid team is currently implementing support for WebID-OIDC as another
149-
primary authentication mechanism. It is based on the OAuth2/OpenID Connect
122+
WebID-OIDC is based on the OAuth2/OpenID Connect
150123
protocols, adapted for WebID based decentralized use cases.
151124

152125
**See component spec:
153126
[WebID-OIDC Specification](https://github.com/solid/webid-oidc-spec)**
154127

155-
#### Alternative Authentication Mechanisms
156-
157-
There are several other authentication mechanisms that are
158-
currently being investigated, such as combinations of traditional
159-
username-and-password authentication and WebID-TLS Delegation).
160-
161128
### Secondary Authentication: Account Recovery
162129

163130
Regardless of the primary authentication mechanism, bearer tokens and other

UserStories/PrivateSharing.md

Lines changed: 6 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ Point 1 is just a desire. We cut point 2. into two parts: the first is uploading
1111

1212
### Background
1313

14-
This story has a privacy aspect so we will use [WebID+TLS authentication](http://www.w3.org/2005/Incubator/webid/spec/tls/) to illustrate it. Other authentication methods should also work with [Web Access Control](http://www.w3.org/2005/Incubator/webid/spec/), such as WebID which is easy, and others that need to be looked at.
14+
This story has a privacy aspect so we will use [WebID-OIDC authentication](https://github.com/solid/webid-oidc-spec) to illustrate it. Other authentication methods should also work with [Web Access Control](http://www.w3.org/2005/Incubator/webid/spec/), such as WebID which is easy, and others that need to be looked at.
1515

1616

17-
Ian has WebID `<https://ian.name/card#me>` with a public key.
17+
Ian has WebID `<https://ian.name/card#me>`.
1818

1919
```http
2020
GET /card HTTP/1.1
@@ -45,18 +45,11 @@ Link: <http://www.w3.org/ns/ldp#Resource>; rel="type"
4545
<card#me> a foaf:Person ;
4646
foaf:name "Ian;
4747
foaf:knows <https://jane.org/profile#me> ;
48-
cert:key [ a cert:RSAPublicKey;
49-
rdfs:label "my laptop certificate key";
50-
cert:exponent 65537 ;
51-
cert:modulus "A74A4CF7BD1261D930B9656CC1A457C79ABE6F86607DB76EF95FF024CA6B712DD03DDB178669562170D7CAA8431528E1139AE85D1E72B09BD552CAD0FA94225CACA9363D799A10C0269A7DD70E28AFE0971B8352048F5DFC55537480F334155CBA98434678A887457D6378D19C8C0E9F59CA99E21492308CE4510B68C12BA3002862E30839E7D91EE0F9BF1155E07854D99FE12A32B4FB03862466203BF0E5C0D3B90B5AB6B5CABA520811FD02097CE5680C1D8B55098C566C11066B37FE43A26FCD1AA93E7A9919446F39B0E3C0D6C1C9BEB509E86255101634CBE738C52553ACC14A7FE50D536BBA5F8D96BFE0B5DA33095466B61B4141CE91405838072477"^^xsd:hexBinary;
52-
] .
5348
```
5449

5550

5651
In order to be able to do command line curl demos, we will assume that
57-
Ian has saved his certificate and private key in the [`cert.pem`](#ians-ssl-certificate) file locally. (Of course it is not needed to do this in browsers...)
58-
59-
The certificate public key is the one in the profile.
52+
Ian has already obtained a Bearer token via the [WebId-OIDC process](https://github.com/solid/webid-oidc-spec).
6053

6154

6255
### Ian posts the file
@@ -65,8 +58,8 @@ Here curl makes the connection, and authenticates Ian with his Certificate. As a
6558

6659
```sh
6760
$ curl -X POST -k -i -H "Content-Type: text/turtle" \
68-
--cert ../eg/cert.pem:password \
6961
-H "Slug: financials" \
62+
-H 'authorization: Bearer ey...'
7063
--data-binary @financials.ttl https://ian.name/2014/
7164
```
7265
```http
@@ -86,7 +79,7 @@ So the `<financials>` resource is created in the LDP container `</2014/>` . Let
8679

8780
```sh
8881
$ curl -X GET -k -H "Content-Type: text/turtle" \
89-
--cert ../eg/IanCert:password \
82+
-H 'authorization: Bearer ey...'
9083
https://ian.name/2014/financials.acl
9184
```
9285
```ttl
@@ -108,6 +101,7 @@ PATCH /2014/financials.acl HTTP/1.1
108101
Host: ian.name:443
109102
Content-Type: application/sparql-update; utf-8
110103
Content-Length: 120
104+
Authorization: Bearer ey...
111105
```
112106
```sparql
113107
Prefix acl: <http://www.w3.org/ns/auth/acl#> .
@@ -196,73 +190,3 @@ At this point we have the following set of links:
196190
### Jane views the file
197191

198192
Jane reads her inbox at some point, and just does a normal GET on the `<https://ian.name/2014/financials> resource, using her certificate containing a WebID.
199-
200-
## Notes
201-
202-
### Ian's ssl certificate
203-
204-
You need
205-
206-
```sh
207-
$ openssl x509 -in IanCert.pem -inform pem -text
208-
Certificate:
209-
Data:
210-
Version: 3 (0x2)
211-
Serial Number:
212-
01:49:f1:d4:3d:e6
213-
Signature Algorithm: sha1WithRSAEncryption
214-
Issuer: CN=WebID, O={}
215-
Validity
216-
Not Before: Nov 27 15:07:38 2014 GMT
217-
Not After : Nov 24 15:17:38 2024 GMT
218-
219-
Subject Public Key Info:
220-
Public Key Algorithm: rsaEncryption
221-
RSA Public Key: (2048 bit)
222-
Modulus (2048 bit):
223-
00:b7:cb:16:af:0a:ee:c5:8a:4c:0c:05:e0:50:4a:
224-
33:43:82:a1:db:7a:8a:09:20:57:f9:7c:27:14:39:
225-
f7:ff:8c:fd:46:9b:61:59:34:fa:40:1b:4b:32:0b:
226-
75:6c:f0:17:e1:6c:8e:e0:d5:af:ce:ed:1a:54:39:
227-
07:38:72:0c:67:81:3b:76:5e:1b:f9:e3:10:80:9e:
228-
13:3b:7f:7c:2a:ca:34:e1:85:c3:bd:cd:42:fc:40:
229-
d8:47:72:ad:69:1f:36:b9:07:8c:8e:00:79:f6:40:
230-
89:ae:0a:dc:aa:80:d4:18:6c:f6:83:40:3d:64:85:
231-
e5:78:db:de:16:1a:82:b4:e3:46:50:cb:77:fd:27:
232-
4f:e8:4b:b7:ae:48:8a:32:36:f1:46:17:8c:f8:36:
233-
cc:70:1b:1d:3c:40:c0:d7:a8:e8:38:af:c2:09:e3:
234-
b5:c8:25:fa:97:02:01:7b:52:49:2f:4c:f4:bd:eb:
235-
08:97:26:e2:77:8e:b6:3b:88:54:c8:b3:66:b2:c5:
236-
42:5f:5d:ec:23:6c:02:c8:e7:60:b7:30:3a:df:b2:
237-
a9:4b:f8:35:c2:e2:89:01:ab:ec:a2:92:d7:ca:04:
238-
c1:ae:3c:37:7e:2d:2f:3e:01:1b:e7:68:68:d9:41:
239-
67:8a:18:c2:ab:f7:8f:98:f7:96:f4:93:f2:a9:46:
240-
cf:2d
241-
Exponent: 65537 (0x10001)
242-
X509v3 extensions:
243-
X509v3 Subject Alternative Name: critical
244-
URI: https://ian.name/card#me
245-
X509v3 Key Usage: critical
246-
Digital Signature, Non Repudiation, Key Encipherment, Key Agreement, Certificate Sign
247-
X509v3 Basic Constraints: critical
248-
CA:FALSE
249-
Netscape Cert Type:
250-
SSL Client, S/MIME
251-
Signature Algorithm: sha1WithRSAEncryption
252-
95:da:39:18:00:a5:7a:16:4f:cd:d2:b8:21:97:0e:e5:c7:20:
253-
c1:50:21:66:e3:63:31:cf:72:f0:5b:9f:8d:57:a3:98:4f:21:
254-
0f:a7:1c:3e:a3:39:64:e7:e4:ec:29:48:f7:a6:d3:fb:9c:99:
255-
44:a3:44:12:3d:06:57:62:9b:9d:30:9a:7c:3c:35:6d:59:e3:
256-
6e:3e:7a:e7:86:44:64:1e:16:04:8d:69:d1:f2:c4:05:e6:9b:
257-
7b:f2:a4:cf:48:da:78:06:78:ff:14:be:90:b2:f7:8a:5d:ac:
258-
55:da:18:25:c8:45:f1:7b:3e:f2:ab:c5:1f:13:5f:3c:9d:16:
259-
a1:a8:5e:8f:4b:0c:ec:f8:71:4a:b5:86:4f:db:cd:87:c1:99:
260-
75:9b:ff:34:4f:dc:da:ed:61:14:95:85:d5:6f:b3:c5:68:90:
261-
9a:9f:32:23:1f:19:00:25:8c:6e:88:42:de:ad:2d:94:41:7a:
262-
c4:96:6d:9f:68:a3:2f:4c:6c:99:de:6d:de:66:0f:84:fc:87:
263-
9c:59:a7:d1:78:3a:5d:8d:75:32:93:a1:34:0c:b8:30:0f:ec:
264-
9b:32:cc:90:b7:13:3d:a4:1f:3b:67:9a:74:ac:27:00:ed:ce:
265-
0d:32:9b:f4:37:b2:18:ba:c9:49:a6:97:0c:e6:9c:e4:e9:48:
266-
00:8f:df:3f
267-
-----BEGIN CERTIFICATE-----
268-
```

authn-webid-tls.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

solid-webid-profiles.md

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,6 @@ statements:
9797
to make the display of the user's contributions identifiable.
9898
3. A profile MAY provide a `foaf:nick` nickname as a short string for use by user interfaces where
9999
space is limited.
100-
3. A profile SHOULD include `cert:key` public key certificate information, for
101-
use with WebID+TLS (which is currently the primary Solid authentication
102-
mechanism).
103100
4. A profile SHOULD point to the root storage location using `pim:storage`
104101
(so that applications will know where to read and write their data).
105102

@@ -113,8 +110,6 @@ statements:
113110
foaf:name "Alice" ;
114111
<http://www.w3.org/ns/auth/cert#key> <#key6b4c> ;
115112
<http://www.w3.org/ns/pim/space#storage> <../> ;
116-
<#key6b4c>
117-
# ... certificate key statements go here, see Certificates section
118113
```
119114

120115
### Recommendation for User Names in Profiles
@@ -190,45 +185,6 @@ these cases, and also to make it extensible in future for when
190185
the congruent trees may be rooted in files corresponding to groups and organizations
191186
of which the user is a member.
192187

193-
194-
## Public Key Certificates
195-
196-
Solid currently uses WebID+TLS as its main Authentication mechanism.
197-
To enable this, WebID Profile documents on Solid-compliant servers MAY contain
198-
one or more Public Key Certificate sections, linked to from the main WebID
199-
subject via `cert:key` predicates.
200-
201-
Example profile with a public key certificate (created by LDNode):
202-
203-
```ttl
204-
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
205-
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
206-
@prefix cert: <http://www.w3.org/ns/auth/cert#>.
207-
@prefix dc: <http://purl.org/dc/terms/>.
208-
@prefix XML: <http://www.w3.org/2001/XMLSchema#>.
209-
210-
<https://alice.databox.com/profile/card>
211-
a foaf:PersonalProfileDocument ;
212-
foaf:primaryTopic <#me> .
213-
<#me>
214-
a foaf:Person ;
215-
foaf:name "Alice" ;
216-
<http://www.w3.org/ns/auth/cert#key> <#key6b4c> ;
217-
<http://www.w3.org/ns/pim/space#storage> <../> ;
218-
<#key6b4c>
219-
dc:created
220-
"2016-02-12T15:07:46.916Z"^^XML:dateTime;
221-
dc:title
222-
"Created by ldnode";
223-
a cert:RSAPublicKey;
224-
rdfs:label
225-
"LDNode Localhost Test Cert";
226-
cert:exponent
227-
"65537"^^XML:int;
228-
cert:modulus
229-
"970E88..(many digits here)..167801"^^XML:hexBinary.
230-
```
231-
232188
## Account Resource Discovery
233189

234190
Solid WebID Profile documents MAY contain the following links, to support

0 commit comments

Comments
 (0)