From: Mario Loffredo <mario.loffr...@iit.cnr.it>
Sent: Thursday, February 10, 2022 3:34 AM
To: Hollenbeck, Scott <shollenb...@verisign.com>; regext@ietf.org
Subject: [SUSPICIOUS MESSAGE] [EXTERNAL] [SPAM] Re: [regext] I-D Action: 
draft-ietf-regext-rdap-openid-10.txt




Caution: This email originated from outside the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.

Hi Scott,

please find my comments below.

Il 09/02/2022 21:05, Hollenbeck, Scott ha scritto:



From: regext  <mailto:regext-boun...@ietf.org> <regext-boun...@ietf.org> On 
Behalf Of Mario Loffredo
Sent: Wednesday, February 9, 2022 1:07 PM
To: Hollenbeck, Scott  <mailto:shollenbeck=40verisign....@dmarc.ietf.org> 
<shollenbeck=40verisign....@dmarc.ietf.org>; regext@ietf.org 
<mailto:regext@ietf.org>
Subject: [EXTERNAL] Re: [regext] I-D Action: 
draft-ietf-regext-rdap-openid-10.txt




Caution: This email originated from outside the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.

Hi Scott,

a first feedback is about the "notice" object used in the examples.

It seems to me that the values of the "description" member are not compliant 
with what is stated in section 4.3 of RFC 9083:

an array of strings named "description" for the purposes of conveying any 
descriptive text

As a general rule, I think we should not use jagged arrays. They are harmful 
for clients because they cannot be deserialized straightforwardly.

This is also one of the reasons why jCard is considered inefficient.

So I would opt for defining a new "session response" based on an unambiguous 
data model.

[SAH] Thanks for catching that, Mario. What about something like this (might 
not be valid json…)?

     {

       "notices": {

         "title": "Login Result",

         "description": [

           "Login succeeded", "user.idp.example"

         ],

         "lang": "en-US"

       },

       "userInfo": {

         "claims": {

           "iss": 
<https://secure-web.cisco.com/1SENSmpCLOpO4y0OpP-M2vHQx3yvVlXW-vEl55sYCFP5bzatUTw--UMcbNCxuhg5jzZ-oaV4jhVfYQCtLCyymm0m_wIWUMfJGFptWDIhlq8ei7szTfYOsPU761N5YZByLu8dFeUD2u12Jj7Mb2ucFYN5bizX7gF5alRPFPR5ouxz5TTcA7JaaW1IHzArKSlcpD0k6iW3iOcx2oCSBJSz9rV68rHz8HUefkBdeZXW2qiJvlLVcF3uh_88i7mD1WH7x4CoNzIhRbAXak-KoJiZJJSORMZM6_QK43p_Jf3eHF7SOO0uk4J1ozUP0-yZstyTu/https%3A%2F%2Faccounts.someprovider.com>
 
"https://accounts.someprovider.com";,

           "azp": "729559086898-onapsvnhf2og.apps.someprovider.com",

           "aud": "729559086898-onapsvnhf2og.apps.someprovider.com",

           "sub": "103892603076825016132",

           "email":  <mailto:u...@someprovider.com> "u...@someprovider.com",

           "email_verified": true,

           "at_hash": "es5maY5y9jBAWCBMhLokAQ",

           "nonce": "dcb29f97c836726ddc074f76fbc21bfd",

           "name": "User Person",

           "picture": 
<https://secure-web.cisco.com/1eYionJVViuLiOqC3iKMgO4oA7JH8lVjrCNERUxoASCNg54d1FxpMb9RJF3EdM1vvm3jjKgrzutnWX14VQJ7v8uB150AOItS7Elnhhk8tSbPnIK2CqWYKFW9LjalI1v1RmZ7cICe4dB6kU8Ni8ULS77DxUHPdtsLL-bgkI8Ho4HPdvELaf6DrO9lhkZgNvu9pQUjVqtfHvlM4al-zhsP-esr2EOa63wlPO3YfgGodTj9_lT1ckmxhTSPKtoC5EWK6jxxpp40hL06jnBIUr0Bz9__6464oOqgY-fBqlVwz8cElw-k20pWopmGKypUcnJKp/https%3A%2F%2Flh3.someprovider.com%2Fa-%2FAOh14%3Ds96-c>
 
"https://lh3.someprovider.com/a-/AOh14=s96-c";,

           "given_name": "User",

           "family_name": "Person",

           "locale": "en",

           "iat": 1644239971,

           "exp": 1644243571,

           "purpose": "domainNameControl",

           "dnt": false

         },

         "session": {

           "Expires in (seconds)": 3599

         }

       },

     }

The property name "Expires in (seconds)" cannot be deserialized 
straightforwardly.

[SAH] OK, easy to fix. Let’s just call it “expiration”.

Another point: I wonder if we really need to return the claims to the 
End-User.  The only possible purpose coming in to my mind is that the End-User 
can check the claims and decide to logout or withdraw the session because he 
doesn't recognize himself in the claims. For example, an End-User willing to 
submit requests that shouldn't be logged by the server could check that the 
"dnt" claim is set to true. Right ?

[SAH] Right. Show the claims so the end user sees what’s being shared with the 
RDAP server, and let the user decide if they wish to proceed or not.

If yes, I think that a text explaining why the claims are returned should be 
added. Maybe a point might be added to the list in section 3.1.2 or text added 
to section 3.1.3.6 .

[SAH] OK.

Anyway, the "claims" object as shown in your example contains some members 
that are included in the ID Token 
(https://openid.net/specs/openid-connect-core-1_0.html#IDToken 
<https://secure-web.cisco.com/1GoYJ5n1W3Z7Yw7KJS_jAOaJk-DMmDU7sPqKugnABsmhnfsA55-F-d1SGDbLfBHo3nJctg6EFW6Z2gBfdFDd62WDiyJ_DIYdw5_2rmykqNisLQr2gKnSwJ8paOhogVyISl1BPtBE7MpfZvAE8dqSOg58tUNGUzqzDwZfztvnCzHWTMGOKtNUtbrg-uF8H6veC_yjuIe2rHrEIIcCUDc-v4678D5R6i_9KjHOWBKTNND_04kto1rknUUlVRt0E3DEN_L0VEyih3r3TJRQvxGVnhli3cv4_sqBaCOr4mnRdYHh9mfk5bfkjEGC5NNjOGnZV/https%3A%2F%2Fopenid.net%2Fspecs%2Fopenid-connect-core-1_0.html%23IDToken>
 
 ) but missing in the UserInfo response 
(https://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse 
<https://secure-web.cisco.com/1kf5J1yEtF-2dHyP7ERRECWIDTxu5PUaGBQ3piYVrBKDaUXzt8z9GE02SJpqyq3zp26hZwGrdkMKc0_wkwVo-JZdxtvRD2SFT53sTG3ngj57PdymH9cgq7P5pWDDPtPuBKuyWum339IGmKkXsj7i4mpyXVhXfSurNVjx8lInMhnYm7EJcBUA7ACyJAZtVtuetI_bvtUSMA9vK-QLu7KTwDVZw8Gvcd2EjwtFrYtOF34Oo6giJSKWZHpOQNLxVQwOsFKevullt4D_7RNnMKG9eqV2u7gphjXagfZQnacMZZnu82s_Kxu6Mz73wjZCszM9O/https%3A%2F%2Fopenid.net%2Fspecs%2Fopenid-connect-core-1_0.html%23UserInfoResponse>
 
 ) such as "iss", "nonce", and others. In my opinion, those members should be 
removed from the response because they are meaningless for the End-User.

[SAH] I temporarily included all the verified claims sent by the OP (which 
includes all the information from the UserInfoResponse) for now because I don’t 
know if we can really assess what an end user will understand or not. I think 
it’s better to return everything that we get from the OP so that we have full 
transparency, and the client can determine if/how to display that information 
to the user. Having said that, I’m open to the idea of returning the items 
from the UserInfo response instead of the complete set of verified claims as 
long as I also include the text that explains why the claims are returned as 
noted above and suggesting that the client determine which claims are exposed 
to the end user.

In addtion, the resulting "claims" object would be more compliant with what is 
stated in section 3.1.3.6 .

   OpenID Connect specified a set of standard Claims in Section 5.1.
   Additional Claims for RDAP are described in Section 3.1.4.

[SAH] That’s true. OK, I’ll make the change and limit the return values to 
what’s returned in the UserInfo response. Thanks again for the feedback!

Best,

Mario

_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

Reply via email to