Hi Hasanthi,

On Tue, Jan 23, 2018 at 9:31 AM, Hasanthi Purnima Dissanayake <
[email protected]> wrote:

> Hi Johann,
>
> Is there any instance in which IS will throw error to client because it
>> cannot send the claim?
>>
>> Because in the spec it says the following.
>>
>> Note that even if the Claims are not available because the End-User did
>> not authorize their release or they are not present, the Authorization
>> Server MUST NOT generate an error when Claims are not returned, whether
>> they are Essential or Voluntary, unless otherwise specified in the
>> description of the specific claim.
>>
>> So IMO we need to have a property for each claim that says whether we
>> return an error or not.
>>
>> Wdyt?
>>
>
> What I understand from the above is, if a claim is marked as essential or
> voluntary and if the server can not return the claim the flow should not
> break and server should not throw an error if it is not specially specified
> in the server side. In this scope we don't specify this from server side.
> Though this is not a MUST we can add this as an improvement as it adds a
> value.
>

So IIUC in any circumstance we don't send an error to client. Correct?

Yes, we can add that property as an improvement.

>
>
>>> 2. The claims like "nickname" it will act as a default claim and will
>>> control by both requested scopes and the requested claims.
>>>
>>
>> What do you mean by controlling using requested scope? Do you mean if the
>> client doesn't request at least one scope that includes this claim we won't
>> return that claim? I don't think that is mentioned in the spec. Can you
>> clarify?
>>
>
> The spec does not directly specify how should we treat for the Voluntary
> Claim from the server side. So what we have planned to do is to honour the
> scopes and server level requested claims when returning this claim.
>

IMO, because the spec doesn't say to do anything special on the OP side
about not being able to release a particular claim (it says not to break
the normal flow), there is nothing special we can differentiate between
essential and voluntary claims. Only thing we may be able to do is, give a
warning to user saying that if s/he doesn't approve an essential claim s/he
won't be able to work with the application smoothly. We can't do anything
beyond that right?

When you say scopes which scopes are you referring to? Are they the
requested scopes in the request or the defined scopes in the registry? I
fail to understand what scopes have to do with claims in this case.
Following is what I find in spec related to this.

"It is also the only way to request specific combinations of the standard
Claims that cannot be specified using scope values. "

As I understand if the specific requested OIDC claim, is defined in the
OIDC dialect, the user has a value for that claim and s/he has approved
that claim for the RP, then we can send them to the RP, regardless of
whether it is defined in scope or not. Otherwise we are contradicting the
above statement right?

Also regarding requested claims in service provider configuration, IIRC we
used it as a way to control access to certain claims by service providers,
which overrides the requested scopes and requested claims. *But that
is only if the requested claims list is not empty in service provider
configuration*. I.e. requested claims in service provider configuration
must have at least 1 claim. Otherwise what will happen is for every service
provider we need to add all the OIDC claims if they are going to request
claims dynamically, using scopes or requested claims in the request. Do I
make sense or am I missing something?

Regards,
Johann.


> Thanks,
>
>
> On Tue, Jan 23, 2018 at 9:05 AM, Johann Nallathamby <[email protected]>
> wrote:
>
>> Hi Hasanthi,
>>
>> On Wed, Oct 11, 2017 at 4:35 PM, Hasanthi Purnima Dissanayake <
>> [email protected]> wrote:
>>
>>> Hi All,
>>>
>>> In order to support 'Request Object' we need to support two parameters.
>>> 1. request parameter
>>> 2. request_uri parameter
>>>
>>>
>>>
>>> *1. request_parameter*
>>> The purpose of this parameter is for supporting to request some claims
>>> other than the default Userinfo and IdToken claim set which is associated
>>> with the requested scope.
>>>
>>> So if we consider a sample request with above parameter,
>>>
>>> https://localhost:9443/oauth2/authorize?
>>>     response_type=code%20id_token
>>>     &client_id=XXXXX
>>>     &redirect_uri=http://localhost:8080/playground
>>>     &scope=openid
>>>     &state=af0ifjsldkj
>>>     &nonce=n-0S6_WzA2Mj
>>>     &request={
>>>   "iss": "s6BhdRkqt3",
>>>   "aud": "https://server.example.com";,
>>>   "response_type": "code id_token",
>>>   "client_id": "s6BhdRkqt3",
>>>   "redirect_uri": "https://client.example.org/cb";,
>>>   "scope": "openid",
>>>   "state": "af0ifjsldkj",
>>>   "nonce": "n-0S6_WzA2Mj",
>>>   "max_age": 86400,
>>>
>>>   "claims": {
>>>     "userinfo": {
>>>       "given_name": {
>>>         "essential": true
>>>       },
>>>       "nickname": null,
>>>       "email": {
>>>         "essential": true
>>>       },
>>>
>>>     "id_token": {
>>>       "gender": null,
>>>       "birthdate": {
>>>         "essential": true
>>>       },
>>>       "acr": {
>>>         "values": [
>>>           "urn:mace:incommon:iap:silver"
>>>         ]
>>>       }
>>>     }
>>>   }
>>> }
>>>
>>>
>>> The expected behavior of Identity server will be as follows.
>>>
>>> 1.Consider the claims "given_name" and "email" which are marked as
>>> 'essential:true' for 'userinfo' member. Even if they are not mapped with
>>> the openid scope in the registry,  if these claims are requested claims,
>>> then 'given_name' and 'email' will be returned from the Userinfo endpoint.
>>> So as a summary the claims which have marked as 'essential : true' only get
>>> controlled by the requested claims and ignore the requested scopes. If the
>>> server can not provide those essential claims there wont be any failure or
>>> error message returning from the server.
>>>
>>
>> Is there any instance in which IS will throw error to client because it
>> cannot send the claim?
>>
>> Because in the spec it says the following.
>>
>> Note that even if the Claims are not available because the End-User did
>> not authorize their release or they are not present, the Authorization
>> Server MUST NOT generate an error when Claims are not returned, whether
>> they are Essential or Voluntary, unless otherwise specified in the
>> description of the specific claim.
>>
>> So IMO we need to have a property for each claim that says whether we
>> return an error or not.
>>
>> Wdyt?
>>
>>
>>>
>>> 2. The claims like "nickname" it will act as a default claim and will
>>> control by both requested scopes and the requested claims.
>>>
>>
>> What do you mean by controlling using requested scope? Do you mean if the
>> client doesn't request at least one scope that includes this claim we won't
>> return that claim? I don't think that is mentioned in the spec. Can you
>> clarify?
>>
>> Regards,
>> Johann.
>>
>>
>>> This behavior is common to the id token as well.
>>>
>>>
>>>
>>> *2. request_uri parameter*
>>> In this case the url will be a pre-registered url by the RP for use at
>>> the OP. The reference which is pointed from the url will consist the
>>> relevant jwt. The rationale behind returning claims will be same as the
>>> above in the request parameter.
>>>
>>> As we are planning to provide the implementation as a 5.3.0 WUM update
>>> the 'acr' implementation will be not available there. So if 'acr' value is
>>> requested as an essential claim a pre-define value will be returned.
>>>
>>> Any suggestion or feedback on the above will be highly appreciated.
>>>
>>> Thanks,
>>>
>>> Hasanthi Dissanayake
>>>
>>> Software Engineer | WSO2
>>>
>>> E: [email protected]
>>> M :0718407133| http://wso2.com <http://wso2.com/>
>>>
>>
>>
>>
>> --
>>
>> *Johann Dilantha Nallathamby*
>> Senior Lead Solutions Engineer
>> WSO2, Inc.
>> lean.enterprise.middleware
>>
>> Mobile: *+94 77 7776950*
>> LinkedIn: *http://www.linkedin.com/in/johann-nallathamby
>> <http://www.linkedin.com/in/johann-nallathamby>*
>> Medium: *https://medium.com/@johann_nallathamby
>> <https://medium.com/@johann_nallathamby>*
>> Twitter: *@dj_nallaa*
>>
>
>
>
> --
>
> Hasanthi Dissanayake
>
> Senior Software Engineer | WSO2
>
> E: [email protected]
> M :0718407133| http://wso2.com <http://wso2.com/>
>



-- 

*Johann Dilantha Nallathamby*
Senior Lead Solutions Engineer
WSO2, Inc.
lean.enterprise.middleware

Mobile: *+94 77 7776950*
LinkedIn: *http://www.linkedin.com/in/johann-nallathamby
<http://www.linkedin.com/in/johann-nallathamby>*
Medium: *https://medium.com/@johann_nallathamby
<https://medium.com/@johann_nallathamby>*
Twitter: *@dj_nallaa*
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to