11:02:23 RRSAgent has joined #wot-script 11:02:23 logging to https://www.w3.org/2021/04/26-wot-script-irc 11:02:30 meeting: WoT Scripting API 11:02:53 present+ Kaz_Ashimura, Daniel_Peintner, Cristiano_Aguzzi, Michael_McCool, Zoltan_Kis 11:03:18 cris has joined #wot-script 11:04:02 scribe: zkis 11:06:09 present+ Eena_Reshetova, Oliver_Pfaff 11:07:08 McCool has joined #wot-script 11:07:49 Topic: security discussions 11:08:29 https://github.com/w3c/wot-scripting-api/issues/315 11:08:52 Mizushima has joined #wot-script 11:08:59 Oliver has joined #wot-script 11:09:06 DP: this is tracking the meeting and we discuss individual issues 11:09:17 Topic: issue#299 11:09:24 -> https://github.com/w3c/wot-scripting-api/issues/299 11:09:43 CA: could the script know what security schemes are known to the runtime 11:09:50 Agenda: https://www.w3.org/WoT/IG/wiki/WG_WoT_Scripting_API_WebConf#19_April_2021 11:10:59 ZK: ExposedThing implementation is not well understood yet and not standardized 11:11:16 s|issues/299|issues/299 Issue 299 - Chose a particular security schema for an ExposedThing| 11:11:23 present+ Tomoaki_Mizushima 11:11:27 CA: we can choose the security scheme but we could not know which ones are supported 11:11:59 s/Topic: issue#299/subtopic: Issue 299/ 11:12:01 DP: for context, we have separated ConsumedThing and ExposedThing 11:12:18 ... from ConsumedThing the client can choose 11:12:25 ... for ExposedThing it is more complex 11:12:35 q+ 11:12:41 ... but later on we need to define the security schemes 11:12:55 ... question is how to choose, how to figure out which ones are supported 11:13:06 ack McC 11:13:21 ER: we had this discussion earlier 11:13:39 ... we probably need a minimal requirement to fulfill 11:13:47 ... like with SDP protocol 11:14:08 ... the script internal logic should decide whether what is returned can be used 11:14:21 ... the weak schemas will exist no matter which approach we take 11:14:34 ... (except no security) 11:14:49 ... we could provide the minimal set 11:14:51 q+ 11:14:55 ... otherwise fail 11:15:09 MMC: say there are 3 levels of config: 11:15:17 ... one is picking a predefined security def 11:15:26 ... 2nd level is the content of a security object 11:15:49 ... below that there is the level where we configure certificates etc 11:15:58 ... we need to think about the use cases 11:16:08 ... for instance not in the browser, but in Node.js 11:16:21 MMC: about negotiation 11:16:32 ... what we really want to know is what security objects are there 11:16:41 ... based on which we can define security definitions 11:16:52 ... then the script could pick one(s) 11:17:04 ... so the script needs to access the security object's content 11:17:11 ... that information is not sensitive 11:17:30 ... for instance OAuth scheme etc 11:17:37 ... another factor is the protocol; 11:17:42 q+ 11:17:55 ... we should not use basic HTTP, so the script needs to know what the protocols are 11:18:08 ack cris 11:18:19 CA: good formulation of the problem 11:18:29 ... so we need a method to list the available security schemes 11:18:46 s/security schemes/SecurityScheme object/ 11:19:00 -> https://w3c.github.io/wot-scripting-api/#exposedthing-examples Editor's draft - 8.32 ExposedThing Examples 11:19:17 q? 11:19:17 q+ 11:19:34 q+ 11:19:36 CA: how do we define minimal sets? 11:19:50 ER: was not a proposal, just an example for an approach 11:20:25 q? 11:20:43 ER: there is a negotiation between the script and the runtime 11:20:59 CA: that justifies even more that API 11:21:10 ... we need a programmatic approach 11:22:12 q? 11:22:31 DP: right now node-wot is no-security 11:22:56 OP: where is the a list of possible security schema definitions defined? 11:23:12 q? 11:23:18 ack d 11:23:23 OP: look at OPC profile document 11:23:33 ack dape 11:23:41 ... the vendor can declare capabilities 11:23:51 ER: don't we have this in WoT? 11:24:04 MMC: we are getting confused by the "Scheme" 11:24:08 ... and the object 11:24:18 ... or security definition 11:24:34 ... so there should be a management API that configures the runtime 11:25:06 ... security definitions could be applied on whole TD or only some Forms 11:25:22 q? 11:25:24 ... we won't want developers use no-security 11:26:00 MMC: the cleanest way to do it is to have a catalog of the security definitions 11:27:18 ZK: currently we don't have any API for this, so we are discussing a new system API as a helper 11:27:48 DP: currently doesn't help if the TD template contains definitions 11:28:01 ... can the consumer pass down security credentials? NO 11:28:11 ... so there should be prior configuration 11:28:38 MMC: the secrets are associated to the security definitions; scripts can only select ones 11:28:42 q+ 11:28:47 ack zk 11:28:51 ack McC 11:29:17 MMC: we don't have a way to say that a security definition only applies to a certain protocol 11:29:29 ... some schemes might not work for some protocols 11:29:40 ... first we need to pick the scheme and protocol 11:29:55 q? 11:29:58 ack cr 11:29:58 ... so we need an external management API that can be used to configure these in advance 11:30:19 CA: the implementation of the security schemes is inside the bindings library 11:30:30 ... so node-wot knows about them 11:30:38 ... but the TD doesn't know about it 11:30:51 q+ 11:31:03 MMC: even if we say in the TD which protocol it applies to, the implementation could override 11:31:29 DP: is there some suggestion to put a label on security objects that could be used for filtering? 11:31:37 MMC: they are meant to be orthogonal 11:31:47 ... some protocols have password schemes 11:31:58 ... the impl can say it supports only certain protocols 11:32:31 ... don't think we should put than in the TD spec 11:32:45 ... but implementations can be more specific 11:33:12 DP: trying to rephrase; we could query the available security schemes in the runtime 11:33:56 q? 11:34:00 ack dape 11:34:08 q+ 11:34:12 MMC: right 11:34:23 ... query, apply, management 11:34:26 CA: +1 11:34:58 ... wondering if we could include the query in the core API, as it's related to ExposedThing 11:35:17 CA: can I profile/fingerprint a user based on this? 11:35:35 MMC: this is an issue in the browser, but here we talk about servers 11:35:58 ... it is possible to fingerprint the environment based on listing capabilities 11:36:18 ... but to have access to the API, I have to be already provisioned 11:36:25 ... so the risk is not substantial 11:36:30 q? 11:36:45 MMC: whether it matter it depends on the use case 11:36:57 DP: what if this API is not there? 11:37:38 MMC: let's suppose we just need to pick the security scheme name, even then we need the list, and even a standardized name list 11:37:52 ... we could use a context that give access to at least the scheme names 11:38:07 ER: I'd support this 11:38:31 ... in scheme negotiation if we want to make a choice, we need just the descriptive names 11:38:40 ... and that minimizes fingerprinting as well 11:40:19 q? 11:40:22 q? 11:41:49 q+ 11:42:12 ZK: right now we need to put security definitions to an init dictionary 11:42:23 ... CA would prefer programmatic API instead 11:42:36 ... so we need a new API for that querying, and then also the management API 11:43:17 MMC: listing and choosing the sec defs should be added to the API 11:43:29 ... and a management API should set it up 11:43:31 q+ 11:43:36 q+ 11:43:37 ack cris 11:44:16 q+ 11:44:17 CA: I didn't like the declarative security definitions 11:44:42 ... when we call the expose() method, we'll get back an error 11:45:02 ... then we need to start again by creating a new template: it's a trial and error method 11:45:30 q? 11:45:44 MMC: the problem is with the secrets 11:45:48 q- later 11:46:03 ... MMC: each definition needs to be provisioned externally 11:48:35 CA: node-wot starts to implement sandboxing, and we will need these APIs 11:48:56 MMC: maybe out of scope for the current API, but we need to start working on the management API 11:49:29 CA: this would also allow portability of the server applications 11:49:39 i|this would|-> https://github.com/w3c/wot-scripting-api/issues/298 Issue 298 - Requirements for Managment APIs| 11:49:50 q? 11:49:59 ack m 11:50:02 q- 11:50:54 KA: we need more details about the implementation, service ports etc 11:51:06 MMC: we could include those in the management API 11:51:31 q+ 11:52:04 KA: we don't have impl for DiD for Scripting, but wanted to raise the possibility to use it 11:52:17 MMC: we will discuss it more deeply 11:52:24 ... a bit too early at the moment 11:52:40 s/we don't/also we don't/ 11:52:54 s/use it/use it as well (for v2 specs) 11:53:17 ack kaz 11:53:18 OP: we should differentiate between instance specific information and generic information that could apply to multiple instances 11:53:34 q- 11:54:01 OP: we need a well understood catalog of security scheme names 11:54:10 ... without any instance specific information 11:54:26 ... based on these 2 assumptions we could solve it 11:54:46 CA: we have a sort of catalog 11:55:20 ... in the Thing Model definition 11:55:51 ... so we are not too far 11:56:25 (link) 11:56:51 OP: what is the difference between security scheme vocabulary and name? 11:57:11 s|(link)|-> https://w3c.github.io/wot-thing-description/#sec-security-vocabulary-definition Thing Description Editor's draft - 5.3.3 Security Vocabulary Definitions| 11:57:28 MMC: the set of labels are clear 11:58:34 ZK: the TD spec is missing on how to generate a TD, we'd need that as well 11:58:38 s/Thing Model/Thing Description's information model/ 11:58:49 MMC: we could have multiple levels of scripting 11:59:10 ... setup would be done by different roles 11:59:22 ... programming by another role 12:00:37 MMC: when generating a TD from a script we have 2 stages, one is configuration and the other is selecting 12:02:48 ZK: we need full code examples to figure out what/how to standardize 12:02:52 CA: I can provide that 12:02:55 -> https://github.com/w3c/wot-scripting-api/issues/299 12:03:01 MMC: we could comment in the issue 12:03:29 q? 12:04:17 MMC: we need to list/update the management API requirements 12:06:09 MMC: let's figure out a minimal API fulfilling those 12:06:19 CA: yes, we need subsets 12:06:29 zakim, who is on the call? 12:06:29 Present: Kaz_Ashimura, Daniel_Peintner, Cristiano_Aguzzi, Michael_McCool, Zoltan_Kis, Eena_Reshetova, Oliver_Pfaff, Tomoaki_Mizushima 12:06:45 present- Eena_Reshetova 12:06:50 present+ Elena_Reshetova 12:07:07 citrullin has joined #wot-script 12:07:15 present+ Philipp_Blum 12:07:25 rrsagent, make log public 12:07:30 rrsagent, draft minutes 12:07:30 I have made the request to generate https://www.w3.org/2021/04/26-wot-script-minutes.html kaz 12:07:45 adjourned 12:08:02 Chair: Daniel 12:08:05 rrsagent, draft minutes 12:08:05 I have made the request to generate https://www.w3.org/2021/04/26-wot-script-minutes.html kaz 12:08:53 Mizushima has left #wot-script 12:11:26 zkis2 has joined #wot-script 14:10:04 Zakim has left #wot-script 14:57:35 zkis has joined #wot-script 17:08:40 zkis has joined #wot-script 20:57:33 zkis has joined #wot-script