?Hi Dimuthu,

Thanks for the integration and advancing a way to support the authentication.


I will be using this app and test the authentication via keycloak at present 
and explore the things further to implement the rest of the methods in the 
group backend.


Regards

Karan

________________________________
From: DImuthu Upeksha <[email protected]>
Sent: Sunday, July 22, 2018 2:02 PM
To: Airavata Dev
Cc: Kotabagi, Karan
Subject: App to integrate Airavata userbase into NextCloud

Hi All,

Through this mail I'm planning to provide an update about the work we have done 
so far in Airavata NextCloud integration

We have been considering to provide the facility to integrate NextCloud as a 
user storage mechanism for Airavata and there is an on going GSoC project 
(Karan is the student assigned to it) which is directly assigned for that. Even 
though NextCloud's WebDAV API was fairly straight forward to integrate with 
Airavata for file transfer operations, user authentication and authorization 
was bit tricky.

Airavata has a user base backed by Keycloak and Nextcloud has it's own database 
backed user base. So the challenge was how to integrate Airavata users and 
authorization model into NextCloud without changing NextCloud code.

The rescue was NextCloud's app interface [1]. We can write third-party apps 
into NextCloud and deploy them directly into it. Airavata NextCloud app [2] 
utilizes backend user APIs of NextCloud and registers Airavata user stores as 
an alternative user store into NextCloud. Once the App is installed into 
NextCloud, authentication request are directed to our user backend 
implementation [3] enabling us to talk to Keycloak and verify the authenticity 
of the user. For the authorization, there is a Group backend implementation [4] 
and it is supposed to handle groups for each user but we might have to wait 
until current group based auth changes are deployed in Develop environment. For 
the instance, I added mock groups to compete the features of the app.

@Karan
I believe now you have an idea of how to proceed with the rest of your project. 
It would be great if you can implement the rest of the methods in group backend 
[4] by looking at the group-based-auth branch of Airavata. Please let me know 
if you come up with any issue

[1] https://docs.nextcloud.com/server/12/developer_manual/app/startapp.html
[2] https://github.com/DImuthuUpe/airavata-nextcloud-app
[3] 
https://github.com/DImuthuUpe/airavata-nextcloud-app/blob/master/lib/Backends/UserBackend.php
[4] 
https://github.com/DImuthuUpe/airavata-nextcloud-app/blob/master/lib/Backends/GroupBackend.php

Thanks
Dimuthu

Reply via email to