Identiteit samenvoegen met SAML

Sommige organisaties beschikken reeds over een user directory service die de identificatie en toelatingen van hun gebruikers beheert en weinig waarde zien in het gebruiken van de in OpenDataSoft ingebouwde gebruikersbeheerfuncties. Om dit aan te pakken, ondersteunt het OpenDataSoft-platform externe Identity Providers (IdP) via de SAMLv2 standaard. Hiermee kan een identiteitsfederatie worden opgezet tussen uw domein, dat zal optreden als dienstverlener, en deze IdP. Deze federatie laat gebruikers van uw domein toe om in te loggen op het platform door gebruik te maken van de identity provider en wanneer ze er één hebben, hun active veiligheidscontext te hergebruiken om een SSO-mechanisme aan te maken. Een dergelijke federatie laat gebruikerstoegang toe op 2 verschillende manieren: de overgangsmodus, waarbij gebruikers willekeurig worden aangemaakt wanneer ze gevalideerd zijn door de IdP, en de gekoppelde modus, waarbij een gebruikersaccount van OpenDataSoft gekoppeld wordt aan een SAML-identiteit via een aantal eigenschappen die gekend zijn door de IdP. Deze twee manieren kunnen naast elkaar bestaan op een domein, maar een enkele gebruiker kan op slechts één manier inloggen.

Overgangsmodus

In de overgangsmodus kan elke gebruiker die een gebruikersaccount heeft op de IdP die vertrouwd wordt door een domein en geen OpenDataSoft gebruikersaccount heeft, inloggen via SAML. Een overgangsgebruiker zal worden aangemaakt voor de gebruiker, op basis van de SAML-instellingen voor het domein. Deze instellingen zijn de account mapper (de reeds parameters die door de IdP zijn doorgestuurd en die een gebruiker op unieke wijze identificeren) en een attribute mapper (de parameters die overeenstemmen met de voornaam, de familienaam en het e-mailadres van de gebruiker). Deze overgangsgebruikers hebben de toestemming om de publieke datasets van het domein te exploreren. Aan deze gebruikers kunnen extra toestemmingen gegeven worden via de generische groep SAML-gebruikers. Aan overgangsgebruikers kunnen geen speciale toestemmingen worden verleend voor individuele datasets of toegevoegd worden aan groepen (andere dan de groep SAML-gebruikers, waar ze automatisch lid van zijn).

De tijdelijke modus kan helemaal worden uitgeschakeld door gebruik te maken van het aanvinkvakje "Tijdelijke identificatiemodus uitschakelen" in de SAML-configuratie. Wanneer de tijdelijke modus uitgeschakeld is, kunnen enkel gekoppelde gebruikers verbinding maken via SAML.

Gekoppelde modus

In de gekoppelde modus kunnen gebruikers die een OpenDataSoft gebruikersaccount hebben, dit account koppelen aan specifieke waarden van de reeks parameters die gedefinieerd staan in de account mapper-instelling. Nadat de koppeling werd gemaakt, zullen gebruikers die inloggen via SAML, ingelogd zijn op hun OpenDataSoft gebruikersaccount. Aan gekoppelde gebruikers kunnen dezelfde toestemmingen worden toegekend en zij kunnen worden toegevoegd aan groepen, net zoals normale gebruikers (aangezien het normale gebruikers zijn). Ze zijn ook automatisch lid van de groep SAML-gebruikers. Deze modus laat een fijnmazigere controle van de toestemmingen mogelijk, terwijl de meeste voordelen van de overgangsmodus worden behouden. Het enige nadeel is dat gebruikers een account op het domein moeten aanmaken alvorens ze dit kunnen koppelen aan hun SAML-identiteit. Er zijn twee methodes om een OpenDataSoft gebruikersaccount te koppelen. De eerst is om te klikken op Koppel uw account aan een SAML-account op dit domein in het identiteitstabblad van de instellingen van het gebruikersaccount.

"Link your account to a SAML account on this domain" link in the identity tab of the user account settings

De andere methode is om de koppeling aan te maken tijdens het aanmaakproces van het gebruikersaccount, door te klikken op de koppeling waarmee de registratie via SAML wordt voltooid. Hierdoor verloopt het aanmaakproces van het gebruikersaccount sneller en kan het account snel worden gekoppeld.

Account registration in SAML enabled domains

Automatische enkelvoudige aanmelding

Het OpenDataSoft-platform biedt een mechanisme om gebruikers automatisch in te loggen wanneer ze voor de eerste keer het domein bezoeken. Het werkt door de SAML-identificatiestroom te starten voor anonieme gebruikers alsof ze hadden geklikt op "inloggen met SAML" zodra ze (bijna) enige pagina in het domein tegenkomen. Deze functie heeft enkel zin voor private domeinen aangezien het voorkomt dat anonieme gebruikers toegang hebben tot het domein. Wanneer Automatisch Eenmalig Aanmelden geactiveerd is, hebben gebruikers, die met hun eigen OpenDataSoft-gegevens willen inloggen, de mogelijkheid om dit te doen door manueel de inlogpagina van het domein te bezoeken op https://<platform-url>/login/

Eenmalig Uitloggen

Het OpenDataSoft-platform ondersteunt de standaard SAML Eenmalig Uitloggen-stroom door gebruik te maken van de HTTP-Redirect binding. Dit betekent dat, wanneer de IdP het ondersteunt, een log out uit een SAML-verbonden gebruiker aanleiding zal geven tot een log out uit de IdP en log out-verzoeken vanuit de IdP zullen aanleiding geven tot een log out van de gebruiker op het platform.

Een identiteitsprovider registreren en configureren

  1. Ga naar de intekenpagina in de configuratie-interface van het domein.

Signup configuration page
  1. Vink het vakje "Toegang verlenen voor SAML-gebruikers"

SAML IDP configuration interface
  1. Plak het metadatadocument van uw identiteitsprovider in het veld "IDP metadatadocument".

  2. Wanneer u Microsoft Azure Active Directory gebruikt als een IDP, vink dan het overeenkomstige vakje aan.

  3. Wanneer u de tijdelijke inlogmodus wil uitschakelen, waarbij u ervoor zorgt dat enkel gekoppelde gebruikers via SAML kunnen inloggen op het platform, controleer dan het aanverwante aanvinkvakje.

  4. Voer de reeks attributen in die door de IDP zijn doorgestuurd en waarmee een gebruiker op unieke wijze kan worden geïdentificeerd.

    Wanneer de gebruikers geïdentificeerd worden op basis van hun NameID en indien het NameID-formaat dat door uw IDP gebruikt wordt, niet overgankelijk is, hoeft u niets in te vullen.

    Bijvoorbeeld, wanneer uw gebruikers worden geïdentificeerd worden door het attribuut "FirstName" en "LastName" dat wordt doorgestuurd door uw IdP, voer dan eerst "FirstName" in het vakje en druk op Enter, en vervolgens "LastName" en druk opnieuw op Enter.

  5. Voer de mappings van attributen voor de gebruikersnaam, familienaam, voornaam en e-mailadres in.

    Hier moet u de namen van de velden aangeven aangezien deze door de identiteitsprovider zijn opgestuurd.

    Bijvoorbeeld, wanneer uw identiteitsprovider de aan de gebruiker verbonden voornaam overmaakt in een attribuut met de naam "GivenName", is het dit wat u moet invullen in het veld "FirstName".

    Wanneer uw identiteitsprovider om een of andere reden niet al deze elementen opstuurt, dient u de overeenkomstige velden leeg te laten. Het platform zal deze automatisch genereren op basis van andere beschikbare attributen.

  6. Voer optioneel een toegangsvoorwaarde in.

    Het eerste vakje is de naam van het attribuut dat moet worden gecontroleerd en het tweede de waarde van dat attribuut. Indien u enkel de aanwezigheid van een attribuut wil controleren, zonder waardebeperking, dient u het tweede vakje gewoon leeg te laten.

    Bijvoorbeeld, wanneer uw identiteitsprovider een lijst met "Rollen" voor de gebruikers opstuurt en u er zeker van wil zijn dat enkele gebruikers die een rol hebben, toegang kunnen krijgen, voer dan "Rollen" in in het eerste vakje onder "Voorwaardelijke toegang". Indien u enkel wil dat gebruikers met de rol "DataAccess" kunnen inloggen op het domein, voer dan "DataAccess" in het tweede vakje in.

  7. Automatisch eenmalig aanmelden optioneel configureren

    De automatische eenmalige aanmeld-configuratie kan worden teruggevonden door te surfen naar de veiligheidspagina in de configuratie-interface van het domein.

SAML auto-sso configuration interface in the anonymous access section of the security configuration page

Configureer uw identiteitsprovicder

De configuratie van de identiteitsprovider staat los van de implementatie maar bestaat altijd uit het importeren van het metadatadocument van de dienstverlener om een identiteitsfederatie mogelijk te maken.

U kan het metadatadocument voor uw OpenDataSoft-domein downloaden op https://<YOUR DOMAIN>.opendatasoft.com/saml2/metadata.xml

Gebruikersattributen gebruiken om data te filteren

Via de #attr-functie is het mogelijk om records van een dataset zodanig te filteren dat de enige records die worden opgeleverd diegene zijn die overeenstemmen met een waarde die ingesteld is in de gebruikersattributen die door de IdP is opgestuurd. Voor de volgende voorbeelden gaan we ervan uit dat we de 3 gebruikers hebben met de respectieve gebruikersnamen en SAML-attributen gebruiker-land en gebruiker-taal zoals die vermeld staan in de volgende tabel.

Gebruiker

gebruiker-land

gebruiker-taal

Gebruiker1

Frankrijk

Frans

Gebruiker2

Canada

Frans

Gebruiker3

Verenigde Staten

Engels

En een dataset met records zoals die vermeld staan in de volgende tabel.

land

taal

bericht

Wereldwijd

Engels

Hallo wereld

Frankrijk

Frans

Bonjour à tous les Français
Canada

Frans

Bonjour à tous les Canadiens
Canada

Engels

Hallo aan alle Canadezen

Verenigde Staten

Engels

Hallo aan alle Amerikanen

We kunnen deze gebruikers zodanig beperken dat ze enkel die berichten zien die van toepassing zijn op hun respectieve landen, met de zoekopdracht #attr(country, user-country).

Gebruiker1 ziet

land

taal

bericht

Frankrijk

Frans

Bonjour à tous les Français

Gebruiker2 ziet

land

taal

bericht

Canada

Frans

Bonjour à tous les Canadiens
Canada

Engels

Hallo aan alle Canadezen

Gebruiker3 ziet

land

taal

bericht

Verenigde Staten

Engels

Hallo aan alle Amerikanen

We kunnen deze gebruikers ook zodanig beperken dat ze enkel berichten zien die in hun respectieve taal zijn weergegeven, met de zoekopdracht #attr(language, user-language).

Gebruiker1 ziet

land

taal

bericht

Frankrijk

Frans

Bonjour à tous les Français
Canada

Frans

Bonjour à tous les Canadiens

Gebruiker2 ziet

land

taal

bericht

Frankrijk

Frans

Bonjour à tous les Français
Canada

Frans

Bonjour à tous les Canadiens

Gebruiker3 ziet

land

taal

bericht

Wereldwijd

Engels

Hallo wereld

Verenigde Staten

Engels

Hallo aan alle Amerikanen

Aangezien het een functie is van de taal van de zoekopdracht, kan ze ook gegroepeerd worden met de gebruikelijke operatoren. Zo kunnen we bijvoorbeeld gebruikers beperken tot diegene die enkel berichten zien die passen bij hun land en hun talen, en dit met de zoekopdracht #attr(language, user-language) AND #attr(country, user-country).

Gebruiker1 ziet

land

taal

bericht

Frankrijk

Frans

Bonjour à tous les Français

Gebruiker2 ziet

land

taal

bericht

Canada

Frans

Bonjour à tous les Canadiens

Gebruiker3 ziet

land

taal

bericht

Verenigde Staten

Engels

Hallo aan alle Amerikanen