Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-42190

OneDrive integration with Sakai filepicker

    Details

    • Type: Feature Request
    • Status: RESOLVED
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 20.0 [Tentative]
    • Fix Version/s: 20.0 [Tentative]
    • Component/s: cloud-storage, Content
    • Labels:
      None
    • Test Plan:
      Hide

      If you enable any of the cloud providers, you will notice a new tab on the filepicker screen.
      1. The first time a user accesses that section, they'll have to click on the Configurate button in order to add their login data.
      2. They'll be redirected to the provider's login screen and, once validated and accepted, they'll be redirected back to a Sakai confirmation screen.
      3. From that point on, every time they enter that screen they will be able to browse, navigate, link or copy all their OneDrive files.
      4. If they click on Revoke, the account will be unlinked and they'll have to configure it again.
      5. The file and folder listing is cached in order to save calls to the API, but they can get the current status at anytime by clicking on the Refresh button.

      Show
      If you enable any of the cloud providers, you will notice a new tab on the filepicker screen. 1. The first time a user accesses that section, they'll have to click on the Configurate button in order to add their login data. 2. They'll be redirected to the provider's login screen and, once validated and accepted, they'll be redirected back to a Sakai confirmation screen. 3. From that point on, every time they enter that screen they will be able to browse, navigate, link or copy all their OneDrive files. 4. If they click on Revoke, the account will be unlinked and they'll have to configure it again. 5. The file and folder listing is cached in order to save calls to the API, but they can get the current status at anytime by clicking on the Refresh button.

      Description

      This is a development contributed by Hotelschool The Hague and developed by EDF.

      It consists of an integration of OneDrive with Sakai's filepicker, being able to browse, link or copy your own files to any tool that uses the filepicker. Besides, the API of this component is accessible from anywhere else so it could be integrated with other tools like Lessons or Samigo.

      The development has been included under a generic cloud-storage Sakai module, as we were thinking of the possibility of allowing multiple cloud providers in the future.

      In order to enable this integration, you need to register an APP on the Azure portal.

      1. Access https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade using your Microsoft account login.
      2. On the App registrations menu, click on "New registration".

      3. Introduce a unique name for your application.3. Introduce a unique name for your application.

      4. The redirect uri (Web) must match the one you add on your sakai.properties files, by default it is "https://YOUR-SERVER-URL/portal/onedrive".

      5. Click on "Register". Get the Application (client) ID, as you'll have to set it on your sakai.properties (onedrive.client_id).

      6. Under Call APIs, click on "View Api Permissions".

      7. Click on "Add a permission". You'll need to allow two Microsoft Graph delegated permissions: "User.Read" and "Files.Read.All".

        8. Access the "Certificates & secrets" section on the menu. Click on "New client secret" and choose your preferred expiration configuration.

      9. Click on "Add" and copy the Value for the generated client secret, you'll have to set it on your sakai.properties (onedrive.client_secret).

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  bergarvi Bernardo Garcia Vila
                  Reporter:
                  bergarvi Bernardo Garcia Vila
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Git Source Code