This commit is contained in:
anhefti 2020-04-02 11:01:55 +02:00
parent 3a0e541905
commit cd425f0c81
5 changed files with 61 additions and 8 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

View file

@ -7,21 +7,42 @@ Overview
--------
To be able to connect to a learning management system (LMS) and view and use the courses provided by a LMS is an essential feature of the SEB Server.
To define an exam or e-assessment and set it up for the use with SEB we use some data of a course that is running on an LMS like identifier,
To create an exam or e-assessment, based on a course existing on a LMS, to use with SEB we need some data of this course from the LMS like,
start- end-time, name and others. If we furthermore want to be able to automatically restrict the course for SEB access only we need to have proper
integration API's in place on both sides, the LMS and the SEB Server. This integration is separated into two main features so far called:
integration API's in place on both sides, the LMS and the SEB Server. This integration is separated into two main features so far. This are:
**Course API**
This API, provided by the LMS, is used by the SEB Server to query the available courses and the needed data for each course. This API
is essential to be able to import a course from the LMS as an exam into SEB Server and configure the course as an e-assessment with SEB.
Usually this API comes as a REST or SOAP API with the core LMS implementation. For the Open edX system `this <https://courses.edx.org/api-docs/>`_
standard API is used and for the Moodle LMS `this <https://docs.moodle.org/dev/Web_service_API_functions>`_ standard API is used
by the SEB Server to query courses
Usually this API comes as a REST or SOAP API with the core LMS implementation.
SEB Server supports this course API's so far:
- Open edX: The standard system `Open edX REST API <https://courses.edx.org/api-docs/>`_. The SEB Server uses the "courses" endpoints to get course data.
- Moodle: The standard system `Moodle REST API <https://docs.moodle.org/dev/Web_service_API_functions>`_. The SEB Server uses the "core_course" endpoints to get course data.
**SEB restriction API**
Usually this are REST API's
If the automated SEB restriction functionality is available for a LMS depends on the following requirements:
- There must exist a SEB integration plugin that offers an API to put and pull SEB restrictions in the form of Config-Keys and/or Browser-Exam-Keys
To the LMS and a specific course on the LMS to restrict the access. Such a plugin may also offer additional restriction features like restricting
on course section or course components or only for specified user roles.
- The SEB integration plugin must be installed on the LMS that is used by the SEB Server.
For more information about known SEB integration plugins that are supported by the SEB Server see :ref:`lms-setup-rest-plugin-label`
Regardless if a supported LMS is missing the SEB integration plugin installation, the LMS can be used with the Course API and a exam
setup will be possiblie but without automated SEB restriction feature.
To be able connect to an LMS from SEB Server, we need to create an API access-acount on the LMS side that can be used by the SEB Server to
access the API of the LMS. How to to this for the different supported types of LMS see ref:`lms-api-account-label`
After such an account was created the account credentials, username and password, can be used by the SEB Server to connect to the LMS.
Therefore we need to create a LMS Setup on the SEB Server.
Use Cases
@ -33,15 +54,47 @@ Use Cases
Create API Account on LMS
.. _lms-api-account-label:
Create API Access Account on LMS
--------------------------
**Open edX**
To be able to create an API access-account on Open edX you need a user-account with staff and administration privileges. Following the steps below:
- Login to Open edX LMS Administration with an appropriate user-account that has administration rights. And find the Users section:
.. image:: images/lmssetup/openEdxAPIAccess1.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess1.bmp
- Create a new User-Account that acts as an API account. The account must at least have the permissions to query the course API of Open edX and to access the seb_openedx plugin permission.
- Make sure that "Staff" status is checked for the account.
.. image:: images/lmssetup/openEdxAPIAccess2.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess2.bmp
- Back in the administration homepage, find the OAUT2 - Client section and create a new API Client Access for the given User-Account. The Client id and Client secret are automatically generated by Open edx.
.. image:: images/lmssetup/openEdxAPIAccess3.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess3.bmp
.. image:: images/lmssetup/openEdxAPIAccess4.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess4.bmp
Once the client registration was successful the client id and client secret can be used within the SEB Server to access the course- and SEB-restriction API of Open edX as described in the next step section
.. _lms-setup-rest-plugin-label:
Install SEB restriction API plugin
----------------------------------
**Open edX**
There is a SEB integration plugin developed and supported by `eduNEXT <https://www.edunext.co/>`_.
- `Documentation <https://seb-openedx.readthedocs.io/en/latest/>`_
- `Repository <https://github.com/eduNEXT/seb-openedx>`_