KNF:SAML-sp: verschil tussen versies

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen
Regel 70: Regel 70:
 
De Name ID (Name ID in de <AuthnStatement>) die Entree Federatie heeft de volgende eigenschappen:
 
De Name ID (Name ID in de <AuthnStatement>) die Entree Federatie heeft de volgende eigenschappen:
 
* De waarde is als volgt opgebouwd (username)@(realm). De Name ID heeft hetzelfde formaat als een e-mailadres, maar is het niet.
 
* De waarde is als volgt opgebouwd (username)@(realm). De Name ID heeft hetzelfde formaat als een e-mailadres, maar is het niet.
* De waarde voor de realm is uniek binnen Entree Federatie en bevat bij voorkeur
+
* De waarde voor de realm is uniek binnen Entree Federatie en bevat bij voorkeur een schooldomein.
  +
* Het SAML2 Name ID format is urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
  +
  +
  +
De Name ID die Entree Federatie ontvangt van de IdP is niet gelijk aan de Name ID die wordt doorgestuurd naar de SP's:
  +
* Entree Federatie genereert een uid door het versleutelen van de (username) en het (empoyeenumber) gevolgd door de @realm.
  +
* Door het versleutelen is de originele Name ID die door de IdP is aangeleverd niet meer zichtbaar voor andere partijen, zodat de privacy van de gebruikers is gewaarborgd. De realm blijft wel zichtbaar.
  +
* De uid is en blijft uniek binnen de hele Federatie voor alle partijen. De uid verwijst altijd naar dezelfde gebruiker ongeacht datum/tijd waarop het ID is gebruikt.
  +
  +
=== Gegevens van de gebruiker ===
  +
Standaard stuurt Entree Federatie alleen de standaard set attributen naar de dienst. Deze attributen bevatten geen privacy gevoelige informatie over de gebruiker. Een overzicht van de attributen kun je hier vinden: http://developers.wiki.kennisnet.nl/index.php?title=KNF:Attributen_overzicht_voor_Service_Providers
  +
  +
Indien je als dienst meer informatie nodig hebt van een gebruiker, bijvoorbeeld voor autorisatie, dan kan de school hier schriftelijk toestemming voor geven met een ARP (Attribute Release Policy) formulier. Hiervoor hebben we templates die je kan gebruiken als dienst.
  +
  +
=== Federatieve accounts & Entree Accounts ===
  +
Entree Federatie heeft 2 soorten accounts, federatieve accounts van alle aangesloten IdP's ook wel schoolaccounts genoemd. Daarnaast heeft Kennisnet een eigen IdP Entree Account, waar gebruikers zelf een individueel account kunnen aanmaken.
  +
  +
Het belangrijkste verschil tussen deze accounts is dat Federatieve accounts daadwerkelijk van een school komen en ook alle attributen bevatten en Entree Accounts niet gekoppeld zijn aan een school en de waardes voor de attributen eduPersonAffiliation, nlEduPersonHomeOrganization en nlEduPersonHomeOrganizationId en standaard waarde bevatten.

Versie van 9 dec 2016 12:23

Introductie

Deze handleiding legt uit hoe je kunt koppelen met Entree Federatie als Service Provider via SAML 2.0.

Beschrijving Entree Federatie

Entree Federatie fungeert als hub tussen alle aangesloten Service Providers (SP) en alle Identity Providers (IdP). Hieronder staat schematisch weergegeven wat de rol van Entree Federatie is.

Bestand:Authenticatie.jpg

  1. Een gebruiker gaat naar de dienst (SP) om in te loggen
  2. De dienst stuurt de gebruiker naar Entree Federatie om te authentiseren.
  3. Entree Federatie bepaalt de organisatie (IdP) waar de gebruiker bij hoort via het WAYF inlogscherm (Where are you from), of via het uitlezen van het SSO cookie.
  4. De IdP wordt gekozen.
  5. Entree Federatie stuurt de gebruiker naar de IdP
  6. De IdP authentiseert de gebruiker en stuurt de gebruiker terug naar Entree Federatie met een set attributen (persoonsgegevens).
  7. Entree Federatie controleert het resultaat, en bepaalt welke attributen mogen worden doorgestuurd naar de SP o.b.v. de ARP (Attribute Release Policy) en stuurt dit door naar de SP.
  8. De SP verwerkt het resultaat, de gebruiker is nu ingelogd.

Staging en productie omgeving

De productie omgeving is alleen bedoeld voor productie omgevingen en is niet bedoeld voor test doeleinde.

De software van de staging omgeving is identiek aan de productie omgeving en kan gebruikt worden voor ontwikkelpartijen om tegen te testen.

Implementatie voorbereiding

  1. Bepaal hoe je wilt koppelen met Entree Federatie, op de wiki staan meerdere standaard pakketten die gebruikt kunnen worden.
  2. Na het installeren en configureren van de software, stuur je de metadata url van de omgeving naar Kennisnet.
  3. Kennisnet maakt in eerste instantie een koppeling met de staging omgeving.
  4. Maak een test project waarmee je een authenticatie verzoek naar Entree Federatie kunt sturen.
  5. Implementeer authenticatie in de software van de dienst.
  6. Test of het authentiseren werkt, hiervoor kun je gebruik maken van de Referentie diensten
  7. ? Implement and test passive authentication (optionally)

SSO Query

SAML support

Een korte uitleg over het SAML protocol kun je hier vinden: https://blog.surf.nl/en/saml-for-dummies/

Op deze website kun je verschillende SAML tools en ondersteuning vinden: https://www.samltool.com/online_tools.php

Een overzicht van standaard pakketten om te koppelen kun je hier vinden: http://developers.wiki.kennisnet.nl/index.php?title=KNF:Hoofdpagina

Een volledige uitleg van het SAML protocol kun je hier vinden: http://docs.oasis-open.org/security/saml/v2.0/


Koppelen met Entree Federatie

Metadata URL's

De metadata van Entree Federatie bevat zowel SP als IdP metadata.

of https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/

of https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml2/

Protocol & bindings

Entree Federatie ondersteund de volgende bindings:

  • HTTP-Redirect, HTTP-Artifact and HTTP-POST for all incoming messages,
  • HTTP-Redirect and HTTP-POST for outgoing messages.

Entree Federatie stuurt alleen <AuthnRequest>’s naar IdP's. Er worden geen andere SAML requests verstuurd. Daarom bevat het antwoord een <AuthnStatement> en een <AttributeStatement>, als de authenticatie succesvol is.

Name ID Format

De Name ID (Name ID in de <AuthnStatement>) die Entree Federatie heeft de volgende eigenschappen:

  • De waarde is als volgt opgebouwd (username)@(realm). De Name ID heeft hetzelfde formaat als een e-mailadres, maar is het niet.
  • De waarde voor de realm is uniek binnen Entree Federatie en bevat bij voorkeur een schooldomein.
  • Het SAML2 Name ID format is urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified


De Name ID die Entree Federatie ontvangt van de IdP is niet gelijk aan de Name ID die wordt doorgestuurd naar de SP's:

  • Entree Federatie genereert een uid door het versleutelen van de (username) en het (empoyeenumber) gevolgd door de @realm.
  • Door het versleutelen is de originele Name ID die door de IdP is aangeleverd niet meer zichtbaar voor andere partijen, zodat de privacy van de gebruikers is gewaarborgd. De realm blijft wel zichtbaar.
  • De uid is en blijft uniek binnen de hele Federatie voor alle partijen. De uid verwijst altijd naar dezelfde gebruiker ongeacht datum/tijd waarop het ID is gebruikt.

Gegevens van de gebruiker

Standaard stuurt Entree Federatie alleen de standaard set attributen naar de dienst. Deze attributen bevatten geen privacy gevoelige informatie over de gebruiker. Een overzicht van de attributen kun je hier vinden: http://developers.wiki.kennisnet.nl/index.php?title=KNF:Attributen_overzicht_voor_Service_Providers

Indien je als dienst meer informatie nodig hebt van een gebruiker, bijvoorbeeld voor autorisatie, dan kan de school hier schriftelijk toestemming voor geven met een ARP (Attribute Release Policy) formulier. Hiervoor hebben we templates die je kan gebruiken als dienst.

Federatieve accounts & Entree Accounts

Entree Federatie heeft 2 soorten accounts, federatieve accounts van alle aangesloten IdP's ook wel schoolaccounts genoemd. Daarnaast heeft Kennisnet een eigen IdP Entree Account, waar gebruikers zelf een individueel account kunnen aanmaken.

Het belangrijkste verschil tussen deze accounts is dat Federatieve accounts daadwerkelijk van een school komen en ook alle attributen bevatten en Entree Accounts niet gekoppeld zijn aan een school en de waardes voor de attributen eduPersonAffiliation, nlEduPersonHomeOrganization en nlEduPersonHomeOrganizationId en standaard waarde bevatten.