Hi Hasanthi,

On Tue, Jan 23, 2018 at 10:59 AM, Johann Nallathamby <joh...@wso2.com>
wrote:

> Hi Hasanthi,
>
> On Tue, Jan 23, 2018 at 9:31 AM, Hasanthi Purnima Dissanayake <
> hasan...@wso2.com> 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?
>

Any idea why we are checking scopes here?

Regards,
Johann.


>
> 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 <joh...@wso2.com>
>> wrote:
>>
>>> Hi Hasanthi,
>>>
>>> On Wed, Oct 11, 2017 at 4:35 PM, Hasanthi Purnima Dissanayake <
>>> hasan...@wso2.com> 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: hasan...@wso2.com
>>>> 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: hasan...@wso2.com
>> 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*
>



-- 

*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
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to