14:57:32 RRSAgent has joined #lws 14:57:36 logging to https://www.w3.org/2025/12/08-lws-irc 14:58:02 acoburn has changed the topic to: Linked Web Storage Working Group meeting - 8 December 2025 - https://www.w3.org/events/meetings/a19ab7dc-1753-433d-bac5-64e3ad8c0a43/20251208T100000/ 14:58:17 zakim, start meeting 14:58:17 RRSAgent, make logs Public 14:58:19 please title this meeting ("meeting: ..."), acoburn 14:58:38 TallTed has joined #lws 14:58:43 meeting: Linked Web Storage Working Group 14:58:47 agenda: https://www.w3.org/events/meetings/a19ab7dc-1753-433d-bac5-64e3ad8c0a43/20251208T100000/#agenda 14:58:47 clear agenda 14:58:47 agenda+ Introductions and announcements 14:58:47 agenda+ Authentication questions from last week 14:58:47 agenda+ Authorization discussion 14:58:47 agenda+ CRUD & Metadata proposal 14:59:42 present+ 15:00:11 present+ 15:00:30 present+ 15:00:38 gibsonf1 has joined #lws 15:00:44 present+ 15:00:48 present+ 15:01:23 eBremer has joined #lws 15:01:31 present+ 15:01:54 present+ 15:02:35 bendm has joined #lws 15:02:42 present+ 15:02:57 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:03:05 chair: ericP 15:03:36 scribe+ 15:03:40 previous meeting: https://www.w3.org/2025/12/01-lws-minutes.html 15:03:42 next meeting: https://www.w3.org/2025/12/15-lws-minutes.html 15:03:58 dmitriz has joined #lws 15:04:12 take up next agendum 15:04:26 zakim, open agendum 1 15:04:26 agendum 1 -- Introductions and announcements -- taken up [from agendabot] 15:04:37 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:04:43 ericP: we have guest star Elf Pavlik, specifically for authorization 15:05:02 take up next agendum 15:05:41 elf-pavlik: I have been working on Solid-OIDC, and implemented other draft, and on SAI 15:05:48 ... which deals with app authz specifically 15:06:05 ... and I'll work on a Solid Symposium session on authz and security 15:06:21 ... I also created a sequence diagram for the current PRs 15:06:26 ... happy to be here! 15:06:44 take up next agendum 15:06:48 ericP: at some point, I want a session on SAI 15:07:30 Zakim, next item 15:07:30 agendum 2 was just opened, TallTed 15:07:33 RRSAgent, make minutes 15:09:28 https://github.com/w3c/lws-protocol/pull/43 15:09:28 https://github.com/w3c/lws-protocol/pull/43 -> Pull Request 43 LWS Authentication (by acoburn) 15:07:35 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html pchampin 15:08:18 acoburn: I wanted to raise this agendum as we talked last week mostly on authn 15:08:36 ... so if anyone has any remarks that isn't part of the PR yet, go ahead 15:09:00 q+ 15:09:06 dmitriz: what is the outcome of last week's call? 15:09:47 acoburn: this PR describes an abstract framework for having an authentication suite 15:09:52 ... and specifies some concrete suites 15:10:03 ... one shows how it would be used with SAML 15:10:08 ... mostly to show that it's possible 15:10:17 ... another suite using client credentials, another using DIDs 15:10:28 ... showing the way it works and what the basic components are 15:10:58 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:11:04 ... we hope that next monday we can have a vote on authn and authz 15:11:14 ... so that we can begin building on that 15:11:20 ack next 15:11:47 elf-pavlik: I noticed on FED-ID slack, they're discussing that 15:12:18 ... they kind of agreed that SAML might be more supported than OIDC, which is a nice data point 15:12:30 jeswr has joined #lws 15:12:35 present+ 15:12:36 q+ 15:12:36 ... what's the plan for testing, and what's the feedback from implementers? 15:12:51 q+ to say that i'd probably require a toy authN for the test suite 15:12:58 ... eg solid-OIDC was only implemented in JAVA in Inrupt 15:13:01 ack next 15:13:17 jeswr: Dmitri: is this specification in any way aligned with Social Web WG? 15:13:28 ... could we have something that could be implemented by both? 15:13:32 dmitriz: good question 15:13:36 i|agendum 2 was just opened, TallTed|topic: Authentication questions from last week 15:13:46 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:13:55 ... Social Web space mostly uses combination of OAuth for client API and httpsig for server-to-server authn 15:14:10 ... they don't have implementations of oidc 15:14:22 q+ 15:14:31 ack next 15:14:32 ericP, you wanted to say that i'd probably require a toy authN for the test suite 15:14:32 ... we could present it, some implementations might find it useful 15:14:37 present+ dmitriz 15:15:01 elf-pavlik: the main difference with activitypub, is that the client connects to more servers than only the user's server 15:15:17 ... in activitypub, it feels more like client-client server, then more server to server 15:15:45 ... in Solid, I understand Christoph's work using a proxy-based approach, which is closer to how activitypub works 15:16:00 ... it feels a bit as a gap between both architectures at this point, I think 15:16:03 ack next 15:16:09 q- 15:16:36 ericP: regarding testing, we can have a toy authn/authz scheme 15:17:09 ... like they did for SPARQL 15:17:25 ... if we include authn or authz as more than a note (i.e. as a REC), then we must test it 15:17:42 take up next agendum 15:17:54 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:18:02 Topic: Authorization discussion 15:18:03 https://github.com/w3c/lws-protocol/pull/45 15:18:04 https://github.com/w3c/lws-protocol/pull/45 -> Pull Request 45 LWS Authorization (by acoburn) 15:18:19 acoburn: there has been some engagement already on this PR 15:18:46 ... this is an attempt to bring Solid more fully under the OAuth authz scheme 15:19:24 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:19:47 ... [showing the diagram] 15:20:00 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:20:06 ... how Solid works today, is that the ID token is used as authorization token 15:20:23 ... idea is, to take Solid what it currently does, and bring closer to how OAuth works 15:20:30 ... i.e., having a dedicated authorization server 15:21:15 ... issue with using global ID tokens: a storage getting an ID token could reuse that token. that's why DPOP was added, but that adds complexity 15:21:32 ... idea is that we move that complexity elsewhere 15:22:02 ... so the application could take an identity credential (could be an OIDC ID token, could be SAML, etc) 15:22:08 q+ to ask about AS 15:22:09 ... which gets exchanged for an access token 15:22:18 ... this is used by the storage 15:22:21 q+ to ask whether the mentions of Solid here are as a prototypical implementation of LWS 15:22:24 ... that storage cannot reuse that token 15:22:52 ... we're putting all that token exchange as part of the authorization server 15:23:08 ... it's functionalities: verify the identity token, that the token is scoped correctly, etc 15:23:18 s/it's functionalities/its functionalitites 15:23:25 ack next 15:23:26 gibsonf, you wanted to ask about AS 15:23:44 gibsonf1: on the authz server: you're saying 'this ID token is for this storage'? 15:23:50 acoburn: it's an exchange 15:24:15 q+ 15:24:17 ... from an authn token to an access token 15:24:42 ... once the access token is sent to storage, you can see 'can this particular user access this particular resource?' 15:24:42 ack next 15:24:45 TallTed, you wanted to ask whether the mentions of Solid here are as a prototypical implementation of LWS 15:24:46 q+ 15:24:47 ack next 15:25:07 TallTed: is Solid mentioned as prototypical implementation of LWS? 15:25:14 ... otherwise we'll get in trouble down the road 15:25:47 acoburn: yes, indeed, Solid is brought to center the conversation 15:26:12 ... so it gives a migration path, and we don't discuss anything brand new 15:26:20 ack next 15:26:29 ... we are not saying 'this is what solid does, so this is what lws does' 15:26:43 q? 15:26:47 q+ 15:26:56 pchampin: why is it better to send it to the AS instead of the storage? 15:27:02 ... what do we gain here? 15:27:09 acoburn: we mainly gain that we align with OAuth 15:27:30 q+ to say we also gain separation of concerns (cfr data spaces) 15:27:57 ... we use the OAuth protocol to gather a real access token and use it as an access token 15:28:10 ... instead of trying to reuse an ID token as an access token 15:29:00 ack bendm 15:29:00 bendm, you wanted to say we also gain separation of concerns (cfr data spaces) 15:29:37 scribe+ 15:30:23 that makes sense, thanks a lot 15:30:34 bendm: the advantage of passing the ID to the authN server is that you get a separation of concearns 15:30:52 scribe- 15:31:06 bendm: so, eg, you can have a set of storage servers managed by one AS, where you only need to trust the AS, not all individual storage serves 15:31:51 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:32:10 acoburn: also, you could have a SAML assertion, that you can exchange for an access token 15:32:28 ... so you could combine the signed XMLs with JWTs 15:32:47 ... also, the AS could supports many different types of credentials 15:33:01 ... meanwhile, being able to consolidate the functionality of an access token 15:33:15 ack next 15:33:22 https://elf-pavlik.github.io/lws-auth/view/oidc/?dynamic=sequence 15:33:34 elf-pavlik: this sequence diagram 15:33:43 ... what I tried to emphasize are the security domains 15:33:52 ... in OAuth, access tokens should not cross security domains 15:34:41 ... in Solid, global access tokens were used, even broader than id token 15:34:56 ... now, we can go to UMA or OAuth token exchange 15:35:04 ... this diagram shows the different security domains 15:36:42 ... this diagram also introduce another token exchange: from id token to access token of your own AS, to access token to the storage server's AS 15:36:47 ... it's a bit more chatter, but compliant 15:36:59 I think this might be adding a bit more complexity than maybe we need? 15:37:14 acoburn: about sender-constrained: other than DPOP, we use the audience claim very loosely 15:37:37 ... in a JWT, `aud` is used to constrain the token 15:38:11 q? 15:38:11 ... this interaction allows to use the audience constraint to make sure these tokens don't become global 15:38:28 q+ 15:38:37 ack next 15:38:54 dmitriz: let's make clear which problem we're solving 15:39:13 ... alignment with what other protocols were meant to do, is not a great argument 15:39:32 ... e.g. OAuth 2 has recently gotten the client metadata document 15:39:47 ... which is the result of a multi-year conversation, inspired by WebID documents 15:40:01 ... the other direction to consider, is to work to update the OAuth and OpenID specifications 15:40:11 q+ 15:40:45 acoburn: it's fair to ask "what about aligning OAuth with LWS?" 15:40:55 ... however, having OAuth change seems like a very big ask 15:41:35 ... which doesn't seem realistic with our timeline 15:42:28 dmitriz: what I mostly want to say: I want us to be very clear what extra complexity is really needed 15:42:51 acoburn: what elf was talking about: there could be intermediate token exchange, but those will be deployment and use case specific 15:43:04 ... they don't directly apply to LWS 15:43:47 ack next 15:43:51 ... the main reason is to have access tokens, aligning with OAuth is a good to have 15:44:21 elf-pavlik: everyone says 'use existing authn/authz protocols, don't invent your own' 15:44:35 ... in CSS, okta libraries are used, and that's a good thing 15:45:10 q+ 15:45:22 ... cfr. about the additional token exchanges: that's for sender-constrained access tokens 15:45:43 ... other extensions are also possible, eg for client applications 15:45:44 ack next 15:45:57 dmitriz: why not just sender-constrain the dpop tokens? 15:46:24 elf-pavlik: because dpop is used for access tokens, and access tokens should not cross security domains 15:46:55 ... we could ask IETF to extend the dpop definition, but, e.g. for app authorization we need another way 15:47:18 ... we just need some way to create sender-constrained tokens 15:47:43 acoburn: this interacts with the authentication proposal: 15:48:03 ... for every authentication suite, you must have a token type uri 15:48:10 ... it must be from iaana 15:48:23 ... e.g. saml2 or oidc token 15:48:46 ... (it SHOULD be from IANA, but it MUST be an URI) 15:49:08 ... so e.g., for WebID, we must define a URI that covers that kind of credentials 15:49:50 ... AS should broadcast what type of tokens they support (eg JWT or ID Token) 15:50:27 ... using the `resource` parameter, you can restrict the token to a single storage 15:50:38 q? 15:50:49 q+ re authz apps 15:50:50 agenda? 15:51:11 acoburn: so please have a look that the PRs 15:51:45 ... most is on section 5, and there are some security and IANA considerations 15:52:09 ... if there's consensus, I'd like to merge these in 2025 15:52:21 ... so, by next meeting 15:52:35 next agendum 15:52:43 acoburn: there's another proposal from eBremer 15:52:51 ... on CRUD and metadata 15:52:55 https://github.com/w3c/lws-protocol/pull/37 15:52:55 https://github.com/w3c/lws-protocol/pull/37 -> Pull Request 37 Initial CRUD with proposed metadata handling (by ebremer) 15:53:02 ack next 15:53:03 elf-pavlik, you wanted to discuss authz apps 15:53:13 https://www.ietf.org/archive/id/draft-ietf-oauth-identity-assertion-authz-grant-01.html#name-response 15:53:14 i|another proposal|topic: CRUD & Metadata proposal 15:53:28 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:53:34 elf-pavlik: can we discuss authorizing applications? 15:53:58 ... eg the aud tag could provide scopes 15:54:02 q+ 15:54:52 q- 15:55:11 ... so client applications (the server needs to allow something that the application wants, not necessarily something that the user wanted) 15:55:28 ... is an interesting follow up topic 15:55:36 next agendum 15:55:46 eBremer: about the crud PR 15:56:01 ... 7 describes the functionalities, going into 8, and 9 specifies the mapping 15:56:29 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html TallTed 15:56:36 ericP: see you next week, please review the PRs, and next week we vote on authn and authz 15:56:57 acoburn: and 15/12 is the final LWS meeting of 2025, next one will be January 5th 15:57:36 s|15/12|2025-12-15 15:57:36 RRSAgent, make minutes 15:57:38 I have made the request to generate https://www.w3.org/2025/12/08-lws-minutes.html pchampin 15:58:25 acoburn has left #lws 16:00:46 RRSAgent, bye 16:00:46 I see no action items