Hi All,

I have added the reviewed new approach as a comment to the Github issue. [1]

[1] https://github.com/wso2/product-microgateway/issues/298

Thanks,
Sampath

On Wed, Feb 27, 2019 at 1:39 PM Nuwan Dias <nuw...@wso2.com> wrote:

>
>
> On Wed, Feb 27, 2019 at 12:54 PM Vanjikumaran Sivajothy <va...@wso2.com>
> wrote:
>
>> OAuth Token can be exchanged for a JWT token; In that case, if the root
>> OAuth token revoked there is a need of removing the relevant JWT token
>> also.
>>
>
> I'm not sure whether we support a scenario like that today. What is the
> grant type that allows you to exchange an OAuth token for a self contained
> (JWT) token?
>
>>
>> Will it be under consideration in this implementation?
>>
>> On Wed, Feb 13, 2019 at 12:52 AM Nuwan Dias <nuw...@wso2.com> wrote:
>>
>>>
>>>
>>> On Wed, Feb 13, 2019 at 11:27 AM Sanjeewa Malalgoda <sanje...@wso2.com>
>>> wrote:
>>>
>>>> Thanks for the inputs. When i think about this feature further i think
>>>> we do not need to limit this capability for JWT revoke. We can implement
>>>> some mechanism to send some updates details etc to gateways from outside on
>>>> demand. JWT revocation could be one use case. But we need to check the
>>>> feasibility of pushing config updates(API resource updates etc), blocking
>>>> conditions etc. If we have something like config API then it will also work
>>>> here. If we have high decentralized system with multiple gateways then
>>>> updating each of them might be complicated task( However this might be easy
>>>> if container management system).
>>>>
>>>
>>> Yes, once we have the infra setup we can use it for multiple things.
>>>
>>>>
>>>> Thanks,
>>>> sanjeewa.
>>>>
>>>> On Tue, Feb 12, 2019 at 5:11 PM Nuwan Dias <nuw...@wso2.com> wrote:
>>>>
>>>>> I have created a Git issue for this [1].
>>>>>
>>>>> I believe the pub-sub model is more suitable for this. I've explained
>>>>> the proposed architecture on the Git issue.
>>>>>
>>>>> This capability is only required for the ones who want to propagate
>>>>> token revocations to the microgateways as soon as possible. The tokens
>>>>> (usually) expire in about an hour. Therefore the user group who are
>>>>> interested in this feature are the ones who would typically want the
>>>>> revocations to be propagated sooner than that. And these types of users
>>>>> would most probably demand for a near real time impact. The disadvantage 
>>>>> of
>>>>> the pull model is that for the revocations to be notified soon enough, the
>>>>> microgateways will have to keep polling the STS quite frequently, say like
>>>>> once every minute at least. With 100 microgateways, that would mean a
>>>>> considerable amount of load on the STS to deal with. And we now have to
>>>>> worry about the scaling factor of the STS along with the scaling factor of
>>>>> the microgateway. Hence I doubt the polling model is right for this.
>>>>>
>>>>> With web-hooks the problem is that the STS requires an outward
>>>>> connection to each of the microgateways. Imagine having the STS on cloud
>>>>> and the microgateways on-prem. The cloud would not have a physical
>>>>> connection to the on-prem microgateways to revoke tokens.
>>>>>
>>>>> The pub-sub model gives us a decoupled architecture (in terms of
>>>>> scalability) with a near real-time impact, which I think is ideal. For the
>>>>> persistence related issue I think we need to introduce a lightweight
>>>>> persistence layer across the microgateways.
>>>>>
>>>>> [1] - https://github.com/wso2/product-microgateway/issues/298
>>>>>
>>>>> On Sat, Feb 9, 2019 at 9:53 PM Fazlan Nazeem <fazl...@wso2.com> wrote:
>>>>>
>>>>>> Hi Sanjeewa,
>>>>>>
>>>>>> Irrespective of the method we use to implement this, once we choose a
>>>>>> mechanism, we will not be able to refer to the JWT tokens as
>>>>>> self-contained, isn't it? Because we will have to depend on an external
>>>>>> party to decide the validity of a token.
>>>>>>
>>>>>> AFAIU, I think the pub/sub model and push model has a disadvantage if
>>>>>> the process running the topic(in pub/sub model) or the microgateway(in 
>>>>>> push
>>>>>> model) restarted(unless we repopulate the topic or the mgw memory on each
>>>>>> restart with JTIs of unexpired revoked tokens).
>>>>>>
>>>>>> With the Pull model, I don't see this issue. the key manager only
>>>>>> needs to store the unexpired revoked token information.
>>>>>>
>>>>>> I also feel that we need to introduce a config to switch on
>>>>>> enabling/disabling this feature so that we can also use the microgateways
>>>>>> in the current mode.
>>>>>>
>>>>>> On Thu, Feb 7, 2019 at 3:58 PM Sanjeewa Malalgoda <sanje...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>> I'm initiating this mail thread to discuss more about JWT token
>>>>>>> revocation feature we are planning to implement for API Manager
>>>>>>> micro-gateway. In API Manager micro-gateway we do support both oauth 
>>>>>>> access
>>>>>>> tokens and JWT access tokens. When we use OAuth access tokens we can 
>>>>>>> revoke
>>>>>>> them and make it effect immediately. Since all OAuth tokens geting
>>>>>>> validated with key manager revoked tokens will fail validation. When we 
>>>>>>> use
>>>>>>> JWT token we do token validation within gateway itself without calling 
>>>>>>> key
>>>>>>> manager or external party. Since JWT is self contained one we are 
>>>>>>> basically
>>>>>>> trust its content as long as token not expired and signature valid. 
>>>>>>> Then it
>>>>>>> will be a problem.
>>>>>>>
>>>>>>> So we will need to have some mechanism to propagate revoked token
>>>>>>> details to micro-gateways as well. Since self contained token 
>>>>>>> revocation is
>>>>>>> ineffective(there can be multiple token contents for same valid JTI due 
>>>>>>> to
>>>>>>> generated time and signature changes) most suitable way of doing this is
>>>>>>> using JTI to identify revoked tokens. When JWT revoked we need to 
>>>>>>> revoke it
>>>>>>> using JTI. If we can send revoked JTI list to micro-gateway then we can
>>>>>>> check that as part of key validation process.
>>>>>>>
>>>>>>> We need to find a way to send revoked JTI to microgateways,
>>>>>>> Pub/sub model - all gateways need to subscribe to topic and get
>>>>>>> updated about revoked tokens.
>>>>>>> Pull Model - micro-gateways will call key manager or management
>>>>>>> server and get update about revoked tokens
>>>>>>> Push Model - Management server or key manager plugin will call all
>>>>>>> deployed micro services and send revoked JWT list.
>>>>>>> Each of these methods will have their own advantages and
>>>>>>> disadvantages. Lets use this mail to discuss those in detail and come to
>>>>>>> conclusion.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> sanjeewa.
>>>>>>> --
>>>>>>> *Sanjeewa Malalgoda*
>>>>>>> Software Architect | Associate Director, Engineering - WSO2 Inc.
>>>>>>> (m) +94 712933253 | (e) sanje...@wso2.com | (b) Blogger
>>>>>>> <http://sanjeewamalalgoda.blogspot.com>, Medium
>>>>>>> <https://medium.com/@sanjeewa190>
>>>>>>>
>>>>>>> GET INTEGRATION AGILE <https://wso2.com/signature>
>>>>>>> Integration Agility for Digitally Driven Business
>>>>>>> _______________________________________________
>>>>>>> Architecture mailing list
>>>>>>> Architecture@wso2.org
>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Thanks & Regards,
>>>>>>
>>>>>> *Fazlan Nazeem*
>>>>>> Associate Technical Lead
>>>>>> WSO2 Inc
>>>>>> Mobile : +94772338839
>>>>>> fazl...@wso2.com
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Nuwan Dias* | Director | WSO2 Inc.
>>>>> (m) +94 777 775 729 | (e) nuw...@wso2.com
>>>>> [image: Signature.jpg]
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> Architecture@wso2.org
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>
>>>>
>>>> --
>>>> *Sanjeewa Malalgoda*
>>>> Software Architect | Associate Director, Engineering - WSO2 Inc.
>>>> (m) +94 712933253 | (e) sanje...@wso2.com | (b) Blogger
>>>> <http://sanjeewamalalgoda.blogspot.com>, Medium
>>>> <https://medium.com/@sanjeewa190>
>>>>
>>>> GET INTEGRATION AGILE <https://wso2.com/signature>
>>>> Integration Agility for Digitally Driven Business
>>>> _______________________________________________
>>>> Architecture mailing list
>>>> Architecture@wso2.org
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>
>>>
>>>
>>> --
>>> *Nuwan Dias* | Director | WSO2 Inc.
>>> (m) +94 777 775 729 | (e) nuw...@wso2.com
>>> [image: Signature.jpg]
>>> _______________________________________________
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>
>>
>> --
>> *1G*
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>
>
> --
> *Nuwan Dias* | Director | WSO2 Inc.
> (m) +94 777 775 729 | (e) nuw...@wso2.com
> [image: Signature.jpg]
> _______________________________________________
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>


-- 

*Sampath Rajapakse* | Software Engineer | WSO2 Inc.

+94717313761 | samp...@wso2.com
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to