Dataporten-ready applications

Some applications that are prepared for authentication using Dataporten.

UNINETT has prepared a set of open source collaboration applications to be using Dataporten for authentication. These are implemented for demo purposes, but should be in working state. Use on your own risk.

Etherpad is a highly customizable Open Source online editor providing collaborative editing in really real-time.

UNINETT has prepared a customized version of Etherpad (through a set of plugins) that integrates Etherpad with Dataporten for groups and access control.

This applications lets users login using Dataporten, and then create new documents associated with one of the groups the user is member of. All members of the group associated with the document will see this document on the their dashboard and be able to collaborate on the document in real time.

Dataporten plugin for etherpad

Etherpad extension with Dataporten as authentication provider. Uses dataporten node passport strategy for handling of OAuth2 flow. Repository contains docker image for running/building/configuring etherpad as docker container. Uses environment variables to configure dataporten.

Dataporten-ready Etherpad Docker image

Have added Dataporten as provider, but for some reason stopped working. Since GitLab now works with Dataporten, this is a possible solution, since Mattermost is preconfigured to work with GitLab.

Forked and modified from github.com/twinslash/redmine_omniauth_google. Plugin for Redmine, written in Ruby. Allows for external authentication via Dataporten OAuth2. The main modifications made to this plugin is the endpoints for OAuth2 provider, removed Google-logo from the authentication button and switched the inputfields around a bit on the settings page.

DokuWiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki.

Dokuwiki OAuth2 plugin, now works with Dataporten

We have proposed, and approved minor patches to the official OAuth2 DokuWiki plugin, to make it function properly with Dataporten. Created an Dataporten adapter and service, and added english language files.

DokuWiki docker image, ready for deployment with Dataporten OAuth2

Docker image for running a docker container with DokuWiki, with DokuWiki OAuth2 plugin preinstalled. This image takes in Dataporten-settings for OAuth2 as environment variables, and utilizes those to automatically set the configuration for Dataporten as an OAuth2 provider.

To run it with docker, run

$ docker pull uninettno/dataporten-dokuwiki-docker

Create an env.list:

DATAPORTEN_CLIENTID=********
DATAPORTEN_CLIENTSECRET=*******
DATAPORTEN_SCOPES=groups,userid,profile,userid-feide,email
DATAPORTEN_ROLESETS={"fc:org:uninett.no:unit:SEL-S": "delete", "fc:org:uninett.no":"admin"}

DOKUWIKI_LICENSE=cc-by-sa
DOKUWIKI_TITLE=Test_Site
DOKUWIKI_SUPERUSER=SUPER_USER_GROUP_SHOULD_BE_ONE_OF_DATAPORTEN_GROUPS

Start the image with

docker run --env-file=YOUR_ENV_FILE -p DESIRED_PORT:80 -t uninettno/dataporten-dokuwiki-docker

Roles of DokuWiki

MediaWiki Dataporten OAuth2 plugin

MediaWiki plugin that allows for authentication with Dataporten OAuth2. Consists for a main PHP file that handles the initial setup of the plugin, a special page that handles all the function of the plugin, and hooks that handles hooks and events thrown from MediaWiki itself. The extension.json file tells MediaWiki about the different classes/files, and what hooks that fit in with what hooks. The hooks have a function for initial setup, that inserts the needed tables and values to the MySQL database.

MediaWiki docker image, ready to ship with dataporten as authentication

MediaWiki docker image, that can be configured on run to have Dataporten OAuth2 configured on startup, using environment variables. It automatically installs the Dataporten plugin on build.

Forked and modified repository https://github.com/sameersbn/docker-gitlab. Repository builds GitLab from source, and enables for more variation in what settings to apply, and easier add a new authentication source. Environment file can be configured to work with both postgresql and mysql.

WordPress plugin for authentication with Dataporten as OAuth2 provider + WordPress docker image that builds with the plugin, and uses environment variables for OAuth2 configuration.

Plugin consists of 4 PHP files:

dataporten_oauth.php:
Consists of initiation code for plugin, WordPress hooks, and how to handle updates of the plugin.
dataporten_oauth_login.php
Consists of login/oauth2 flow. Has access to parent class, and when finished calls finished login function from it.
dataporten_oauth_register.php
Constructor takes in identity fetched from dataporten, and saves the info in the database and creates a WordPress user from it. This class is also being called when a user wishes to link an already existing account with dataporten
dataporten_oauth_settings.php
Class for displaying the settings.

The two other PHP files are "views", and contains code for displaying elements.

There is one JavaScript file, which hides the main login-form, based on the settings of the plugin.

Extension for HybridAuth Drupal module

Extension for the extension HybridAuth for Drupal. Adds Dataporten as an OAuth2 provider, and enables user to log-in with dataporten. Has a "hidden" setting that overrides some code, so that instead of showing an icon, dataporten only uses text as "button" for login. This because Dataporten doesn't have its own icon.

Docker image for Rocket.Chat, now fully functional with Dataporten

A patch that fixes bugs with Dataporten as a provider in Rocket.Chat was approved by the Rocket.Chat team, so the dataporten rocket.chat docker image now uses the original code of Rocket.Chat as source. There was only applied a minor patch, with adding more options to be checked before discarding the provider as unusable due to id's not being sent.

Wekan board docker image, that utilizes meteor-dataporten plugin previously created, and on startup runs a node-scripts that adds the correct settings to MongoDB. This image uses the official wekan docker image, and automatically installs dataporten as a provider.

TBA