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.
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.
Voor SURFconect Invite kan deze applicatie gebruikt worden om:
git clone https://github.com/jelhub/scimgateway.git
cd scimgateway/config/docker/
docker compose up
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 ./
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.