OpenConext-Invite

scimgateway

Het heeft de voorkeur om SCIM berichten direct en near-realtime af te handelen in een eigen IDM of IAM platform. Als dit niet mogelijk is, kan bijvoorbeeld deze Scimgateway gebruikt worden. Deze software wordt niet gemaakt of ondersteund door SURF.

Wat is scimgateway

Scimgateway is een open source applicatie die SCIM berichten over personen en groepen kan ontvangen en verwerken naar endpoints. Standaard ondersteunde endpoint zijn:

Nieuwe endpoints zijn relatief makkelijk te ontwikkelen.

SURFconext Invite

Voor SURFconect Invite kan deze applicatie gebruikt worden om:

Installatie

Docker

git clone https://github.com/jelhub/scimgateway.git
cd scimgateway/config/docker/
docker compose up

Linux

Zorg dat node (18 of later) en npm geinstaleerd zijn op de server. Zie de node.js website

mkdir my-scimgateway
cd my-scimgateway
npm init -y
npm install scimgateway
node ./

Windows

Zie hier voor details

Configuratie

In index.js staan alle beschikbare endpoints. Standaard staat alleen het loki endpoint ingeschakeld, en is de rest uitgeschakeld met “//”. Schakel de gewenste optie in door de “//” re verwijderen, bijvoorbeeld voor Microsoft SQL:

// const loki = require('./lib/plugin-loki')
// const mongodb = require('./lib/plugin-mongodb')
// const scim = require('./lib/plugin-scim')
// const soap = require('./lib/plugin-soap') // prereq: npm install soap
const mssql = require('./lib/plugin-mssql')
// const saphana = require('./lib/plugin-saphana') // prereq: npm install hdb
// const entra = require('./lib/plugin-entra-id')
// const ldap = require('./lib/plugin-ldap')
// const api = require('./lib/plugin-api')

Daarna moet de config van het endpoint worden aangepast. Daarvoor vind je in de config directory een bestand met dezelfde naam als de plugin. In het geval van bijvoorbeeld Microsoft SQL is dat config\plugin-mssql.json.

Deze configuratie bestaat uit twee delen. Het eerste deel (scimgateway) gaat over het SCIM endpoint. Hier zijn belangrijk:

Het tweede deel (endpoint) gaat over het endpoint wat de gebruikers en groepen gaat ontvangen. De configuratie verschilt per endpoint. Voor bijvoorbeeld het Microsoft SQL endpoint moeten de hostname van de server en de authenticatiegegevens worden ingevuld.

Zie hier voor details