We had same kind of implementation in C4 by using tomcat valve instead of filters. May not be same pattern what we expect here.[1]
[1] http://harshathirimanna.blogspot.com/2016/11/ authentication-authorization-common.html And as I remember we did that to C5 as well by Ruwan using C4 implementation to targeting SCIM. I am not sure the last status. If we have already discussed about this before to the discussion, please ignore this. On Mon, Aug 14, 2017 at 5:46 PM, Tanya Madurapperuma <ta...@wso2.com> wrote: > Hi all, > > We (Prabath, NuwanD, Suho, few IS team members, few analytics team > members) had an offline discussion regarding $ Subject. > > *Problem* > With the new rewrite of C5 based products, we have moved from SOAP based > backend product APIs to REST APIs. And there needs to be a mechanism to > secure these product APIs. It can be either OAuth tokens based approach or > basic auth. > > But the products like Analytics do not have in built OAuth support for > token generation, validation etc to achieve the above requirement. > > Also there needs to be an approach to secure product level artifacts such > as Dashboards, widgets etc as well. > > Regardless of the securing mechanism that we use, product users should be > able to try out and evaluate the default distribution of the product > without much effort of setting up an external IDP. > > *Suggested solution* > We will be implementing a custom IDP that has OAuth capabilities (password > grant type) and required SCIM api implementations (Initially from Analytics > dashboard pov we will need SCIM api for getting role list of users). > And this custom IDP will be shipped with the product. > > > > > > *Securing Product APIs* > Product APIs can be secured either with OAuth or basic auth interceptors > based on the request header. > > We will have to maintain a scope to role mapping list in the product side > and using a scope registration service we can register those at the custom > IDP as same as APIM C5 doing. > > *Securing Product Artifacts* > Artifacts such as dashboards, widgets are secured using a role based > approach. Each product will maintain its own list of resources (artifacts) > and respective roles in a database. This database will be updated upon a > new resource addition, modification etc. > > *Securing Product UI elements* > User facing application of the product will require to hide/show certain > UI elements based on the logged in user. This also we can achieve using the > scopes that we use to secure the product apis and roles that we use to > secure product artifacts. Scopes and roles will be stored in the browser. > > For example, if we want to show/hide "create dashboard" button depending > on the logged in user, we can show/hide, if the logged in user has the > create_dashboard scope which is required to call the product api for > creating a dashboard. > > For the product artifacts, say to decide on showing Foo Dashboard's edit > button, we can use roles for that resources. > > > Thanks, > Tanya > > -- > Tanya Madurapperuma > > Associate Technical Lead, > WSO2 Inc. : wso2.com > Mobile : +94718184439 <+94%2071%20818%204439> > Blog : http://tanyamadurapperuma.blogspot.com > > _______________________________________________ > Architecture mailing list > Architecture@wso2.org > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > >
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture