Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-71119

Review OBv2.1 implementation

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide

      ATTENTION: This can be only tested in development branches (master and 3.11), because they are the only ones fully supporting OBv2.1.

      Requirements

      1. Run your site with public access (use ngrok or similar).
      2. One account set up on https://test.badgr.com/. ATTENTION:  This is a different account than the ones in badgr.io used previously in other issues. Here, the account needs to be created in https://test.badgr.com/ .

      Setup badges

      1. Login as admin.
      2. Go to "Site administration | Badges | Add a new badge" and create a badge at site level.
      3. Add criteria to the badge so it can be manually issued by role.
      4. Enable the badge.
      5. Issue the badge to the admin user and teacher (t1) user.
      6. Edit teacher (t1) profile and set email to the one used for creating the test.badgr.com account.

      Setup IMS Global DC service (IMS OBv2.1)

      1. Login as admin.
      2. Go to "Site administration / Server / OAuth 2 services".
      3. Create a "IMS OBv2.1" service with the following information:
      4. Save changes. 
      5. Check "Discovery" column in OAuth2 services table has a green tick mark for the "IMS Global" service created.
      6. Go to "Site administration / Badges / Manage backpacks".
      7. Click the "Add a new backpack" button and create a new backpack with the following information:
      8. Save changes.

      Setup Badgr.io service (IMS OBv2.1)

      1. Login as admin.
      2. Go to "Site administration / Server / OAuth 2 services".
      3. Create a "IMS OBv2.1" service with the following information:
      4. Save changes. 
      5. Check "Discovery" column in OAuth2 services table has a green tick mark for the "Badgr" service created.
      6. Go to "Site administration / Badges / Manage backpacks".
      7. Click the "Add a new backpack" button and create a new backpack with the following information:
      8. Save changes.

       

      Testing scenario A.1: Connect to the IMS Global backpack

      1. Login as admin.
      2. Go to Dashboard / Preferences / Badges / Backpack settings.
      3. Select "https://dc.imsglobal.org" as "Backpack provider".
      4. Check the "Status" is "not connected" and the button "Connect to backpack" appears.
      5. Click button "Connect to backpack".
      6. Check the site is redirected to the backpack site and the login form is displayed.
      7. Login using one of the existing users (alice or bob).
      8. Check the screen requesting your permission is displayed with the following application access permissions:
        • Get Open Badges Profile
        • Create Open Badges Assertion
        • Get Open Badges Assertions
        • Offline Access
      1. Click button "Yes, Allow".
      2. Check the "Backpack has been connected" message is displayed.
      3. Check you're redirected to the Manage badges page.
      4. Click the "Change backpack settings" button.
      5. Check the status is "Connected".

      Testing scenario A.2: Send badge to the IMS Global backpack

      1. Login as admin.
      2. Go to Dashboard / Preferences / Badges / Manage badges.
      3. Click on the "Add to backpack" button.
      4. Check the message "Added badge to backpack " is displayed.

       

      Testing scenario B.1: Connect to Badgr.io backpack

      1. Log in as teacher (t1).
      2. Go to Dashboard / Preferences / Badges / Backpack settings.
      3. Select "https://test.badgr.com/" as "Backpack provider".
      4. Check the "Status" is "not connected" and the button "Connect to backpack" appears.
      5. Click button "Connect to backpack".
      6. Check the site is redirected to the backpack site and the login form is displayed.
      7. Login using the test.badgr.com user account.
      8. Click button "Authorize".
      9. Check you're redirected to the Moodle page and "Backpack is connected " message is displayed.
      10. Check you're redirected to the Manage badges page.
      11. Click the "Change backpack settings" button.
      12. Check the status is "Connected". 
      Show
      ATTENTION : This can be only tested in development branches (master and 3.11), because they are the only ones fully supporting OBv2.1. Requirements Run your site with public access (use ngrok or similar). One account set up on https://test.badgr.com/ . ATTENTION:  This is a different account than the ones in badgr.io used previously in other issues. Here, the account needs to be created in https://test.badgr.com/ . Setup badges Login as admin. Go to "Site administration | Badges | Add a new badge" and create a badge at site level. Add criteria to the badge so it can be manually issued by role. Enable the badge. Issue the badge to the admin user and teacher (t1) user. Edit teacher (t1) profile and set email to the one used for creating the test.badgr.com account. Setup IMS Global DC service (IMS OBv2.1) Login as admin. Go to "Site administration / Server / OAuth 2 services". Create a "IMS OBv2.1" service with the following information: Name: "IMS Global" Service base URL:  https://dc.imsglobal.org/ Save changes.  Check  "Discovery" column in OAuth2 services table has a green tick mark for the "IMS Global" service created. Go to "Site administration / Badges / Manage backpacks". Click the "Add a new backpack" button and create a new backpack with the following information: Backpack API URL:  https://dc.imsglobal.org/obprovider/ims/ob/v2p1 Backpack URL:  https://dc.imsglobal.org API version supported: Open Badges v2.1 OAuth2 services: IMS Global Save changes. Setup Badgr.io service (IMS OBv2.1) Login as admin. Go to "Site administration / Server / OAuth 2 services". Create a "IMS OBv2.1" service with the following information: Name: "Badgr.io Test" Service base URL:  https://api.test.badgr.com/ Logo URL:  https://api.test.badgr.com/static/images/logo.png * There is an issue with current Badgr manifest because image URL is invalid. So, for now, it's better, as this is a development environment, we can avoid it using the previous "Logo URL" (instead of getting it from the manifest). Save changes.  Check  "Discovery" column in OAuth2 services table has a green tick mark for the "Badgr" service created. Go to "Site administration / Badges / Manage backpacks". Click the "Add a new backpack" button and create a new backpack with the following information: Backpack API URL:  https://api.test.badgr.com/   Backpack URL:  https://test.badgr.com/   API version supported: Open Badges v2.1 OAuth2 services: Badgr.io Test Save changes.   Testing scenario A.1: Connect to the IMS Global backpack Login as admin. Go to Dashboard / Preferences / Badges / Backpack settings. Select "https://dc.imsglobal.org" as "Backpack provider". Check  the "Status" is "not connected" and the button "Connect to backpack" appears. Click button "Connect to backpack". Check  the site is redirected to the backpack site and the login form is displayed. Login using one of the existing users (alice or bob). Check  the screen requesting your permission is displayed with the following application access permissions: Get Open Badges Profile Create Open Badges Assertion Get Open Badges Assertions Offline Access Click button "Yes, Allow". Check  the "Backpack has been connected" message is displayed. Check  you're redirected to the Manage badges page. Click the "Change backpack settings" button. Check  the status is "Connected". Testing scenario A.2: Send badge to the IMS Global backpack Login as admin. Go to Dashboard / Preferences / Badges / Manage badges. Click on the "Add to backpack" button. Check  the message "Added badge to backpack " is displayed.   Testing scenario B.1: Connect to Badgr.io backpack Log in as teacher (t1). Go to Dashboard / Preferences / Badges / Backpack settings. Select "https://test.badgr.com/" as "Backpack provider". Check  the "Status" is "not connected" and the button "Connect to backpack" appears. Click button "Connect to backpack". Check  the site is redirected to the backpack site and the login form is displayed. Login using the test.badgr.com user account. Click button "Authorize". Check  you're redirected to the Moodle page and "Backpack is connected " message is displayed. Check  you're redirected to the Manage badges page. Click the "Change backpack settings" button. Check  the status is "Connected". 
    • Affected Branches:
      MOODLE_311_STABLE
    • Fixed Branches:
      MOODLE_310_STABLE, MOODLE_39_STABLE
    • Pull from Repository:
    • Pull 3.9 Branch:
    • Pull 3.10 Branch:
      MDL-71119-310
    • Pull 3.11 Branch:
      MDL-71119-311
    • Pull Master Branch:
      MDL-71119-master
    • Sprint:
      Moppies Kanban

      Description

      IMS certification process and platform for OBv2.1 are ready: http://www.imsglobal.org/spec/ob/v2p1/cert

      We've been testing their conformance site with Moodle 3.11 (+ the patch in MDL-70689) and we've found several issues that should be fixed in Moodle:

      • scope parameter should be initialised in badges/backpack-connect.php (if it's not passed as parameter).
      • clientid and clientsecret shouldn't use encodeurl when building idsecret (because they are encoded later).
      • 'Could not upgrade oauth token' error message should display information about the error (if available).

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              sarjona Sara Arjona (@sarjona)
              Reporter:
              sarjona Sara Arjona (@sarjona)
              Peer reviewer:
              Ilya Tregubov Ilya Tregubov
              Integrator:
              Jake Dallimore Jake Dallimore
              Tester:
              Anna Carissa Sadia Anna Carissa Sadia
              Participants:
              Component watchers:
              Yuliya Bozhko, Amaia Anabitarte, Carlos Escobedo, Ferran Recio, Ilya Tregubov, Sara Arjona (@sarjona)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Fix Release Date:
                10/May/21

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 1 day, 6 hours, 30 minutes
                  1d 6h 30m