14:06:58 RRSAgent has joined #lws 14:07:02 logging to https://www.w3.org/2025/05/26-lws-irc 14:07:02 RRSAgent, make logs Public 14:07:03 please title this meeting ("meeting: ..."), pchampin 14:07:08 meeting: Linked Web Storage Working Group 14:07:27 ericP has joined #lws 14:07:32 present+ 14:07:37 present+ 14:07:44 present+ 14:07:50 present+ 14:07:51 present+ 14:07:54 present+ 14:08:05 jeswr has joined #lws 14:08:14 present+ 14:08:18 agendabot, find agenda 14:08:18 pchampin, sorry, I don't know which mailing list or calendar is associated with this channel. Try "agendabot, help this is". 14:08:45 agenda: https://www.w3.org/events/meetings/a19ab7dc-1753-433d-bac5-64e3ad8c0a43/20250526T100000/#agenda 14:08:47 clear agenda 14:08:47 agenda+ Introductions and announcements 14:08:47 agenda+ Action Items 14:08:47 agenda+ Discussion: Authorization 14:08:47 agenda+ Use Cases status summary 14:09:51 scribe+ 14:10:05 zakim, open item 1 14:10:05 agendum 1 -- Introductions and announcements -- taken up [from agendabot] 14:10:23 Monsecom has joined #lws 14:10:35 chair: ericP 14:10:43 uvdsl9 has joined #lws 14:10:51 ericP: no newcomer, no announcement 14:10:54 zakim, open next item 14:10:54 agendum 1 was just opened, pchampin 14:11:22 present+ 14:11:27 Zakim, take up agendum 2 14:11:27 agendum 2 -- Action Items -- taken up [from agendabot] 14:11:32 uvdsl has joined #lws 14:11:32 https://github.com/w3c/lws-protocol/issues/?q=is%3Aissue%20state%3Aopen%20label%3Aaction 14:11:59 ericP: Hadrian is not here, so let's move on 14:12:26 ... let's also cancel the use-case status as well 14:12:43 zakim, take up agendum 3 14:12:43 agendum 3 -- Discussion: Authorization -- taken up [from agendabot] 14:13:58 ericP: the plan was to give people a sense of how authorization differs from authentication 14:14:25 ... we prepared some slides. 14:15:05 https://hackmd.io/@ericP/Hk1NDnic1g#/1 14:18:30 ... authentication is proving your identity 14:18:45 ... authorization is when you get particular access to a particular resource 14:19:09 ... could be "this person can access this resource", or "any doctor can access any of my health record" 14:19:39 ... WAC is good for the former, it is simple and RDF-native 14:20:05 ... ACP is a little more flexible, but still can't grant access to "health record" (only to a given resource or container) 14:21:28 ... slide 3: important distinction between authorization by identity vs. by capability 14:22:04 ... WAC and ACP do the first 14:22:11 q+ to ask about delegation 14:22:36 ... in the example above, I don't know who all the doctors are, I want to delegate that to another server 14:22:47 ryey has joined #lws 14:22:50 ... that's authorization by capability 14:22:50 present+ 14:23:42 ... ACP and WAC could do in principle do that (if I give the IRI of a group rather than a principal), but I don't know if that's implemented 14:24:09 jesse: in ACP, you can express a match based on claims in a verifiable credential 14:24:30 ... but I'm not sure how widely it is implemented (ESS for sure, CSS apparently not) 14:25:06 It is not part of the ACP spec :) there is just the acp:vc property, nothing more in the spec about that... 14:25:07 ericP: we need to understand what is currently possible, and what can someone expect from every implementation 14:25:36 ... the more we require from every implementation, we higher the bar for implementers 14:25:54 ... the less we require, the more burden on users and applications 14:26:59 ... I'm not sure what Aaron wanted to get through with the "API Scope" item. 14:27:16 gibsonf1: we discussed this last week. 14:27:42 ... An example of delegation was given: you see a doctor, and sign a for allowing anyone from the office to access your data. 14:27:57 ... What prevents us from doing that with WAC, using the WebID of the *office*? 14:28:53 ... What is odd to me is the idea that delegations can be further delegated, so that the initial user has no idea who has access. 14:29:12 ... I'm not sure how capability are used in this context. 14:29:55 ericP2 has joined #lws 14:30:01 q? 14:30:04 ericP: the idea of "by capability" is that the authorization server issues a claim that this person is indeed a member of this group. 14:30:20 ... you suggest to use the WebID of the group instead right? 14:30:41 gibsonf1: that's what we do: we have a hierarchy of groups, and we can use any node of the hierarchy in WAC. 14:31:07 jesse: so gibsonf1, on your server you have a declaration of this hierarchy? 14:31:20 gibsonf1: no, we are simply using standard WebID lookup 14:31:24 q? 14:32:16 dmitri: making a parallel with Google Docs: you can share with specific individuels (by identity) or set up that anybody with the link can view (by capability). 14:32:33 ... and both are possible. 14:33:13 ... Another aspect is being able to identify clients, not just principles. 14:33:50 ... One common critique of identity-based authorization is that your app runs as your user. 14:34:15 ... This is not new to solid, it was a challenge of the 70's mainframes, where any application had access to all the files of the user. 14:34:51 q+ to ask about "API scope" 14:35:17 ... Capabilities provide guardrails in a world of standalone services that the use delegates to. 14:35:29 q? 14:35:50 gibsonf1: capability effectiveky is public access with a restricted context of action, right? 14:35:57 ack next 14:35:58 gibsonf, you wanted to ask about delegation 14:36:02 dmitri: no, it can do that, but that's not the essential part. 14:36:23 ... capabilities allow you to have flexible social access control, e.g. "anyone with the link can edit this doc" 14:36:40 ... with the social contract that if you have the link, you should not share it with other people 14:36:41 q+ on the word "capability": intuitively to me, "things are possible / promised to the data consumer" (i.e. "capable") are "capability"; so what alternative terms should be used for that 14:37:01 q++ 14:37:12 q-+ 14:37:41 ... but the capabilities do not have to be public access 14:38:14 ack next 14:38:15 uvdsl, you wanted to ask about "API scope" 14:38:40 uvdsl: I wanted to ask about "API Scope", did we reach that? 14:38:56 ericP: we did, but I'm not sure what Aaron meant by that... 14:40:13 jesse: from the discussions I had with Aaron, I think he thinks of @@ 14:40:36 uvdsl: I'm still confuse about the values in this row 14:41:13 jesse: my guess is that in "by identity", you need to describe what kind of authentication protocol you use 14:41:52 ... while in "by capability", you need to describe the format of the token you present to the authorization server 14:42:14 ... In theory, the server that issues the access grant can be distinct from your authorization server and your resource server. 14:43:17 ... you only need to prove that you have the capability, not a specific authorization 14:45:03 uvdsl: but the resource server needs to be able to check the token, and becomes an authorization server 14:45:19 ... I thought that the point of an authorization server was to decouple the two 14:45:39 s/to check/to understand the structure of 14:45:54 q+ with regards to access grants and ESS services 14:46:13 q+ access grants and ess 14:46:16 q+ Beau to ask about access grants and ESS services 14:46:36 "to ask about", "to note that".... 14:46:46 s/"to ask about", "to note that"..../ 14:47:22 q? 14:47:24 q+ 14:47:51 ... not arguing against the whole idea of capability 14:48:25 dmitri: access token and authorization mechanism vary for may implementation details 14:48:28 q- 14:48:34 ... I claim that we need both 14:49:09 ack next 14:49:10 ryey, you wanted to comment on the word "capability": intuitively to me, "things are possible / promised to the data consumer" (i.e. "capable") are "capability"; so what 14:49:10 ... alternative terms should be used for that 14:49:27 ryey: intuitively, "capability" means "being able to do something", so related to functionality 14:49:43 ... but in the examples provided, "capability" seems to be a verifiable token 14:49:49 q+ to ask about "simple" capability at Authorization vs resource server 14:50:18 ... I see value in being able to describe a client's "ability". 14:50:48 dmitri: the term "by capability" has been used for a long time, by you are right, it means more in English than in this particular case 14:51:03 scribe+ 14:51:57 pchampin: is it true that auth by ID could be modeled as a subset of auth by capability (taking into account that "capability" is scoped)? 14:52:03 scribe- 14:52:15 q+ 14:52:18 pchampin: I assume that "by identity" could be thought as a subset of "by capability"? 14:52:31 ack next 14:52:35 dmitri: its tempting to see it that way, but that's not the case 14:52:51 ... the important difference is who controls the information 14:53:40 s/controls the information/holds the authorization knowledge 14:53:42 ack next 14:53:43 gibsonf, you wanted to ask about "simple" capability at Authorization vs resource server 14:54:03 gibsonf1: on uvdsl's point about the resource server needing to think harder 14:54:51 ... ultimately the resource needs to know what it can deliver; assuming that it can trust the authorization server, a simple message from the authorization server to the resource server telling it "this is what you should deliver" should do the trick, right? 14:55:06 jeswr has joined #lws 14:55:30 ericP: the resource server still needs to understand the token it gets 14:55:49 gibsonf1: what would happen if the ACL were on the authorization server side? 14:56:26 uvdsl: on that topic I hard dmitri say that there is not always an authorization server, but only a server delivering a token 14:56:35 ... for a future discussion, probably 14:56:57 dmitri: the resource server and authorization server blend at some point, this is mostly an implementation detail 14:57:24 uvdsl: we should define what we expect from such each conceptual role 14:57:30 q? 14:57:34 ack next 14:57:57 ... re. pchampin's question, about capability being a superset of identity 14:58:12 ... could I just not write myself a ticket 14:58:38 Dmitri: in low risk situation (e.g. movie ticket) we use capability alone 14:58:59 ... in high risk situation (e.g. plane ticket) we use both (you need the ticket, and *also* to prove your identity) 14:59:53 uvdsl: so capability is not about proving identity, but also proving other things 14:59:56 dmitri: yes 15:00:14 q+ 15:00:28 in particular, it is not tied to defining the structure of a access token 15:00:31 ericP: this is a complicated topic with a lot of terminology 15:00:42 ... Dmitri, any idea of homework for us? 15:00:48 we could define a structure of an access token for identity-based authorization 15:01:14 and for capability-based authorization that is required 15:01:38 Dmitri: can't think of any off the top of my head, but my advice would be to read through the OAuth2 specification 15:01:50 ... that helps set a baseline 15:02:07 homework: read OAuth2 spec 15:02:13 https://w3c.github.io/lws-ucs/spec/#glossary 15:02:13 ack next 15:02:28 pchampin: UC&R doc has a glossary 15:02:45 https://w3c.github.io/lws-ucs/spec/#glossary 15:02:48 ... we should make sure it meets our conversation needs here 15:03:14 jeswr has joined #lws 15:05:04 pchampin: next week is ESWC, probably several people from this group will be there 15:05:23 RRSAgent, make minutes 15:05:24 I have made the request to generate https://www.w3.org/2025/05/26-lws-minutes.html pchampin 15:05:34 uvdsl: requrest no important decisions be resolved while folks are at ESWC next week 15:05:46 RRSAgent, make minues 15:05:46 I'm logging. I don't understand 'make minues', ericP2. Try /msg RRSAgent help 15:05:57 RRSAgent, make minutes 15:05:58 I have made the request to generate https://www.w3.org/2025/05/26-lws-minutes.html ericP2