A publisher must implement a SSO service interface for its own system, which is used to check the authenticity of messages coming from the Dikaios. Each publisher has their own private key, which is used in the authentication process. A publisher must verify both the authenticity and the timestamp of a message. If timestamps are used, server's time must be synchronized via NTP. As for the validity of timestamps, as a general rule, time period of +- 30 seconds from creation of a view link is considered to be valid.
All learning materials from a publisher must be available in the Dikaios. In Finland, at least the following information is required:
As a general rule for steps in user redirection, when moving from e-learning environment to the publisher's own service
1. E-learning environment
2. Dikaios (user rights management and usage statistics)
3. Publisher's SSO (log in) and directing to the selected learning material.
Dikaios provides publishers with the following data:
Parameter | Description | |
---|---|---|
firstname | First name | |
lastname | Last name | |
username | User name | |
E-mail address (if LMS is providing this information) | ||
lms_user_id | Dikaios unique user identifier | |
lms_course_id | Course or page ID | |
dikaios_resource_uid | Dikaios learning material ID | |
organization_id | School / institution | |
resource_url | URL for learning material. A publisher can use this field to provide information. This field will be passed as such. | |
publisher_material_id | ID for learning material. A publisher can use this field to provide information. This field will be passed as such. | |
version | Interface version | |
user_role | Roles (student, teacher, admin) | |
city | City / municipality | |
city_id | City / municipality Business ID, e.g. 1234567-8 | |
school | School | |
school_id | School's ID (provided by Statistics Finland) | |
license_folder | Additional information: specifier for a license, e.g. A1. | |
demo_mode | Demo mode (possible values 0 or 1). Learning materials are in pilot usage at the school / institution. | |
preview | Preview (possible values 0 or 1). Preview view. | |
history_id | Event identifier, 64 chars. v3 and v3.1 | |
dikaios_context_id | Global unique course identifier. v3.1 | |
chargeable | Is the usage chargeable (0 or 1). v3.1 | |
organization_name | Full length name of the organization, e.g. "City of Helsinki / School XXXX" v3.1 | |
token_date | Timestamp, GMT time, e.g. 2014-10-14T07:34:40+00:00 | |
hmac | Hash, calculated from whole params field and publisher's private key. |
secret_key = ff3b3acc64a3e4213317e95b03486f6dc67ea7bfhmac Will be calculated using the whole params string.
hmac = sha1_hmac("{"firstname":"Etunimi","lastname":"Sukunimi","username":"esim_01","email":"esim@esim.fi","lms_user_id":1,"lms_course_id":"111","dikaios_resource_uid":"77130FB4-FD8A-7BF2-770B-BA3801DBAAB3","organization_id":null,"resource_url":"JULKA-URL","publisher_material_id":"JULK123","user_role":"teacher","city":"Tampere","city_id":"0211675-2","school":"Demokoulu","school_id":"12345","demo_mode":0,"preview":1,"token_date":"2014-10-15T07:28:13+00:00","version":3} ", 'ff3b3acc64a3e4213317e95b03486f6dc67ea7bf'); hmac = 67705f0f0dd0ce5b990600c01303e3152c8449ed
Working example URL link, which will be generated during viewing of learning material.
Params uses UTF-8 character encoding. URL generated at EduStore in its entirety:/docs/examples/?params=%7B%22firstname%22%3A%22Etunimi%22%2C%22lastname%22%3A%22Sukunimi%22%2C%22username%22%3A%22esim_01%22%2C%22email%22%3A%22esim%40esim.fi%22%2C%22lms_user_id%22%3A1%2C%22lms_course_id%22%3A%22111%22%2C%22dikaios_resource_uid%22%3A%2277130FB4-FD8A-7BF2-770B-BA3801DBAAB3%22%2C%22organization_id%22%3Anull%2C%22resource_url%22%3A%22JULKA-URL%22%2C%22publisher_material_id%22%3A%22JULK123%22%2C%22user_role%22%3A%22teacher%22%2C%22city%22%3A%22Tampere%22%2C%22city_id%22%3A%220211675-2%22%2C%22school%22%3A%22Demokoulu%22%2C%22school_id%22%3A%2212345%22%2C%22demo_mode%22%3A0%2C%22preview%22%3A1%2C%22token_date%22%3A%222014-10-15T07%3A28%3A13%2B00%3A00%22%2C%22version%22%3A3%7D&hmac=67705f0f0dd0ce5b990600c01303e3152c8449edGET parameters:
params: {"firstname":"First name","lastname":"Last name","username":"example_01","email":"example@example.fi","lms_user_id":1,"lms_course_id":"111","dikaios_resource_uid":"77130FB4-FD8A-7BF2-770B-BA3801DBAAB3","organization_id":null,"resource_url":"JULKA-URL","publisher_material_id":"JULK123","user_role":"teacher","city":"Tampere","city_id":"0211675-2","school":"Demo school","school_id":"12345","demo_mode":0,"preview":1,"token_date":"2014-10-15T07:28:13+00:00","version":3}Example of data contained in JSON encoded params:
hmac: 67705f0f0dd0ce5b990600c01303e3152c8449ed
firstname: First name
lastname: Last name
username: example_01
email: example@dikaios.fi
lms_user_id: 1
lms_course_id: 111
dikaios_resource_uid: 77130FB4-FD8A-7BF2-770B-BA3801DBAAB3
organization_id:
resource_url: JULKA-URL
publisher_material_id: JULK123
user_role: teacher
city: Tampere
city_id: 0211675-2
school: Demo School
school_id: 12345
demo_mode: 0
preview: 1
token_date: 2014-10-15T07:28:13+00:00
version: 3
Content will be served directly via Dikaios. In this case integration into the publisher's systems isn't required.
Publisher can add learning material via an user interface. It is also possible to use push type of adding.
Publisher returns learning outcomes automatically
Publisher must implement both course and student feedback systems. Feedback queries must use dikaios_resource_uid or lms_course_id.
User can move, via a link, from Dikaios learning outcomes viewer to a publisher's own system.