Closed kFYatek closed 5 years ago
Another interpretation that didn't occur to me while originally writing this ticket is that the Server URI written to the data model should actually include the /rd
or /bs
path.
So another question is: if Uri-Path in the Server URI resource is allowed and meaningful
/rd
segment is supposed to be included in the value of the resource?Also, just noting that on-site input from @hannestschofenig during the meeting of the Working Group with TestFest Warsaw participants on Wednesday seemed to suggest that:
/rd
or /bs
shall be appended to the Uri-Path present in the Server URI resourceep=...
query), both values shall be passed in the resulting URIAs for me, I think this would be a perfectly suitable conclusion.
From a related issue:
OMA-TS-LightweightM2M-V1_0_1-20170704-A
Allow to include uri-path and any uri-query in a resource of LwM2M server URI (/0/0/0
).
This will enable passing extra information (like tenancy) to LwM2M server.
For example:
coaps://example.com:5684/my-creazy-rd?parameter=value
then client registers:
POST coaps://example.com:5684/my-creazy-rd?parameter=value&ep=device0123
For v1.1 we have to clarify the security processing that relates to the comparison between the content of a certificate (such as the string contained in the CN field of a cert) with the LwM2M Server URI resource value. A dedicated resource carrying the Server Name Indication (SNI) has been defined already.
If this issue is still valid, please re-issue it against the LwM2M v1.1 release.
Up until the second-to-last pre-1.0 draft, the LwM2M Server URI Resource in Section E.1 (LwM2M Object: LwM2M Security) read:
However, it has been changed in
2017-0051R02-CR_security_object_bugfix_uri_format
, and in all current versions, including the 1.0 and 1.0.1 approved versions, it reads:Allowing all URIs that are valid as per RFC suggests that things like paths and query-strings are now allowed, so that e.g.
coaps://example.com:1234/some/crazy/path?and=more&craziness
now seems a valid LwM2M Server URI.However, other parts of the spec do not seem to be prepared for such URIs; for example, section 8.2.4 mentions that Register shall be sent on the "/rd" URI and also that "The LwM2M Server MUST return a location under the /rd path segment" in Location-Path Options. It might be interpreted as requiring an absolute "/rd" path, essentially discarding any Uri-Path present in the Server URI.
There are more unresolved questions if the configured Server URI includes a query string. Shall these values be reproduced when sending Register or Bootstrap-Request? What if the configured URI already contains some query-string arguments that are meaningful for LwM2M, such as
ep
? Also, what about Update?All in all:
coaps://example.com:1234/some/path
?/rd
path of a Register URI or/bs
path of a Bootstrap Request URI?/rd
and/bs
paths always used?Location-Path
returned in response to Register contain an absolute path or a path relative to the Server URI?coaps://example.com:1234?some=query
?coaps://example.com:1234?ep=iamcrazy
? What will be the Register URI?ep
attribute with Endpoint Client Name?ep
attribute? In what order?