https://developers.wiki.kennisnet.nl/api.php?action=feedcontributions&user=Oostmeijer01&feedformat=atomKennisnet Developers Documentatie - Gebruikersbijdragen [nl]2024-03-19T03:22:18ZGebruikersbijdragenMediaWiki 1.35.13https://developers.wiki.kennisnet.nl/index.php?title=KNF:Attributen_overzicht_voor_Service_Providers&diff=12931KNF:Attributen overzicht voor Service Providers2023-11-22T15:51:01Z<p>Oostmeijer01: /* Standaard attributen */</p>
<hr />
<div>{{Talen}}<br />
<br/><br />
__TOC__<br />
<br />
Om een gebruiker te authentiseren en vervolgens te autoriseren wordt binnen Entree Federatie gebruik gemaakt van attributen. Deze attributen bevatten informatie (bijvoorbeeld een voornaam) over de gebruiker die bij een aangesloten dienst wilt inloggen.<br/><br />
De set van attributen bestaat uit twee typen attributen:<br />
*Standaard attributen: worden door alle Service Providers ontvangen<br />
*Aanvullende attributen: worden alleen ontvangen na expliciete toestemming van de onderwijsinstelling<br />
Voor de meeste dienstleveranciers zal de basisset met standaard attributen voldoende zijn om gebruikers te authentiseren en te autoriseren. Er kunnen zich echter situaties voordoen waarin een Service Provider meer informatie over een gebruiker nodig heeft, in dat geval kan er gebruik worden gemaakt van één of meerdere aanvullende attributen.<br />
<br />
==Standaard attributen==<br />
Hieronder staan de attributen die altijd door Entree Federatie worden doorgegeven aan de Service Provider.<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| uid || Uniek ID van de gebruiker. Dit is een versleutelde versie van de gebruikersnaam en het employeeNumber, gevolgd door de omgeving (realm) || hash@realm || qj7cks8qdz9ph54@petteflatcollege<br />
|-<br />
| givenName || Voornaam || vrij tekstveld || Pietje<br />
|-<br />
| eduPersonAffiliation** || Rol || student, employee, staff of affiliate || student<br />
|-<br />
| nlEduPersonHomeOrganizationId || BRIN nummer van de instelling || vrij tekstveld || 11ZZ03<br />
|-<br />
| nlEduPersonHomeOrganization || Naam van de instelling || vrij tekstveld || Petteflat College<br />
|-<br />
| eckId * || Uniek ECK pseudoniem voor leerling of docent&nbsp;'''<sup>2</sup>''' || tekstveld || <nowiki>https://ketenid.nl/pilot/8e0a9f57fc76854d3dd2d3c4fa732feaf7b7a2d5f549a5458ce300223b83172f5074aa88a8cef0712aca19b62e9b90d0352e98fc76f498cd3947e7cc810f03fa</nowiki><br />
|}<br />
* Als aangesloten dienstaanbieder heeft u ook de mogelijkheid om ECK iD’s via Entree Federatie te ontvangen. [https://www.kennisnet.nl/entree-federatie/aanmelden/ Voorwaarden en aanmelden]<br/>Voor meer informatie over het ECK iD: https://www.eck-id.nl/implementatie/documentatie<br />
<br />
==Aanvullende attributen==<br />
Deze attributen worden alleen aan de Service Provider doorgegeven indien de school hiervoor expliciet toestemming heeft gegeven via een ondertekende [https://support.kennisnet.org/Knowledgebase/Article/View/511 Attribute Release Policy].<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| nlEduPersonRealId&nbsp;'''<sup>1</sup>''' || Onversleutelde versie van het uid || [userId]@[realm] || pietjepukkelen@petteflatcollege<br />
|-<br />
| nlEduPersonProfileId || ECK keten-ID<br/>Indien een school meerdere administraties voert kan het administratienummer worden toegevoegd achter het @, zoals in het voorbeeld || leerlingnummer@administratienummer.schooldomein.nl || 95312@1.kennisnet.nl<br />
|-<br />
| nlEduPersonTussenvoegsels || Tussenvoegsel || vrij tekstveld || van<br />
|-<br />
| sn || Achternaam || vrij tekstveld || Pukkelen<br />
|-<br />
| mail || E-mailadres || vrij tekstveld || pietjepukkelen@petteflatcollege.nl<br />
|-<br />
| initials || Initalen || vrij tekstveld || P.<br />
|-<br />
| nlEduPersonBirthDate || Geboortedatum || yyyymmdd || 19801231<br />
|-<br />
| nlEduPersonProfile || Opleidingsnaam voorafgegaan door CREBO[spatie].<br/>Optioneel kan BOL_ of BBL_ toegevoegd worden voor de opleidingsnaam || vrij tekstveld || 2345 BOL_ICT.Gamedeveloper <br />
|-<br />
| nlEduPersonDepartment || Afdeling of sector || vrij tekstveld || Techniek<br />
|-<br />
| nlEduPersonUnit || Primaire klas/groep. Uniek binnen administratie / schooldomein || vrij tekstveld || H2A<br />
|-<br />
| ou || Klas of groep || vrij tekstveld || H2A<br />
|-<br />
| nlEduPersonCohort || Startjaar || vrij tekstveld || 2014<br />
|-<br />
| ocwILTRegistratiecode || ILT Registratiecode<br/>''Conform bijlage I en II, behorende bij artikel 1 van de Regeling van de Minister OCW houdende vaststelling van de Elementcodetabel en Vakcodetabel VO en Volwasseneneducatie: nr. DUO/OND-2013/15135 M.'' || vier cijferige-code || 0011<br />
|-<br />
| ocwILTLeerjaar || ILT Leerjaar<br/>''Conform bijlage I en II, behorende bij artikel 1 van de Regeling van de Minister OCW houdende vaststelling van de Elementcodetabel en Vakcodetabel VO en Volwasseneneducatie: nr. DUO/OND-2013/15135 M.'' || 1 cijfer || 1<br />
|-<br />
| digiDeliveryId || ECK digitaal afleveradres || tekstveld || ED8AE607-WI3N-414C-T87A-624E74S7T005<br />
|-<br />
| nlEduPersonHomeOrganizationBranchId || Vestigingsnummer (BRIN 6) || String van 6 alfa-numerieke karakters || 11ZZ03<br />
|-<br />
| nlEduPersonTargetedId || Badge ID || tekstveld || 12345678901234567890<br />
|}<br />
'''<sup>1</sup> Let op:''' De versleutelde inhoud van dit attribuut wordt altijd doorgegeven in het attribuut uid (zie standaard attributen).<br/><br />
'''<sup>2</sup>''' Voor meer informatie over het ECK-iD: https://www.eck-id.nl/<br />
<br />
==Attribute release policy==<br />
Door het ondertekenen van een Attribute Release Policy geeft een school toestemming om bepaalde aanvullende attributen aan een specifieke Service Provider door te geven. <br />
Een overzicht van attribute release policies die al gebruikt worden is te vinden op [https://support.kennisnet.org/display/FAQ/Federatie+FAQ de support pagina van Kennisnet].<br />
<br />
==Rollen eduPersonAffiliation==<br />
Hieronder beschrijving van de verschillende rollen die gebruikt worden binnen Entree Federatie.<br />
<br />
* De rol student is voor studenten.<br />
* De rol employee is voor docenten.<br />
* De rol staff is voor onderwijspersoneel. <br />
* De rol affiliate wordt gebruikt voor Entree Account gebruikers.<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Attributen_overzicht_voor_Service_Providers&diff=12930KNF:Attributen overzicht voor Service Providers2023-11-22T15:50:33Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br/><br />
__TOC__<br />
<br />
Om een gebruiker te authentiseren en vervolgens te autoriseren wordt binnen Entree Federatie gebruik gemaakt van attributen. Deze attributen bevatten informatie (bijvoorbeeld een voornaam) over de gebruiker die bij een aangesloten dienst wilt inloggen.<br/><br />
De set van attributen bestaat uit twee typen attributen:<br />
*Standaard attributen: worden door alle Service Providers ontvangen<br />
*Aanvullende attributen: worden alleen ontvangen na expliciete toestemming van de onderwijsinstelling<br />
Voor de meeste dienstleveranciers zal de basisset met standaard attributen voldoende zijn om gebruikers te authentiseren en te autoriseren. Er kunnen zich echter situaties voordoen waarin een Service Provider meer informatie over een gebruiker nodig heeft, in dat geval kan er gebruik worden gemaakt van één of meerdere aanvullende attributen.<br />
<br />
==Standaard attributen==<br />
Hieronder staan de attributen die altijd door Entree Federatie worden doorgegeven aan de Service Provider.<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| uid || Uniek ID van de gebruiker. Dit is een versleutelde versie van de gebruikersnaam en het employeeNumber, gevolgd door de omgeving (realm) || hash@realm || qj7cks8qdz9ph54@petteflatcollege<br />
|-<br />
| givenName || Voornaam || vrij tekstveld || Pietje<br />
|-<br />
| eduPersonAffiliation** || Rol || student, employee, staff of affiliate || student<br />
|-<br />
| nlEduPersonHomeOrganizationId || BRIN nummer van de instelling || vrij tekstveld || 11ZZ03<br />
|-<br />
| nlEduPersonHomeOrganization || Naam van de instelling || vrij tekstveld || Petteflat College<br />
|-<br />
| eckId * || Uniek ECK pseudoniem voor leerling of docent&nbsp;'''<sup>2</sup>''' || tekstveld || <nowiki>https://ketenid.nl/pilot/8e0a9f57fc76854d3dd2d3c4fa732feaf7b7a2d5f549a5458ce300223b83172f5074aa88a8cef0712aca19b62e9b90d0352e98fc76f498cd3947e7cc810f03fa</nowiki><br />
|}<br />
* Als aangesloten dienstaanbieder heeft u ook de mogelijkheid om ECK iD’s via Entree Federatie te ontvangen. [https://www.kennisnet.nl/entree-federatie/aanmelden/ Voorwaarden en aanmelden<br/>Voor meer informatie over het ECK iD: https://www.eck-id.nl/implementatie/documentatie]<br />
<br />
==Aanvullende attributen==<br />
Deze attributen worden alleen aan de Service Provider doorgegeven indien de school hiervoor expliciet toestemming heeft gegeven via een ondertekende [https://support.kennisnet.org/Knowledgebase/Article/View/511 Attribute Release Policy].<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| nlEduPersonRealId&nbsp;'''<sup>1</sup>''' || Onversleutelde versie van het uid || [userId]@[realm] || pietjepukkelen@petteflatcollege<br />
|-<br />
| nlEduPersonProfileId || ECK keten-ID<br/>Indien een school meerdere administraties voert kan het administratienummer worden toegevoegd achter het @, zoals in het voorbeeld || leerlingnummer@administratienummer.schooldomein.nl || 95312@1.kennisnet.nl<br />
|-<br />
| nlEduPersonTussenvoegsels || Tussenvoegsel || vrij tekstveld || van<br />
|-<br />
| sn || Achternaam || vrij tekstveld || Pukkelen<br />
|-<br />
| mail || E-mailadres || vrij tekstveld || pietjepukkelen@petteflatcollege.nl<br />
|-<br />
| initials || Initalen || vrij tekstveld || P.<br />
|-<br />
| nlEduPersonBirthDate || Geboortedatum || yyyymmdd || 19801231<br />
|-<br />
| nlEduPersonProfile || Opleidingsnaam voorafgegaan door CREBO[spatie].<br/>Optioneel kan BOL_ of BBL_ toegevoegd worden voor de opleidingsnaam || vrij tekstveld || 2345 BOL_ICT.Gamedeveloper <br />
|-<br />
| nlEduPersonDepartment || Afdeling of sector || vrij tekstveld || Techniek<br />
|-<br />
| nlEduPersonUnit || Primaire klas/groep. Uniek binnen administratie / schooldomein || vrij tekstveld || H2A<br />
|-<br />
| ou || Klas of groep || vrij tekstveld || H2A<br />
|-<br />
| nlEduPersonCohort || Startjaar || vrij tekstveld || 2014<br />
|-<br />
| ocwILTRegistratiecode || ILT Registratiecode<br/>''Conform bijlage I en II, behorende bij artikel 1 van de Regeling van de Minister OCW houdende vaststelling van de Elementcodetabel en Vakcodetabel VO en Volwasseneneducatie: nr. DUO/OND-2013/15135 M.'' || vier cijferige-code || 0011<br />
|-<br />
| ocwILTLeerjaar || ILT Leerjaar<br/>''Conform bijlage I en II, behorende bij artikel 1 van de Regeling van de Minister OCW houdende vaststelling van de Elementcodetabel en Vakcodetabel VO en Volwasseneneducatie: nr. DUO/OND-2013/15135 M.'' || 1 cijfer || 1<br />
|-<br />
| digiDeliveryId || ECK digitaal afleveradres || tekstveld || ED8AE607-WI3N-414C-T87A-624E74S7T005<br />
|-<br />
| nlEduPersonHomeOrganizationBranchId || Vestigingsnummer (BRIN 6) || String van 6 alfa-numerieke karakters || 11ZZ03<br />
|-<br />
| nlEduPersonTargetedId || Badge ID || tekstveld || 12345678901234567890<br />
|}<br />
'''<sup>1</sup> Let op:''' De versleutelde inhoud van dit attribuut wordt altijd doorgegeven in het attribuut uid (zie standaard attributen).<br/><br />
'''<sup>2</sup>''' Voor meer informatie over het ECK-iD: https://www.eck-id.nl/<br />
<br />
==Attribute release policy==<br />
Door het ondertekenen van een Attribute Release Policy geeft een school toestemming om bepaalde aanvullende attributen aan een specifieke Service Provider door te geven. <br />
Een overzicht van attribute release policies die al gebruikt worden is te vinden op [https://support.kennisnet.org/display/FAQ/Federatie+FAQ de support pagina van Kennisnet].<br />
<br />
==Rollen eduPersonAffiliation==<br />
Hieronder beschrijving van de verschillende rollen die gebruikt worden binnen Entree Federatie.<br />
<br />
* De rol student is voor studenten.<br />
* De rol employee is voor docenten.<br />
* De rol staff is voor onderwijspersoneel. <br />
* De rol affiliate wordt gebruikt voor Entree Account gebruikers.<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Single_Sign_On_query&diff=12789KNF:Single Sign On query2023-09-19T11:16:41Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
==Inleiding==<br />
De Single Sign On-query kan worden gebruikt door Service Provider om te detecteren of een gebruiker reeds een lopende SSO sessie via Entree Federatie heeft.<br />
<br />
Om te authentiseren, moet de gebruiker op de website op de knop "Inloggen" klikken, waardoor het authenticatieproces via Entree Federatie start. Als de gebruiker echter al een geldige Single Sign On-sessie met Entree Federatie heeft, zal het inloggen onmiddellijk zonder gebruikersinteractie (bijv. het invoeren van een gebruikersnaam en wachtwoord) gebeuren. Het klikken op de knop "Inloggen" is dus overbodig en daarom minder gebruiksvriendelijk.<br />
<br />
Om dit scenario te voorkomen, kan de Service Provider een detectiemechanisme implementeren dat automatisch gebruikers met een geldige SSO-sessie herkent. Dit kan worden bereikt met de Single Sign On-query. <br />
<br />
'''Let op:'''<br/><br />
Om misbruik van deze functionaliteit te voorkomen dient het domein opgenomen te worden in de whitelist van Entree Federatie.<br />
Neem daarom contact op met [https://support.kennisnet.org/ Kennisnet] als je gebruik wilt maken van SSO query.<br />
<br />
Zodra de vraag aan de Entree Federatie gesteld wordt, kunnen er drie antwoorden worden geven op de SSOQuery:<br />
;false<br />
:De gebruiker heeft geen SSO sessie en is voor zover bekend bij de Entree Federatie nergens ingelogd. Het is dus onbekend of de gebruiker wel of niet kan inloggen via Entree Federatie.<br />
;true<br />
:De gebruiker heeft een SSO sessie en kan inloggen zonder gebruikersinteractie<br />
;remote<br />
:De gebruiker heeft geen SSO sessie, maar er is wel een SSO notificatie cookie gevonden. De gebruiker is al ingelogd bij zijn eigen Identity Provider en kan hoogstwaarschijnlijk inloggen zonder gebruikersinteractie<br />
<br />
==Implementatie==<br />
De query bestaat uit een HTTP GET request met twee parameters: <br />
* response_url: deze parameter moet in de URL worden URL encoded/UTF-8<br />
* format: deze optionele parameter kan gebruikt worden om het antwoord in json format te ontvangen<br />
<br><br />
De volgende urls kunnen worden gebruikt:<br />
<br />
<br />
SSO Query endpoint:<br />
<syntaxhighlight lang="HTML"><br />
Productie: https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=<URL><br />
Staging: https://ssoquery.entree-s.kennisnet.nl/sso/ssoquery?response_url=<URL><br />
</syntaxhighlight><br />
<br />
===Voorbeeld===<br />
;De Service Provider stelt de vraag:<br />
:https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=https%3A%2F%2Ftestapplicatie.kennisnet.nl<br />
<br />
;Entree Federatie redirect naar de opgegeven response URL:<br />
:https://testapplicatie.kennisnet.nl?result=true<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Single_Sign_On_query/en&diff=12788KNF:Single Sign On query/en2023-09-19T11:16:06Z<p>Oostmeijer01: </p>
<hr />
<div>{{PageTitleCustom|title=Single Sign On query|name=Kennisnet Federation|image=true|imageurl=KNF:Hoofdpagina/en}}<br />
==Introduction==<br />
The Single Sign On query can be used on websites that allows both anonymous and authenticated users. The latter will have access to extended functionality or content.<br />
<br />
To authenticate, the user needs to press the “Log in” button on the website, which starts the authentication process. However if the user already has a valid Single Sign On session with Entree, pressing the “Log in” button immediately logs on the user, without any further interaction (eg. entering a username and password). The requirement to press “Log in” is therefore unnecessary and not user friendly. <br />
<br />
To prevent this scenario the website should have a detection mechanism in place which automatically recognizes users with a valid SSO session. This can be achieved with the Single Sign On query. This method is preferred over the 'SAML passive authentication' When using the SSO query, SAML passive authentication is not needed.<br />
<br />
<br />
'''Note:'''<br/><br />
To prevent abuse of this functionality, the domain should be included in the whitelist of Entree Federatie. Please contact [https://support.kennisnet.org/ Kennisnet] if you want to use SSO query.<br />
<br />
The SSO query is a simple query/response implementation. Both the query and its response are sent using HTTP redirects. The query is sent to a predefined URL, the response is sent to the whitelisted URL that was specified in the query.<br />
<br />
The process has three possible outcomes:<br />
;false<br />
:The user does not have an SSO session and is not logged in anywhere by the Entree Federation. It is therefore unknown whether or not the user can log in via Entree Federation.<br />
;true<br />
:The user has a valid SSO session with Entree. The user can be authenticated without any interaction<br />
;remote<br />
:The user does not have an SSO session, but an SSO notification cookie has been found. The user is already logged in to their own Identity Provider and will most likely be able to log in without user interaction.<br />
<br />
<br />
==Implementation==<br />
The query consists of an HTTP GET request with two parameters:<br />
* response_url: this parameter must be URL encoded / UTF-8 in the URL<br />
* format: this optional parameter can be used to receive the answer in json format<br />
<br><br />
The following urls can be used:<br />
<br />
SSO Query endpoint:<br />
<syntaxhighlight lang="HTML"><br />
Production: https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=<URL>&format=json<br />
Staging: https://ssoquery.entree-s.kennisnet.nl/sso/ssoquery?response_url=<URL>&format=json<br />
</syntaxhighlight><br />
<br />
===Example===<br />
;The Service Provider sends the request:<br />
:https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=https%3A%2F%2Ftestapplicatie.kennisnet.nl<br />
<br />
;Entree Federation redirects to the specified response URL:<br />
:https://testapplicatie.kennisnet.nl?result=true<br />
<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Single_Sign_On_query&diff=12787KNF:Single Sign On query2023-09-19T10:54:12Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
==Inleiding==<br />
De Single Sign On-query kan worden gebruikt door Service Provider om te detecteren of een gebruiker reeds een lopende SSO sessie via Entree Federatie heeft.<br />
<br />
Om te authentiseren, moet de gebruiker op de website op de knop "Inloggen" klikken, waardoor het authenticatieproces via Entree Federatie start. Als de gebruiker echter al een geldige Single Sign On-sessie met Entree Federatie heeft, zal het inloggen onmiddellijk zonder gebruikersinteractie (bijv. het invoeren van een gebruikersnaam en wachtwoord) gebeuren. Het klikken op de knop "Inloggen" is dus overbodig dat en daarom minder gebruiksvriendelijk.<br />
<br />
Om dit scenario te voorkomen, kan de Service Provider een detectiemechanisme implementeren dat automatisch gebruikers met een geldige SSO-sessie herkent. Dit kan worden bereikt met de Single Sign On-query. <br />
<br />
'''Let op:'''<br/><br />
Om misbruik van deze functionaliteit te voorkomen dient het domein opgenomen te worden in de whitelist van Entree Federatie.<br />
Neem daarom contact op met [https://support.kennisnet.org/ Kennisnet] als je gebruik wilt maken van SSO query.<br />
<br />
Zodra de vraag aan de Entree Federatie gesteld wordt, kunnen er drie antwoorden worden geven op de SSOQuery:<br />
;false<br />
:De gebruiker heeft geen SSO sessie en is voor zover bekend bij de Entree Federatie nergens ingelogd. Het is dus onbekend of de gebruiker wel of niet kan inloggen via Entree Federatie.<br />
;true<br />
:De gebruiker heeft een SSO sessie en kan inloggen zonder gebruikersinteractie<br />
;remote<br />
:De gebruiker heeft geen SSO sessie, maar er is wel een SSO notificatie cookie gevonden. De gebruiker is al ingelogd bij zijn eigen Identity Provider en kan hoogstwaarschijnlijk inloggen zonder gebruikersinteractie<br />
<br />
==Implementatie==<br />
De query bestaat uit een HTTP GET request met twee parameters: <br />
* response_url: deze parameter moet in de URL worden URL encoded/UTF-8<br />
* format: deze optionele parameter kan gebruikt worden om het antwoord in json format te ontvangen<br />
<br><br />
De volgende urls kunnen worden gebruikt:<br />
<br />
<br />
SSO Query endpoint:<br />
<syntaxhighlight lang="HTML"><br />
Productie: https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=<URL><br />
Staging: https://ssoquery.entree-s.kennisnet.nl/sso/ssoquery?response_url=<URL><br />
</syntaxhighlight><br />
<br />
===Voorbeeld===<br />
;De Service Provider stelt de vraag:<br />
:https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=https%3A%2F%2Ftestapplicatie.kennisnet.nl<br />
<br />
;Entree Federatie redirect naar de opgegeven response URL:<br />
:https://testapplicatie.kennisnet.nl?result=true<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Single_Sign_On_query&diff=12785KNF:Single Sign On query2023-09-19T10:50:39Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
==Inleiding==<br />
De Single Sign On-query kan worden gebruikt door Service Provider om te detecteren of een gebruiker reeds een lopende SSO sessie via Entree Federatie heeft.<br />
<br />
Om te authentiseren, moet de gebruiker op de website op de knop "Inloggen" klikken, waardoor het authenticatieproces via Entree Federatie start. Als de gebruiker echter al een geldige Single Sign On-sessie met Entree Federatie heeft, zal het inloggen onmiddellijk zonder gebruikersinteractie (bijv. het invoeren van een gebruikersnaam en wachtwoord) gebeuren. Het klikken op de knop "Inloggen" is dus overbodig dat en daarom minder gebruiksvriendelijk.<br />
<br />
Om dit scenario te voorkomen, kan de Service Provider een detectiemechanisme implementeren dat automatisch gebruikers met een geldige SSO-sessie herkent. Dit kan worden bereikt met de Single Sign On-query. <br />
<br />
'''Let op:'''<br/><br />
Om misbruik van deze functionaliteit te voorkomen dient het domein opgenomen te worden in de whitelist van Entree Federatie.<br />
Neem daarom contact op met [https://support.kennisnet.org/ Kennisnet] als je gebruik wilt maken van SSO query.<br />
<br />
Zodra de vraag aan de Entree Federatie gesteld wordt, kunnen er drie antwoorden worden geven op de SSOQuery:<br />
;false<br />
:De gebruiker heeft geen SSO sessie en is voor zover bekend bij de Entree Federatie nergens ingelogd. Het is dus onbekend of de gebruiker wel of niet kan inloggen via Entree Federatie.<br />
;true<br />
:De gebruiker heeft een SSO sessie en kan inloggen zonder gebruikersinteractie<br />
;remote<br />
:De gebruiker heeft geen SSO sessie, maar er is wel een SSO notificatie cookie gevonden. De gebruiker is al ingelogd bij zijn eigen Identity Provider en kan hoogstwaarschijnlijk inloggen zonder gebruikersinteractie<br />
<br />
==Implementatie==<br />
De query bestaat uit een HTTP GET request met twee parameters: <br />
* response_url: deze parameter moet in de URL worden URL encoded/UTF-8<br />
* format: deze optionele parameter kan gebruikt worden om het antwoord in json format te ontvangen<br />
<br><br />
De volgende urls kunnen worden gebruikt:<br />
<br />
<br />
SSO Query endpoint:<br />
<syntaxhighlight lang="HTML"><br />
Productie: https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=<URL><br />
Staging: https://ssoquery.entree-s.kennisnet.nl/sso/ssoquery?response_url=<URL><br />
</syntaxhighlight><br />
<br />
===Voorbeeld===<br />
;De Service Provider stelt de vraag:<br />
:https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=https%3A%2F%2Ftestapplicatie.kennisnet.nl<br />
<br />
;Entree Federatie redirect naar de opgegeven response URL:<br />
:https://testapplicatie.kennisnet.nl?result=true<br />
<br />
<!--<br />
===Voorbeeld implementatie===<br />
<syntaxhighlight lang="HTML"><br />
<html><br />
<script><br />
var ssoQuery= 'https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=https://domeinnaam&format=json';<br />
<br />
function isLoggedIn() {<br />
var xhr = new XMLHttpRequest();<br />
xhr.open("GET", ssoQuery, true);<br />
xhr.withCredentials = true;<br />
xhr.onreadystatechange = function () {<br />
if (xhr.readyState === 4) {<br />
if (xhr.status === 200 && JSON.parse(xhr.responseText)['result'] === 'true') {<br />
<!-- de gebruiker heeft reeds een lopende SSO sessie via Entree Federatie en kan direct worden ingelogd --><br />
window.location.href = ''; <!-- redirect naar de pagina waar uw applicatie het authenticatieverzoek naar Entree Federatie verstuurd --><br />
} else {<br />
<!-- de gebruiker heeft nog geen lopende SSO sessie via Entree Federatie en gebruikersinteractie is vereist --><br />
window.location.href = ''; <!-- redirect de gebruiker naar de inlogpagina van uw applicatie --><br />
}<br />
}<br />
};<br />
xhr.ontimeout = function () {<br />
<!-- redirect de gebruiker in geval van een timeout van de SSO query service naar de inlogpagina van uw applicatie<br />
window.location.href = ''; <!-- redirect de gebruiker naar de inlogpagina van uw applicatie --><br />
};<br />
xhr.send();<br />
}<br />
isLoggedIn();<br />
</script><br />
</html><br />
</syntaxhighlight><br />
--><br />
<br />
<!-- <syntaxhighlight lang="php"><br />
<?php<br />
$query_url = 'https://ssoquery.aselect-s.entree.kennisnet.nl/openaselect/sso/ssoquery';<br />
$response_url = 'https://domeinnaam/ssoresult.php';<br />
<br />
$url = $query_url . '?response_url=' . urlencode($response_url);<br />
<br />
header('Location: ' . $url, 302);<br />
?><br />
</syntaxhighlight> --><br />
<br />
<br />
<br />
<!-- <br />
====SSO query result====<br />
<syntaxhighlight lang="php"><br />
<?php<br />
$result = array_key_exists('result', $_GET) ? $_GET['result'] : false;<br />
<br />
$resultValue = ($result === false ? '*none*' : $result);<br />
<br />
?><br />
<html><br />
<head><br />
<title>SSO query result</title><br />
</head><br />
<body><br />
<p>SSO query result is <?php print $resultValue; ?>.</p><br />
</body><br />
</html><br />
</syntaxhighlight><br />
--><br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSO_notificatie_middels_een_redirect&diff=12727KNF:SSO notificatie middels een redirect2023-07-17T12:20:47Z<p>Oostmeijer01: /* Foutmeldingen */</p>
<hr />
<div>{{Talen}}<br />
<br />
Het SSO notificatie cookie kan geplaatst worden door een redirect naar Entree Federatie uit te voeren nadat de gebruiker is ingelogd in de ELO of schoolportaal.<br><br />
<br />
==Opbouw redirect URL==<br />
De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:<br />
<br />
* Voor '''productie''': <nowiki>https://ssonot.entree.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki><br />
* Voor '''staging''': <nowiki>https://ssonot.entree-s.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki><br />
Parameters:<br />
* '''id:''' De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. De live data van de WAYF is via een publiek JSON bestand beschikbaar via: https://engine.entree.kennisnet.nl/sso/wayfsearch<br />
* '''url:''' De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.<br />
* '''redirectUri:''' De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.<br />
<br />
De redirect URL krijgt daarmee de volgende constructie:<br><br />
''<nowiki>https://ssonot.entree.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>''<br />
<br />
==Whitelist==<br />
'''LET OP:''' Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie [[KNF:SSO_notificatie_middels_een_redirect#Foutmeldingen | Foutmeldingen]]) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met [mailto:support@kennisnet.nl Kennisnet].<br />
<br />
==Voorbeeld==<br />
In onderstaande voorbeeld is ''<nowiki>http://authenticate.example.org</nowiki>'' de identifier van de IdP, ''<nowiki>http://www.example.org</nowiki>'' de URL waarvandaan de redirect wordt uitgevoerd en ''<nowiki>http://www.kennisnet.nl</nowiki>'' de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.<br><br />
''<nowiki>https://ssonot.entree.kennisnet.nl/?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl</nowiki>''<br />
<br />
==Foutmeldingen==<br />
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code (Bad request).<br><br />
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 401 HTTP status code (Unauthorized) opleveren.<br><br />
Wanneer de redirectUri niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call een 401 HTTP status code (Unauthorized) opleveren.<br><br />
Neem in deze gevallen contact op met [mailto:support@kennisnet.nl Kennisnet].<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSO_notificatie_middels_een_redirect&diff=12726KNF:SSO notificatie middels een redirect2023-07-17T12:16:24Z<p>Oostmeijer01: /* Opbouw redirect URL */</p>
<hr />
<div>{{Talen}}<br />
<br />
Het SSO notificatie cookie kan geplaatst worden door een redirect naar Entree Federatie uit te voeren nadat de gebruiker is ingelogd in de ELO of schoolportaal.<br><br />
<br />
==Opbouw redirect URL==<br />
De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:<br />
<br />
* Voor '''productie''': <nowiki>https://ssonot.entree.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki><br />
* Voor '''staging''': <nowiki>https://ssonot.entree-s.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki><br />
Parameters:<br />
* '''id:''' De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. De live data van de WAYF is via een publiek JSON bestand beschikbaar via: https://engine.entree.kennisnet.nl/sso/wayfsearch<br />
* '''url:''' De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.<br />
* '''redirectUri:''' De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.<br />
<br />
De redirect URL krijgt daarmee de volgende constructie:<br><br />
''<nowiki>https://ssonot.entree.kennisnet.nl/?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>''<br />
<br />
==Whitelist==<br />
'''LET OP:''' Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie [[KNF:SSO_notificatie_middels_een_redirect#Foutmeldingen | Foutmeldingen]]) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met [mailto:support@kennisnet.nl Kennisnet].<br />
<br />
==Voorbeeld==<br />
In onderstaande voorbeeld is ''<nowiki>http://authenticate.example.org</nowiki>'' de identifier van de IdP, ''<nowiki>http://www.example.org</nowiki>'' de URL waarvandaan de redirect wordt uitgevoerd en ''<nowiki>http://www.kennisnet.nl</nowiki>'' de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.<br><br />
''<nowiki>https://ssonot.entree.kennisnet.nl/?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl</nowiki>''<br />
<br />
==Foutmeldingen==<br />
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code.<br><br />
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 400 HTTP status code opleveren.<br><br />
Neem in deze gevallen contact op met [mailto:support@kennisnet.nl Kennisnet].<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Scoping&diff=12724KNF:Scoping2023-07-14T14:48:54Z<p>Oostmeijer01: /* Endpoint nieuwe platform */</p>
<hr />
<div><br />
Scoping maakt het mogelijk dat een Service Provider één of meerdere Identity Providers opgeeft in een authnRequest. Hiermee kan je als Service Provider bepalen welke Identity Providers ondersteund worden. <br />
<br />
Indien één Identity Provider wordt opgegeven, wordt het WAYF scherm van Entree Federatie overgeslagen. Deze functie is vooral handig indien je voor scholen een aparte omgeving / subdomein hebt. <br />
<br />
<br />
==Authenticatie verzoek met scoping==<br />
Authenticatie verzoek met scoping van de Service Provider naar Entree Federatie.<br />
Het authenticatie verzoek komt in dit geval van ''<nowiki>https://bestelshop</nowiki>''.<br />
De scoping wordt gedaan op ''<nowiki>https://mijn-idp</nowiki>''.<br />
<br />
<syntaxhighlight lang="xml"><br />
<AuthnRequest Version="2.0"<br />
IssueInstant="2019-12-06T10:00:02Z"<br />
Destination="https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web"<br />
AssertionConsumerServiceURL="https://bestelshop/saml2-acs.php"<br />
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"><br />
<Issuer>https://bestelshop</Issuer><br />
<NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/><br />
<Scoping><br />
<IDPList><br />
<IDPEntry ProviderID="https://mijn-idp" /><br />
</IDPList><br />
</Scoping><br />
</AuthnRequest><br />
<br />
</syntaxhighlight><br />
<br />
==OIDC Authenticatie verzoek met login_hint==<br />
OIDC Authenticatie verzoek met login_hint van de Service Provider naar Entree Federatie.<br />
<br />
Met de parameter login_hint kan met een OIDC koppeling het WAYF scherm worden overgeslagen. <br />
<br />
&login_hint=https://mijn-idp<br />
<br />
<syntaxhighlight lang="xml"><br />
<br />
https://oidcng.entree-s.kennisnet.nl/oidc/authorize?client_id=bestelshop.nl&redirect_uri=https%3A%2F%2Fbestelshop.nl&response_type=code&grant_types=%5B%22implicit%22%5D&scopes=%5B%22openid%22,%22profile%22,%22email%22%5D&login_hint=https%3A%2F%2Fmijn-idp<br />
<br />
</syntaxhighlight><br />
<br />
==Realm scoping==<br />
Kennisnet heeft in juli 2020 in samenwerking met een aantal ketenpartijen realm scoping geïntroduceerd. Met realm scoping kan een Service Provider in plaats van het entityID van een Identity Provider, een realm meegeven in het authnRequest. Door de realm mee te geven wordt niet alleen het WAYF scherm van Entree Federatie overgeslagen, maar ook het WAYF scherm van Identity Providers zoals Magister, SOMtoday, Itslearning, etc. <br />
<br />
<!-- De volledige werking van scoping staat uitgelegd in dit document, t.b.v. de keten start schooljaar: [[Media:realm-scoping.pdf]] --><br />
<br />
==Aangesloten scholen - data van de WAYF in JSON bestand==<br />
Op Entree Federatie Aangesloten scholen staan in de WAYF tijdens het inloggen. <br />
<br />
===Endpoint nieuwe platform===<br />
De live data van de WAYF is via een publiek JSON bestand beschikbaar via: <br />
* https://engine.entree.kennisnet.nl/sso/wayfsearch<br />
<br />
De lijst kan ook specifiek voor een Service Provider (of Relying Party) worden opgevraagd door het entityID (URL encoded) toe te voegen: <br />
* https://engine.entree.kennisnet.nl/sso/wayfsearch?sp-entity-id=www.kwaliteitscholen.app <br />
<br />
Voorbeeld:<br />
<syntaxhighlight lang="json"><br />
{<br />
"idp": {<br />
"friendly_name": "Magister",<br />
"entity_id": "https://saml.magister.net"<br />
},<br />
"institution": {<br />
"friendly_name": "Almende College",<br />
"location": "Silvolde",<br />
"brin": "14UM02"<br />
},<br />
"realm": "magis.almende14UM02"<br />
}<br />
</syntaxhighlight><br />
<br />
===Endpoint oude platform===<br />
De Entity ID's van aangesloten Identity Providers en de realms van aangesloten scholen zijn beschikbaar via:<br />
* https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode<br />
<br />
Voorbeeld:<br />
<syntaxhighlight lang="json"><br />
{<br />
"idp": {<br />
"friendly_name": "Magister",<br />
"asorgcode": "https://saml.magister.net"<br />
},<br />
"ko": {<br />
"friendly_name": "'s Gravendreef College",<br />
"city": "Den Haag",<br />
"brin": "31EW00"<br />
},<br />
"realm": "magis.gravendreef00XK03"<br />
}<br />
</syntaxhighlight><br />
<br />
==Scoping met SimpleSAMLphp==<br />
Meer informatie over het gebruik van scoping in SimpleSAMLphp staat op de website:<br />
<br />
https://simplesamlphp.org/docs/stable/simplesamlphp-scoping<br />
<br />
==Scoping met componentspace==<br />
Toevoegen van scoping aan componentspace AuthnRequest()<br />
<br />
<syntaxhighlight lang="java"><br />
<br />
//Create the AuthnRequest//<br />
Private Function CreateAuthnRequest(certificate As X509Certificate2, ssoURL As String, UseScoping as Boolean, Brin as String) As XmlElement<br />
<br />
// Define EntityID//<br />
Dim entityId As String = ConfigurationManager.AppSettings("Entree.EntityID")<br />
Dim authnRequest As New AuthnRequest()<br />
authnRequest.Destination = ssoURL<br />
authnRequest.Issuer = New Issuer(entityId)<br />
authnRequest.ForceAuthn = False<br />
authnRequest.NameIDPolicy = New NameIDPolicy(Nothing, Nothing, True)<br />
<br />
//Gebruik scoping om school selectie scherm over te slaan?//<br />
If UseScoping = True Then<br />
<br />
//download json van kennisnet waar de ProviderIDs in zitten//<br />
Dim wc As New WebClient()<br />
Dim json As String = wc.DownloadString(“https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode=” & entityId)<br />
Dim wayfsearch As JArray = JArray.Parse(json)<br />
Dim ProviderID As String = ""<br />
For Each w In wayfsearch.Children<br />
//zoek voor het juiste providerID bij de opgegeven BRIN//<br />
If w("ko")("brin").ToString().ToLower() = Brin.ToLower() Then<br />
ProviderID = w("idp")("asorgcode").ToString()<br />
End If<br />
Next<br />
<br />
If String.IsNullOrEmpty(ProviderID) = False Then 'ProviderID gevonden<br />
Dim ips As IDPList = New IDPList()<br />
Dim ipe As IDPEntry = New IDPEntry()<br />
ipe.ProviderID = ProviderID<br />
ips.IDPEntries.Add(ipe)<br />
Dim scopeing As Scoping = New Scoping()<br />
scopeing.IDPList = ips<br />
scopeing.ProxyCount = 2<br />
authnRequest.Scoping = scopeing<br />
End If<br />
End If<br />
authnRequest.ProtocolBinding = SAMLIdentifiers.BindingURIs.HTTPPost<br />
authnRequest.AssertionConsumerServiceURL = ConfigurationManager.AppSettings("AssertionConsumerServiceURL")<br />
<br />
Dim authnRequestXml As XmlElement = authnRequest.ToXml()<br />
' Add signature<br />
SAMLMessageSignature.Generate(authnRequestXml, certificate.PrivateKey, certificate)<br />
Return authnRequestXml<br />
End Function<br />
</syntaxhighlight><br />
<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Scoping&diff=12723KNF:Scoping2023-07-14T14:48:41Z<p>Oostmeijer01: /* Endpoint oude platform */</p>
<hr />
<div><br />
Scoping maakt het mogelijk dat een Service Provider één of meerdere Identity Providers opgeeft in een authnRequest. Hiermee kan je als Service Provider bepalen welke Identity Providers ondersteund worden. <br />
<br />
Indien één Identity Provider wordt opgegeven, wordt het WAYF scherm van Entree Federatie overgeslagen. Deze functie is vooral handig indien je voor scholen een aparte omgeving / subdomein hebt. <br />
<br />
<br />
==Authenticatie verzoek met scoping==<br />
Authenticatie verzoek met scoping van de Service Provider naar Entree Federatie.<br />
Het authenticatie verzoek komt in dit geval van ''<nowiki>https://bestelshop</nowiki>''.<br />
De scoping wordt gedaan op ''<nowiki>https://mijn-idp</nowiki>''.<br />
<br />
<syntaxhighlight lang="xml"><br />
<AuthnRequest Version="2.0"<br />
IssueInstant="2019-12-06T10:00:02Z"<br />
Destination="https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web"<br />
AssertionConsumerServiceURL="https://bestelshop/saml2-acs.php"<br />
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"><br />
<Issuer>https://bestelshop</Issuer><br />
<NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/><br />
<Scoping><br />
<IDPList><br />
<IDPEntry ProviderID="https://mijn-idp" /><br />
</IDPList><br />
</Scoping><br />
</AuthnRequest><br />
<br />
</syntaxhighlight><br />
<br />
==OIDC Authenticatie verzoek met login_hint==<br />
OIDC Authenticatie verzoek met login_hint van de Service Provider naar Entree Federatie.<br />
<br />
Met de parameter login_hint kan met een OIDC koppeling het WAYF scherm worden overgeslagen. <br />
<br />
&login_hint=https://mijn-idp<br />
<br />
<syntaxhighlight lang="xml"><br />
<br />
https://oidcng.entree-s.kennisnet.nl/oidc/authorize?client_id=bestelshop.nl&redirect_uri=https%3A%2F%2Fbestelshop.nl&response_type=code&grant_types=%5B%22implicit%22%5D&scopes=%5B%22openid%22,%22profile%22,%22email%22%5D&login_hint=https%3A%2F%2Fmijn-idp<br />
<br />
</syntaxhighlight><br />
<br />
==Realm scoping==<br />
Kennisnet heeft in juli 2020 in samenwerking met een aantal ketenpartijen realm scoping geïntroduceerd. Met realm scoping kan een Service Provider in plaats van het entityID van een Identity Provider, een realm meegeven in het authnRequest. Door de realm mee te geven wordt niet alleen het WAYF scherm van Entree Federatie overgeslagen, maar ook het WAYF scherm van Identity Providers zoals Magister, SOMtoday, Itslearning, etc. <br />
<br />
<!-- De volledige werking van scoping staat uitgelegd in dit document, t.b.v. de keten start schooljaar: [[Media:realm-scoping.pdf]] --><br />
<br />
==Aangesloten scholen - data van de WAYF in JSON bestand==<br />
Op Entree Federatie Aangesloten scholen staan in de WAYF tijdens het inloggen. <br />
<br />
===Endpoint nieuwe platform===<br />
De live data van de WAYF is via een publiek JSON bestand beschikbaar via: <br />
* https://engine.entree.kennisnet.nl/sso/wayfsearch<br />
<br />
De lijst kan ook specifiek voor een Service Provider (of Relying Party) worden opgevraagd door het entityID (URL encoded) toe te voegen: <br />
* https://engine.entree.kennisnet.nl/sso/wayfsearch?sp-entity-id=www.kwaliteitscholen.app <br />
<br />
Voorbeeld:<br />
<syntaxhighlight lang="json"><br />
{"idp":{"friendly_name":"Magister","entity_id":"https://saml.magister.net"},"institution":{"friendly_name":"Almende College","location":"Silvolde","brin":"14UM02"},"realm":"magis.almende14UM02"}<br />
</syntaxhighlight><br />
<br />
===Endpoint oude platform===<br />
De Entity ID's van aangesloten Identity Providers en de realms van aangesloten scholen zijn beschikbaar via:<br />
* https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode<br />
<br />
Voorbeeld:<br />
<syntaxhighlight lang="json"><br />
{<br />
"idp": {<br />
"friendly_name": "Magister",<br />
"asorgcode": "https://saml.magister.net"<br />
},<br />
"ko": {<br />
"friendly_name": "'s Gravendreef College",<br />
"city": "Den Haag",<br />
"brin": "31EW00"<br />
},<br />
"realm": "magis.gravendreef00XK03"<br />
}<br />
</syntaxhighlight><br />
<br />
==Scoping met SimpleSAMLphp==<br />
Meer informatie over het gebruik van scoping in SimpleSAMLphp staat op de website:<br />
<br />
https://simplesamlphp.org/docs/stable/simplesamlphp-scoping<br />
<br />
==Scoping met componentspace==<br />
Toevoegen van scoping aan componentspace AuthnRequest()<br />
<br />
<syntaxhighlight lang="java"><br />
<br />
//Create the AuthnRequest//<br />
Private Function CreateAuthnRequest(certificate As X509Certificate2, ssoURL As String, UseScoping as Boolean, Brin as String) As XmlElement<br />
<br />
// Define EntityID//<br />
Dim entityId As String = ConfigurationManager.AppSettings("Entree.EntityID")<br />
Dim authnRequest As New AuthnRequest()<br />
authnRequest.Destination = ssoURL<br />
authnRequest.Issuer = New Issuer(entityId)<br />
authnRequest.ForceAuthn = False<br />
authnRequest.NameIDPolicy = New NameIDPolicy(Nothing, Nothing, True)<br />
<br />
//Gebruik scoping om school selectie scherm over te slaan?//<br />
If UseScoping = True Then<br />
<br />
//download json van kennisnet waar de ProviderIDs in zitten//<br />
Dim wc As New WebClient()<br />
Dim json As String = wc.DownloadString(“https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode=” & entityId)<br />
Dim wayfsearch As JArray = JArray.Parse(json)<br />
Dim ProviderID As String = ""<br />
For Each w In wayfsearch.Children<br />
//zoek voor het juiste providerID bij de opgegeven BRIN//<br />
If w("ko")("brin").ToString().ToLower() = Brin.ToLower() Then<br />
ProviderID = w("idp")("asorgcode").ToString()<br />
End If<br />
Next<br />
<br />
If String.IsNullOrEmpty(ProviderID) = False Then 'ProviderID gevonden<br />
Dim ips As IDPList = New IDPList()<br />
Dim ipe As IDPEntry = New IDPEntry()<br />
ipe.ProviderID = ProviderID<br />
ips.IDPEntries.Add(ipe)<br />
Dim scopeing As Scoping = New Scoping()<br />
scopeing.IDPList = ips<br />
scopeing.ProxyCount = 2<br />
authnRequest.Scoping = scopeing<br />
End If<br />
End If<br />
authnRequest.ProtocolBinding = SAMLIdentifiers.BindingURIs.HTTPPost<br />
authnRequest.AssertionConsumerServiceURL = ConfigurationManager.AppSettings("AssertionConsumerServiceURL")<br />
<br />
Dim authnRequestXml As XmlElement = authnRequest.ToXml()<br />
' Add signature<br />
SAMLMessageSignature.Generate(authnRequestXml, certificate.PrivateKey, certificate)<br />
Return authnRequestXml<br />
End Function<br />
</syntaxhighlight><br />
<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Realm_scoping&diff=12722KNF:Realm scoping2023-07-14T14:47:45Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
Sommige Identity Providers worden door meerdere scholen gebruikt, dit is met name het geval bij Elektronische Leeromgevingen. Vaak hebben deze applicaties een eigen WAYF ('''W'''here '''A'''re '''Y'''ou '''F'''rom) scherm waar de gebruiker zijn school moet selecteren. Om te voorkomen dat een gebruiker eerst zijn school op het WAYF scherm van Entree Federatie moet selecteren en vervolgens nogmaals op het WAYF scherm van de Identity Provider, kan er gebruik gemaakt worden van Realm scoping. Dit maakt het mogelijk om het tweede WAYF scherm over te slaan.<br />
<br />
Wanneer een Service Provider realm scoping meestuurt in het authenticatie verzoek naar Entree Federatie kunnen zelfs de WAYF schermen van zowel Entree Federatie als van de Identity Provider worden overgeslagen. <br />
<br />
'''LET OP:''' Om gebruik te kunnen maken van Realm scoping moet dit door Kennisnet geconfigureerd worden voor de Identity Provider. Neem hiervoor contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
==Realm==<br />
De realm staat achter het @ bij de uid van gebruikers. Dit bevat een waarde waarmee de school geïdentificeerd kan worden in het systeem van de Identity Provider. <br />
<br />
In het voortgezet onderwijs worden realms worden automatisch toegevoegd aan Entree Federatie nadat een school de controle koppeling heeft gedaan. Daarnaast kunnen realms ook handmatig door Kennisnet worden toegevoegd indien deze ontbreekt. <br />
Informatie over de realms van alle aangesloten scholen is beschikbaar via een JSON bestand.<br />
<br />
===Endpoint nieuwe platform===<br />
De live data van de WAYF is via een publiek JSON bestand beschikbaar via: <br />
* https://engine.entree.kennisnet.nl/sso/wayfsearch<br />
<br />
De lijst kan ook specifiek voor een Service Provider (of Relying Party) worden opgevraagd door het entityID (URL encoded) toe te voegen: <br />
* https://engine.entree.kennisnet.nl/sso/wayfsearch?sp-entity-id=www.kwaliteitscholen.app <br />
<br />
Voorbeeld:<br />
<syntaxhighlight lang="json"><br />
{<br />
"idp": {<br />
"friendly_name": "Magister",<br />
"entity_id": "https://saml.magister.net"<br />
},<br />
"institution": {<br />
"friendly_name": "Almende College",<br />
"location": "Silvolde",<br />
"brin": "14UM02"<br />
},<br />
"realm": "magis.almende14UM02"<br />
}<br />
</syntaxhighlight><br />
<br />
===Endpoint oude platform===<br />
De Entity ID's van aangesloten Identity Providers en de realms van aangesloten scholen zijn beschikbaar via:<br />
* https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode<br />
<br />
Voorbeeld:<br />
<syntaxhighlight lang="json"><br />
{<br />
"idp": {<br />
"friendly_name": "Magister",<br />
"asorgcode": "https://saml.magister.net"<br />
},<br />
"ko": {<br />
"friendly_name": "'s Gravendreef College",<br />
"city": "Den Haag",<br />
"brin": "31EW00"<br />
},<br />
"realm": "magis.gravendreef00XK03"<br />
}<br />
</syntaxhighlight><br />
<br />
==Scoping==<br />
Scoping is een onderdeel van de SAML 2.0 specificatie. Realm scoping is dan ook alleen beschikbaar voor Identity Providers met een koppeling op basis van het SAML 2.0 protocol.<br />
<br />
{{Info|Scoping biedt een Service Provider de mogelijkheid om een Identity Provider in een AuthnRequest mee te geven aan een proxy Identity Provider (in dit geval Entree Federatie). Hiermee geeft de Service Provider bij de proxy Identity Provider aan dat alleen de Identity Provider in het ''<Scoping>'' element gebruikt mag worden.}}<br />
<br />
In het geval van Realm scoping wordt dus een Realm in het ''<Scoping>'' element van een AuthnRequest meegegeven aan de proxy Identity Provider om aan te geven voor welke school de gebruiker moet worden geauthentiseerd.<br />
<br />
<syntaxhighlight lang="xml"><br />
<AuthnRequest> <br />
... <br />
<Scoping> <br />
<IDPList> <br />
<IDPEntry ProviderID="realm" /> <br />
</IDPList> <br />
<RequesterID>Entity ID SP</RequesterID><br />
... <br />
</Scoping> <br />
...<br />
</AuthnRequest><br />
</syntaxhighlight><br />
<br />
Het attribuut ''ProviderID'' van het ''IDPEntry'' element bevat de realm van de school waarvoor de gebruiker geauthentiseerd moet worden bij de Identity Provider.<br />
<br />
{{Warn| Het kan voorkomen dat het AuthnRequest geen ''<Scoping>'' element bevat. Dit gebeurt in het scenario wanneer de gebruiker geen school hoeft te selecteren op het WAYF scherm van Entree Federatie, omdat er een SSO notificatie cookie beschikbaar is (meer informatie over [[KNF:SSOnotification | SSO notificatie]]). <br/><br />
Als de proxy Identity Provider dan geen andere methode heeft om vast te stellen bij welke school de gebruiker hoort, dan zal deze alsnog een WAYF scherm moeten tonen.}}<br />
<br />
<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Realm_scoping&diff=12721KNF:Realm scoping2023-07-14T14:46:03Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
Sommige Identity Providers worden door meerdere scholen gebruikt, dit is met name het geval bij Elektronische Leeromgevingen. Vaak hebben deze applicaties een eigen WAYF ('''W'''here '''A'''re '''Y'''ou '''F'''rom) scherm waar de gebruiker zijn school moet selecteren. Om te voorkomen dat een gebruiker eerst zijn school op het WAYF scherm van Entree Federatie moet selecteren en vervolgens nogmaals op het WAYF scherm van de Identity Provider, kan er gebruik gemaakt worden van Realm scoping. Dit maakt het mogelijk om het tweede WAYF scherm over te slaan.<br />
<br />
Wanneer een Service Provider realm scoping meestuurt in het authenticatie verzoek naar Entree Federatie kunnen zelfs de WAYF schermen van zowel Entree Federatie als van de Identity Provider worden overgeslagen. <br />
<br />
'''LET OP:''' Om gebruik te kunnen maken van Realm scoping moet dit door Kennisnet geconfigureerd worden voor de Identity Provider. Neem hiervoor contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
==Realm==<br />
De realm staat achter het @ bij de uid van gebruikers. Dit bevat een waarde waarmee de school geïdentificeerd kan worden in het systeem van de Identity Provider. <br />
<br />
In het voortgezet onderwijs worden realms worden automatisch toegevoegd aan Entree Federatie nadat een school de controle koppeling heeft gedaan. Daarnaast kunnen realms ook handmatig door Kennisnet worden toegevoegd indien deze ontbreekt. <br />
Informatie over de realms van alle aangesloten scholen is beschikbaar via een JSON bestand.<br />
<br />
===Endpoint nieuwe platform===<br />
De live data van de WAYF is via een publiek JSON bestand beschikbaar via: <br />
* https://engine.entree.kennisnet.nl/sso/wayfsearch<br />
<br />
De lijst kan ook specifiek voor een Service Provider (of Relying Party) worden opgevraagd door het entityID (URL encoded) toe te voegen: <br />
* https://engine.entree.kennisnet.nl/sso/wayfsearch?sp-entity-id=www.kwaliteitscholen.app <br />
<br />
Voorbeeld:<br />
<syntaxhighlight lang="json"><br />
{"idp":{"friendly_name":"Magister","entity_id":"https://saml.magister.net"},"institution":{"friendly_name":"Almende College","location":"Silvolde","brin":"14UM02"},"realm":"magis.almende14UM02"}<br />
</syntaxhighlight><br />
<br />
===Endpoint oude platform===<br />
De Entity ID's van aangesloten Identity Providers en de realms van aangesloten scholen zijn beschikbaar via:<br />
* https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode<br />
<br />
Voorbeeld:<br />
<syntaxhighlight lang="json"><br />
{"idp":{"friendly_name":"Magister","asorgcode":"https://saml.magister.net"},"ko":{"friendly_name":"'s Gravendreef College","city":"Den Haag","brin":"31EW00"},"realm":"magis.gravendreef00XK03"}<br />
</syntaxhighlight><br />
<br />
==Scoping==<br />
Scoping is een onderdeel van de SAML 2.0 specificatie. Realm scoping is dan ook alleen beschikbaar voor Identity Providers met een koppeling op basis van het SAML 2.0 protocol.<br />
<br />
{{Info|Scoping biedt een Service Provider de mogelijkheid om een Identity Provider in een AuthnRequest mee te geven aan een proxy Identity Provider (in dit geval Entree Federatie). Hiermee geeft de Service Provider bij de proxy Identity Provider aan dat alleen de Identity Provider in het ''<Scoping>'' element gebruikt mag worden.}}<br />
<br />
In het geval van Realm scoping wordt dus een Realm in het ''<Scoping>'' element van een AuthnRequest meegegeven aan de proxy Identity Provider om aan te geven voor welke school de gebruiker moet worden geauthentiseerd.<br />
<br />
<syntaxhighlight lang="xml"><br />
<AuthnRequest> <br />
... <br />
<Scoping> <br />
<IDPList> <br />
<IDPEntry ProviderID="realm" /> <br />
</IDPList> <br />
<RequesterID>Entity ID SP</RequesterID><br />
... <br />
</Scoping> <br />
...<br />
</AuthnRequest><br />
</syntaxhighlight><br />
<br />
Het attribuut ''ProviderID'' van het ''IDPEntry'' element bevat de realm van de school waarvoor de gebruiker geauthentiseerd moet worden bij de Identity Provider.<br />
<br />
{{Warn| Het kan voorkomen dat het AuthnRequest geen ''<Scoping>'' element bevat. Dit gebeurt in het scenario wanneer de gebruiker geen school hoeft te selecteren op het WAYF scherm van Entree Federatie, omdat er een SSO notificatie cookie beschikbaar is (meer informatie over [[KNF:SSOnotification | SSO notificatie]]). <br/><br />
Als de proxy Identity Provider dan geen andere methode heeft om vast te stellen bij welke school de gebruiker hoort, dan zal deze alsnog een WAYF scherm moeten tonen.}}<br />
<br />
<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Single_Sign_On_query&diff=12709KNF:Single Sign On query2023-06-14T12:45:50Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
==Inleiding==<br />
De Single Sign On-query kan worden gebruikt door Service Provider om te detecteren of een gebruiker reeds een lopende SSO sessie via Entree Federatie heeft.<br />
<br />
Om te authentiseren, moet de gebruiker op de website op de knop "Inloggen" klikken, waardoor het authenticatieproces via Entree Federatie start. Als de gebruiker echter al een geldige Single Sign On-sessie met Entree Federatie heeft, zal het inloggen onmiddellijk zonder gebruikersinteractie (bijv. het invoeren van een gebruikersnaam en wachtwoord) gebeuren. Het klikken op de knop "Inloggen" is dus overbodig dat en daarom minder gebruiksvriendelijk.<br />
<br />
Om dit scenario te voorkomen, kan de Service Provider een detectiemechanisme implementeren dat automatisch gebruikers met een geldige SSO-sessie herkent. Dit kan worden bereikt met de Single Sign On-query. <br />
<br />
'''Let op:'''<br/><br />
Om misbruik van deze functionaliteit te voorkomen dient het domein opgenomen te worden in de whitelist van Entree Federatie.<br />
Neem daarom contact op met [https://support.kennisnet.org/ Kennisnet] als je gebruik wilt maken van SSO query.<br />
<br />
Zodra de vraag aan de Entree Federatie gesteld wordt, kunnen er drie antwoorden worden geven op de SSOQuery:<br />
;false<br />
:De gebruiker heeft geen SSO sessie en is voor zover bekend bij de Entree Federatie nergens ingelogd. Het is dus onbekend of de gebruiker wel of niet kan inloggen via Entree Federatie.<br />
;true<br />
:De gebruiker heeft een SSO sessie en kan inloggen zonder gebruikersinteractie<br />
;remote<br />
:De gebruiker heeft geen SSO sessie, maar er is wel een SSO notificatie cookie gevonden. De gebruiker is al ingelogd bij zijn eigen Identity Provider en kan hoogstwaarschijnlijk inloggen zonder gebruikersinteractie<br />
<br />
==Implementatie==<br />
De query bestaat uit een HTTP GET request met twee parameters: <br />
* response_url: deze parameter moet in de URL worden URL encoded/UTF-8<br />
* format: deze optionele parameter kan gebruikt worden om het antwoord in json format te ontvangen<br />
<br><br />
De volgende urls kunnen worden gebruikt:<br />
<br />
<br />
SSO Query endpoint:<br />
<syntaxhighlight lang="HTML"><br />
Productie: https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=<URL><br />
Staging: https://ssoquery.entree-s.kennisnet.nl/sso/ssoquery?response_url=<URL><br />
</syntaxhighlight><br />
<br />
===Voorbeeld===<br />
;De Service Provider stelt de vraag:<br />
:https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=https%3A%2F%2Ftestapplicatie.kennisnet.nl<br />
<br />
;Entree Federatie redirect naar de opgegeven response URL:<br />
:https://testapplicatie.kennisnet.nl?result=true<br />
<br />
<br />
===Voorbeeld implementatie===<br />
<syntaxhighlight lang="HTML"><br />
<html><br />
<script><br />
var ssoQuery= 'https://ssoquery.entree.kennisnet.nl/sso/ssoquery?response_url=https://domeinnaam&format=json';<br />
<br />
function isLoggedIn() {<br />
var xhr = new XMLHttpRequest();<br />
xhr.open("GET", ssoQuery, true);<br />
xhr.withCredentials = true;<br />
xhr.onreadystatechange = function () {<br />
if (xhr.readyState === 4) {<br />
if (xhr.status === 200 && JSON.parse(xhr.responseText)['result'] === 'true') {<br />
<!-- de gebruiker heeft reeds een lopende SSO sessie via Entree Federatie en kan direct worden ingelogd --><br />
window.location.href = ''; <!-- redirect naar de pagina waar uw applicatie het authenticatieverzoek naar Entree Federatie verstuurd --><br />
} else {<br />
<!-- de gebruiker heeft nog geen lopende SSO sessie via Entree Federatie en gebruikersinteractie is vereist --><br />
window.location.href = ''; <!-- redirect de gebruiker naar de inlogpagina van uw applicatie --><br />
}<br />
}<br />
};<br />
xhr.ontimeout = function () {<br />
<!-- redirect de gebruiker in geval van een timeout van de SSO query service naar de inlogpagina van uw applicatie<br />
window.location.href = ''; <!-- redirect de gebruiker naar de inlogpagina van uw applicatie --><br />
};<br />
xhr.send();<br />
}<br />
isLoggedIn();<br />
</script><br />
</html><br />
</syntaxhighlight><br />
<br />
<!-- <syntaxhighlight lang="php"><br />
<?php<br />
$query_url = 'https://ssoquery.aselect-s.entree.kennisnet.nl/openaselect/sso/ssoquery';<br />
$response_url = 'https://domeinnaam/ssoresult.php';<br />
<br />
$url = $query_url . '?response_url=' . urlencode($response_url);<br />
<br />
header('Location: ' . $url, 302);<br />
?><br />
</syntaxhighlight> --><br />
<br />
<!-- <br />
====SSO query result====<br />
<syntaxhighlight lang="php"><br />
<?php<br />
$result = array_key_exists('result', $_GET) ? $_GET['result'] : false;<br />
<br />
$resultValue = ($result === false ? '*none*' : $result);<br />
<br />
?><br />
<html><br />
<head><br />
<title>SSO query result</title><br />
</head><br />
<body><br />
<p>SSO query result is <?php print $resultValue; ?>.</p><br />
</body><br />
</html><br />
</syntaxhighlight><br />
--><br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Azure_AD_Premium_-_Identity_Provider&diff=12615KNF:Azure AD Premium - Identity Provider2022-11-28T12:26:20Z<p>Oostmeijer01: </p>
<hr />
<div>__TOC__<br />
Deze handleiding bevat een stappenplan om een '''Azure AD''' omgeving in te zetten als Identity Provider en aan Entree Federatie te koppelen.<br />
<br />
'''Let op:''' Deze handleiding is niet geschikt voor de Gratis en Basic edities van Azure AD<br />
<br />
Om aan de hand van deze handleiding een koppeling te kunnen realiseren moet aan de volgende voorwaarden worden voldaan:<br />
#U heeft een werkende Azure AD omgeving<br />
#U heeft ervaring met het beheren van een Azure AD omgeving<br />
#U heeft zich als Identity Provider bij Entree Federatie aangemeld. U kunt zich aanmelden door het invullen van het formulier op: https://www.kennisnet.nl/entree-federatie/aanmelden/<br />
<br />
{{Warn|Recent is de Azure AD omgeving gewijzigd, voor een handleiding verwijzen wij je naar de documentatie van Microsoft: https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/add-application-portal-setup-sso}}<br />
Azure is voortdurend in ontwikkeling. Als je opmerkingen of aanvullingen hebt ontvangen we die graag op implementaties@kennisnet.nl.<br />
<br />
==Stap 1: Configuratie van de koppeling==<br />
Voor het maken van een koppeling moet een app geconfigureerd worden die via het SAML protocol de communicatie tussen Azure AD en Entree Federatie verzorgt. <br />
<br />
#Ga naar https://admin.microsoft.com/<br />
#Klik op 'Show All' en vervolgens 'Azure active Directory'<br />
#*- Als alternatief ga direct naar https://aad.portal.azure.com/<br />
<br />
#Klik op 'Enterprise applications'<br />
#Klik op '+ New application'<br />
#Kies Non-Gallery Application<br />
#Geef als naam op Entree Federatie staging of productie<br />
#Kies na creëren 'Set up single sign on'<br />
#Kies SAML<br />
#Edit 'Basic SAML Configuration<br />
#Vul bij Identifier in :<br />
#*Staging: https://aselect-s.entree.kennisnet.nl<br />
#*Productie: https://aselect.entree.kennisnet.nl<br />
#Reply URL:<br />
#*Staging: https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
#*Productie: https://aselect.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
#Sign on URL:<br />
#*Staging: https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
#*Productie: https://aselect.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
# Ga nu naar het menu Single sign-on en kopieer de URL bij 'App Federation Metadata URL' stuur de URL naar [mailto:support@kennisnet.nl| Support Kennisnet]<br />
<br />
De koppeling is nu geconfigureerd, in het volgende deel worden de attributen die worden doorgegeven gedefinieerd.<br />
<br />
==Stap 2: Attributen definiëren==<br />
Entree Federatie maakt onderscheid tussen '''‘standaard attributen’''' en '''‘aanvullende attributen’'''. De standaard attributen dienen altijd te worden doorgegeven door de Azure AD applicatie. Een overzicht van de attributen is te vinden op [[KNF:Attributen_overzicht_voor_Identity_Providers|Attributen overzicht]].<br />
<br />
Sommige diensten die zijn aangesloten op Entree Federatie vragen naast de standaard attributen ook nog één of meerdere aanvullende attributen. In deze handleiding gaan we alleen uit van de standaard attributen, maar houd er rekening mee dat er meer attributen gedefinieerd moeten worden.<br />
<br />
{{Warn|Recent is de Azure AD omgeving gewijzigd, voor een handleiding verwijzen wij je naar de documentatie van Microsoft: https://learn.microsoft.com/en-us/azure/active-directory/develop/active-directory-saml-claims-customization}}<br />
<br />
<br />
# Open de tab ‘Attributes’.<br />
# Azure AD heeft de volgende attributen gedefinieerd:<br/>[[Bestand:AzureADIdP07.png|border|600px]]<br/><br/><br />
# Pas de attributen aan zodat ze gelijk zijn aan het onderstaande scherm.<br/>'''Let op:''' Er zijn twee waarden die moeten worden aangepast aan de eigen specifieke situatie.<br />
#* '''nlEduPersonHomeOrganizationId:''' in het voorbeeld heeft dit veld de vaste waarde ‘SKNS’. Dit moet het BRIN nummer zijn van de school waarvoor de koppeling wordt gemaakt.<br />
#* '''nlEduPersonHomeOrganization:''' in het voorbeeld heeft dit veld de vaste waarde ‘Kennisnet kantoor’. Dit moet de naam van de school zijn van de school waarvoor de koppeling wordt gemaakt.<br/>[[Bestand:AzureADIdP08.png|border|600px]]<br/><br/><br />
<br />
Een volledig overzicht van alle attributen is hier te vinden [[KNF:Attributen_overzicht_voor_Identity_Providers|Attributen overzicht]].<br />
<br />
De app is nu geconfigureerd en de attributen zijn gedefinieerd. Nadat Kennisnet de koppeling heeft geconfigureerd op basis van het metadata XML bestand kan de koppeling getest worden.<br />
<br />
===Attributen voor een groep===<br />
Het is mogelijk om bepaalde attributen door te geven aan de hand van groepen in de AD. Bijvoorbeeld voor het doorgeven van de EduPersonAffiliation (de rol van de gebruiker, 'student', 'employee' of 'staff'). <br />
<br />
Tijdens het configureren van een attribuut, staat eronder een drop down menu "Claim conditions" waarmee het attribuut voor een groep ingesteld kan worden.<br />
<br />
[[Bestand:ManageGroupClaim.png|border|600px]]<br />
<br />
==Signing==<br />
De signing moet aan staan voor zowel de assertion en de response.<br />
<br />
[[Bestand:AzureAD_signing.jpg|border|600px]]<br />
<br />
==Sessieduur==<br />
Azure AD levert standaard een Sessieduur met een onbeperkte levensduur, in tegenstelling tot AD FS, waarbij de session tokens na 8 uren verlopen. Dit kan tot inlogproblemen leiden bij aangesloten diensten, zoals Entree Federatie, die een eigen session timeout kennen. <br />
<br />
Met behulp van onderstaande documentatie van Microsoft is het mogelijk de "Aanmeldingsfrequentie van gebruikers" aan te passen. Voor Entree Federatie is het advies om de aanmeldfrequentie aan te passen naar 1 keer per 10 uur. <br />
https://docs.microsoft.com/nl-nl/azure/active-directory/conditional-access/howto-conditional-access-session-lifetime#policy-1-sign-in-frequency-control<br />
<br />
{{Warn|Conditional Access werkt alleen met Azure Premium P1 of Premium P2. Met andere versies is dit niet mogelijk. Houd er rekening mee dat een upgrade kosten met zich mee kan brengen.}}<br />
<br />
==Stap 3: Testen==<br />
Om de koppeling te testen kan gebruik gemaakt worden van de referentie Service Provider van Kennisnet. Na een succesvolle authenticatie via de Azure AD worden de aan de referentie SP doorgegeven attributen getoond.<br />
<br />
# Ga naar de Kennisnet referentie Service Provider.<br/>'''Staging:''' https://referentie-s.entree.kennisnet.nl/referentiesp<br/>'''Productie:''' https://referentie.entree.kennisnet.nl/referentiesp<br />
# Je wordt nu doorgestuurd naar het WAYF ('''W'''here '''A'''re '''Y'''ou '''F'''rom) scherm van Entree Federatie.<br />
# Zoek de school waarmee je wilt inloggen.<br/>[[Bestand:Wayf01.PNG|border|400px]]<br/><br/><br />
# Selecteer de school en klik op ‘Verder’. Je wordt nu doorgestuurd naar de Azure AD omgeving die bij de school hoort.<br />
# Log in op de Azure AD omgeving.<br />
# Hierna wordt je teruggestuurd naar de referentie Service Provider en krijg je een overzicht van de attributen die zijn ontvangen.<br/>[[Bestand:refsp.png|border|600px]]<br/><br/><br />
<br />
Mocht er in dit scenario iets fout gaan neem dan contact op met Kennisnet.</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Scoping&diff=12543KNF:Scoping2022-09-26T10:19:30Z<p>Oostmeijer01: /* Authenticatie verzoek met scoping */</p>
<hr />
<div><br />
Scoping maakt het mogelijk dat een Service Provider één of meerdere Identity Providers opgeeft in een authnRequest. Hiermee kan je als Service Provider bepalen welke Identity Providers ondersteund worden. <br />
<br />
Indien één Identity Provider wordt opgegeven, wordt het WAYF scherm van Entree Federatie overgeslagen. Deze functie is vooral handig indien je voor scholen een aparte omgeving / subdomein hebt. <br />
<br />
<br />
==Authenticatie verzoek met scoping==<br />
Authenticatie verzoek met scoping van de Service Provider naar Entree Federatie.<br />
Het authenticatie verzoek komt in dit geval van ''<nowiki>https://bestelshop</nowiki>''.<br />
De scoping wordt gedaan op ''<nowiki>https://mijn-idp</nowiki>''.<br />
<br />
<syntaxhighlight lang="xml"><br />
<AuthnRequest Version="2.0"<br />
IssueInstant="2019-12-06T10:00:02Z"<br />
Destination="https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web"<br />
AssertionConsumerServiceURL="https://bestelshop/saml2-acs.php"<br />
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"><br />
<Issuer>https://bestelshop</Issuer><br />
<NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/><br />
<Scoping><br />
<IDPList><br />
<IDPEntry ProviderID="https://mijn-idp" /><br />
</IDPList><br />
</Scoping><br />
</AuthnRequest><br />
<br />
</syntaxhighlight><br />
<br />
==OIDC Authenticatie verzoek met login_hint==<br />
OIDC Authenticatie verzoek met login_hint van de Service Provider naar Entree Federatie.<br />
<br />
Met de parameter login_hint kan met een OIDC koppeling het WAYF scherm worden overgeslagen. <br />
<br />
&login_hint=https://mijn-idp<br />
<br />
<syntaxhighlight lang="xml"><br />
<br />
https://oidcng.entree-s.kennisnet.nl/oidc/authorize?client_id=bestelshop.nl&redirect_uri=https%3A%2F%2Fbestelshop.nl&response_type=code&grant_types=%5B%22implicit%22%5D&scopes=%5B%22openid%22,%22profile%22,%22email%22%5D&login_hint=https%3A%2F%2Fmijn-idp<br />
<br />
</syntaxhighlight><br />
<br />
==Realm scoping==<br />
Kennisnet heeft in juli 2020 in samenwerking met een aantal ketenpartijen realm scoping geïntroduceerd. Met realm scoping kan een Service Provider in plaats van het entityID van een Identity Provider, een realm meegeven in het authnRequest. Door de realm mee te geven wordt niet alleen het WAYF scherm van Entree Federatie overgeslagen, maar ook het WAYF scherm van Identity Providers zoals Magister, SOMtoday, Itslearning, etc. <br />
<br />
<!-- De volledige werking van scoping staat uitgelegd in dit document, t.b.v. de keten start schooljaar: [[Media:realm-scoping.pdf]] --><br />
===Entity ID en Realms===<br />
De Entity ID's van aangesloten Identity Providers en de realms van aangesloten scholen zijn beschikbaar via:<br />
https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode<br />
<br />
==Scoping met SimpleSAMLphp==<br />
Meer informatie over het gebruik van scoping in SimpleSAMLphp staat op de website:<br />
<br />
https://simplesamlphp.org/docs/stable/simplesamlphp-scoping<br />
<br />
==Scoping met componentspace==<br />
Toevoegen van scoping aan componentspace AuthnRequest()<br />
<br />
<syntaxhighlight lang="java"><br />
<br />
//Create the AuthnRequest//<br />
Private Function CreateAuthnRequest(certificate As X509Certificate2, ssoURL As String, UseScoping as Boolean, Brin as String) As XmlElement<br />
<br />
// Define EntityID//<br />
Dim entityId As String = ConfigurationManager.AppSettings("Entree.EntityID")<br />
Dim authnRequest As New AuthnRequest()<br />
authnRequest.Destination = ssoURL<br />
authnRequest.Issuer = New Issuer(entityId)<br />
authnRequest.ForceAuthn = False<br />
authnRequest.NameIDPolicy = New NameIDPolicy(Nothing, Nothing, True)<br />
<br />
//Gebruik scoping om school selectie scherm over te slaan?//<br />
If UseScoping = True Then<br />
<br />
//download json van kennisnet waar de ProviderIDs in zitten//<br />
Dim wc As New WebClient()<br />
Dim json As String = wc.DownloadString(“https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode=” & entityId)<br />
Dim wayfsearch As JArray = JArray.Parse(json)<br />
Dim ProviderID As String = ""<br />
For Each w In wayfsearch.Children<br />
//zoek voor het juiste providerID bij de opgegeven BRIN//<br />
If w("ko")("brin").ToString().ToLower() = Brin.ToLower() Then<br />
ProviderID = w("idp")("asorgcode").ToString()<br />
End If<br />
Next<br />
<br />
If String.IsNullOrEmpty(ProviderID) = False Then 'ProviderID gevonden<br />
Dim ips As IDPList = New IDPList()<br />
Dim ipe As IDPEntry = New IDPEntry()<br />
ipe.ProviderID = ProviderID<br />
ips.IDPEntries.Add(ipe)<br />
Dim scopeing As Scoping = New Scoping()<br />
scopeing.IDPList = ips<br />
scopeing.ProxyCount = 2<br />
authnRequest.Scoping = scopeing<br />
End If<br />
End If<br />
authnRequest.ProtocolBinding = SAMLIdentifiers.BindingURIs.HTTPPost<br />
authnRequest.AssertionConsumerServiceURL = ConfigurationManager.AppSettings("AssertionConsumerServiceURL")<br />
<br />
Dim authnRequestXml As XmlElement = authnRequest.ToXml()<br />
' Add signature<br />
SAMLMessageSignature.Generate(authnRequestXml, certificate.PrivateKey, certificate)<br />
Return authnRequestXml<br />
End Function<br />
</syntaxhighlight><br />
<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Wijzigingen&diff=12539KNF:Wijzigingen2022-09-21T07:51:11Z<p>Oostmeijer01: /* Wijzigen SAML metadata */</p>
<hr />
<div><br />
===Wijzigingen nieuwe platform===<br />
====Wijzigen SAML metadata====<br />
Op het nieuwe platform wordt de SAML metadata van Service Provider en Identity Providers '''niet''' automatisch ververst.<br />
Neem daarom vooraf contact op met Kennisnet wanneer de SAML metadata van de koppeling gaat wijzigen.<br />
<br />
====SAML signing====<br />
Entree Federatie maakt gebruik van self signing certificaten voor XML signing. XML signing is een onderdeel van het SAML protocol.<br />
Entree Federatie gaat op het nieuwe platform alle berichten ondertekenen met een SHA-2 certificaat (op het oude platform is dat SHA-1).<br />
<br />
====Realm scoping====<br />
Bij scoping vraagt de SP aan Entree Federatie om in te loggen met een bepaalde IdP. Indien een SP een onbekende realm of EntityID meestuurt, krijgt de gebruiker op het nieuwe platform een foutmelding. <br />
<br />
Op het oude platform krijgt de gebruiker het WAYF.<br />
<br />
====Signed assertions====<br />
* Signed assertions: Op het nieuwe platform is de attribute statement binnen het SAML response signed. Op het oude platform was dit niet zo.<br />
* Signed response: De volledige authenticatie response is signed. Dit is standaard en kan op verzoek voor test-koppelingen worden uitgezet.<br />
<br />
====Attributen====<br />
Attributen worden doorgestuurd zoals ontvangen door het nieuwe platform. Als deze leeg worden opgestuurd naar het nieuwe platform dan worden de attributen ook leeg doorgestuurd naar de SP.<br />
<br />
Op het oude platform worden lege attributen niet doorgestuurd.<br />
<br />
===Wijzigingen===<br />
* 01-09-2020: ELO protocol uitgefaseerd voor Identity Providers<br />
* 01-09-2020: Aselect protocol uitgefaseerd voor Service Providers<br />
* 01-09-2020: uitschakelen digicodes.<br />
* 24-02-2020: TLS1.1 is uigeschakeld. https://developers.wiki.kennisnet.nl/index.php?title=KNF:TLS1.2<br />
<br />
====SameSite Cookie====<br />
Vanaf Chrome versie 80 wijziging in SameSite cookie https://www.chromium.org/updates/same-site<br />
<br />
Entree Federatie heeft een aanpassing gedaan, zodat deze cookies nog steeds gebruikt kunnen worden.<br />
<br />
Hier staat een overzicht van https://www.chromium.org/updates/same-site/incompatible-clients</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Wijzigingen&diff=12538KNF:Wijzigingen2022-09-21T07:50:58Z<p>Oostmeijer01: /* Vervangen SAML metadata= */</p>
<hr />
<div><br />
===Wijzigingen nieuwe platform===<br />
====Wijzigen SAML metadata====<br />
Op het nieuwe platform wordt de SAML metadata van Service Provider en Identity Providers '''niet''' meer automatisch ververst.<br />
Neem daarom vooraf contact op met Kennisnet wanneer de SAML metadata van de koppeling gaat wijzigen.<br />
<br />
====SAML signing====<br />
Entree Federatie maakt gebruik van self signing certificaten voor XML signing. XML signing is een onderdeel van het SAML protocol.<br />
Entree Federatie gaat op het nieuwe platform alle berichten ondertekenen met een SHA-2 certificaat (op het oude platform is dat SHA-1).<br />
<br />
====Realm scoping====<br />
Bij scoping vraagt de SP aan Entree Federatie om in te loggen met een bepaalde IdP. Indien een SP een onbekende realm of EntityID meestuurt, krijgt de gebruiker op het nieuwe platform een foutmelding. <br />
<br />
Op het oude platform krijgt de gebruiker het WAYF.<br />
<br />
====Signed assertions====<br />
* Signed assertions: Op het nieuwe platform is de attribute statement binnen het SAML response signed. Op het oude platform was dit niet zo.<br />
* Signed response: De volledige authenticatie response is signed. Dit is standaard en kan op verzoek voor test-koppelingen worden uitgezet.<br />
<br />
====Attributen====<br />
Attributen worden doorgestuurd zoals ontvangen door het nieuwe platform. Als deze leeg worden opgestuurd naar het nieuwe platform dan worden de attributen ook leeg doorgestuurd naar de SP.<br />
<br />
Op het oude platform worden lege attributen niet doorgestuurd.<br />
<br />
===Wijzigingen===<br />
* 01-09-2020: ELO protocol uitgefaseerd voor Identity Providers<br />
* 01-09-2020: Aselect protocol uitgefaseerd voor Service Providers<br />
* 01-09-2020: uitschakelen digicodes.<br />
* 24-02-2020: TLS1.1 is uigeschakeld. https://developers.wiki.kennisnet.nl/index.php?title=KNF:TLS1.2<br />
<br />
====SameSite Cookie====<br />
Vanaf Chrome versie 80 wijziging in SameSite cookie https://www.chromium.org/updates/same-site<br />
<br />
Entree Federatie heeft een aanpassing gedaan, zodat deze cookies nog steeds gebruikt kunnen worden.<br />
<br />
Hier staat een overzicht van https://www.chromium.org/updates/same-site/incompatible-clients</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Wijzigingen&diff=12537KNF:Wijzigingen2022-09-21T07:48:56Z<p>Oostmeijer01: </p>
<hr />
<div><br />
===Wijzigingen nieuwe platform===<br />
====Vervangen SAML metadata=====<br />
Op het nieuwe platform wordt de SAML metadata van Service Provider en Identity Providers '''niet''' meer automatisch ververst.<br />
Neem daarom vooraf contact op met Kennisnet wanneer de SAML metadata van de koppeling gaat wijzigen.<br />
<br />
====SAML signing====<br />
Entree Federatie maakt gebruik van self signing certificaten voor XML signing. XML signing is een onderdeel van het SAML protocol.<br />
Entree Federatie gaat op het nieuwe platform alle berichten ondertekenen met een SHA-2 certificaat (op het oude platform is dat SHA-1).<br />
<br />
====Realm scoping====<br />
Bij scoping vraagt de SP aan Entree Federatie om in te loggen met een bepaalde IdP. Indien een SP een onbekende realm of EntityID meestuurt, krijgt de gebruiker op het nieuwe platform een foutmelding. <br />
<br />
Op het oude platform krijgt de gebruiker het WAYF.<br />
<br />
====Signed assertions====<br />
* Signed assertions: Op het nieuwe platform is de attribute statement binnen het SAML response signed. Op het oude platform was dit niet zo.<br />
* Signed response: De volledige authenticatie response is signed. Dit is standaard en kan op verzoek voor test-koppelingen worden uitgezet.<br />
<br />
====Attributen====<br />
Attributen worden doorgestuurd zoals ontvangen door het nieuwe platform. Als deze leeg worden opgestuurd naar het nieuwe platform dan worden de attributen ook leeg doorgestuurd naar de SP.<br />
<br />
Op het oude platform worden lege attributen niet doorgestuurd.<br />
<br />
===Wijzigingen===<br />
* 01-09-2020: ELO protocol uitgefaseerd voor Identity Providers<br />
* 01-09-2020: Aselect protocol uitgefaseerd voor Service Providers<br />
* 01-09-2020: uitschakelen digicodes.<br />
* 24-02-2020: TLS1.1 is uigeschakeld. https://developers.wiki.kennisnet.nl/index.php?title=KNF:TLS1.2<br />
<br />
====SameSite Cookie====<br />
Vanaf Chrome versie 80 wijziging in SameSite cookie https://www.chromium.org/updates/same-site<br />
<br />
Entree Federatie heeft een aanpassing gedaan, zodat deze cookies nog steeds gebruikt kunnen worden.<br />
<br />
Hier staat een overzicht van https://www.chromium.org/updates/same-site/incompatible-clients</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SimpleSAMLphp-sp&diff=12536KNF:SimpleSAMLphp-sp2022-09-20T10:04:24Z<p>Oostmeijer01: /* Aanpassen authsources.php */</p>
<hr />
<div>{{Talen}}<br />
<br/><br />
__TOC__<br />
<br />
Deze handleiding bevat een stappenplan om SimpleSAMLphp in te zetten als Service Provider Provider en aan Entree Federatie te koppelen. <br />
<br />
==Stap 1: Installatie==<br />
Voor de installatie kunnen de stappen op de website van SimpleSAMLphp gevolgd worden:<br />
# [http://simplesamlphp.org/docs/stable/simplesamlphp-install Installatie documentatie SimpleSAMLphp]<br />
# [http://simplesamlphp.org/docs/stable/simplesamlphp-sp Quickstart document SimpleSAMLphp]<br />
<br />
<br />
==Stap 2: Configuratie==<br />
Voor het realiseren van een koppeling met Entree Federatie zijn een aantal aanpassingen in de configuratie van SimpleSAMLphp nodig.<br><br />
<br />
===Aanpassen authsources.php===<br />
'''LET OP!''' De aanpassingen in de voorbeeld code zijn toevoegingen en/of wijzigingen. De php tags zijn niet meegenomen.<br/><br />
De aanpassingen staan beschreven in commentaar.<br />
<syntaxhighlight lang="php"><br />
// default-sp kan worden aangepast naar een eigen te kiezen naam van de dienst<br />
// noodzakelijk bij meerdere app achter deze koppeling.<br />
<br />
'default-sp' => array(<br />
'saml:SP',<br />
<br />
// Voer een entityID in voor uw applicatie (meestal unieke url van de dienst) <br />
'entityID' => 'https://domainname.com',<br />
<br />
// Certificaat gegenereerd in stap 1.1 uit de Quickstart<br />
// pad is te configureren in config.php bij 'certdir' => 'cert/'; map is nog niet aangemaakt door installer.<br />
'privatekey' => 'saml.pem',<br />
'certificate' => 'saml.crt',<br />
<br />
// Standaard keuzemenu voor Identity Provider uitzetten en direct naar Entree Federatie wijzen<br />
// Onderstaande configuratie is voor staging. <br />
// Bij livegang hoeft alleen deze waarde aangepast te worden naar https://engine.entree.kennisnet.nl/authentication/idp/metadata<br />
'idp' => 'https://engine.entree-s.kennisnet.nl/authentication/idp/metadata', // staging/test url<br />
// 'idp' => 'https://engine.entree.kennisnet.nl/authentication/idp/metadata', // productie url<br />
<br />
// Format van de identifier van het onderwerp van authenticatie<br />
// Voor Entree Federatie is het vereist dat dit 'unspecified' is<br />
'NameIDPolicy' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',<br />
'attributes.NameFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified',<br />
<br />
// Optionele configuratie voor-selectie aan te spreken Identity Provider/school<br />
// 'IDPList' => array( 'entityidofidp', ),<br />
// 'ProxyCount' => 1,<br />
),<br />
</syntaxhighlight><br />
<br />
{{Warn|Met ingang van SimpleSAMLphp versie 1.15 is 'NameIDFormat' vervangen door 'NameIDPolicy'. Het gebruik van 'NameIDFormat' wordt niet meer ondersteunt.}}<br />
<br />
<br />
'''LET OP:''' Entree Federatie ververst elke 4 uur de metadata. Een wijziging van het entityID wordt echter niet automatisch opgepakt. Als je op een later tijdstip het entityID in de metadata wijzigt neem dan contact op met de servicedesk van Kennisnet: https://support.kennisnet.org/<br />
<br />
===Aanpassen config.php===<br />
'''LET OP!''' De aanpassingen in de voorbeeld code zijn toevoegingen en/of wijzigingen. De php tags zijn niet meegenomen.<br/><br />
De aanpassingen staan beschreven in commentaar.<br />
<syntaxhighlight lang="php"><br />
// Het pad waarop simpleSAMLphp bereikbaar is. Dit moet overeenkomen met de Alias locatie in de webserver configuratie.<br />
'baseurlpath' => 'simplesaml/',<br />
<br />
// Pas het admin wachtwoord voor de webinterface aan!!!<br />
'auth.adminpassword' => '!123456!',<br />
<br />
// Voer de juiste contactgegevens in.<br />
'technicalcontact_name' => 'Technisch contactpersoon',<br />
'technicalcontact_email' => 'na@example.org',<br />
</syntaxhighlight><br />
<br />
===Automatisch metadata verversen instellen===<br />
Het ophalen van de metadata van Entree Federatie dient automatisch te gebeuren, zodat de koppeling blijft werken wanneer deze metadata wordt gewijzigd (bijvoorbeeld door een certificaatwijziging).<br />
De handleiding voor het instellen van het automatisch ophalen van de metadata staat beschreven op [[KNF:SimpleSAMLphp-metadata|'''deze pagina''']].<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=SID:Kwalificatie-tech&diff=12440SID:Kwalificatie-tech2022-06-09T13:57:25Z<p>Oostmeijer01: /* Test 7: substitutie */</p>
<hr />
<div>__TOC__<br />
<br />
Dit document beschrijft de technische kwalificatietest voor aansluiting van een systeem op de Nummervoorziening. In dit deel wordt geverifieerd of het aansluitende systeem op de juiste wijze de API van de Nummervoorziening aanroept, en of de foutsituaties die voorkomen correct worden afgehandeld.<br />
<br />
De kwalificatietest wordt gerund op de kwalificatieomgeving. Deze test wordt doorlopen door een verantwoordelijke van het aansluitende systeem samen met een medewerker van Kennisnet. De verantwoordelijke van het aansluitende systeem voert de gevraagde tests uit volgens de voorschriften. Kennisnet beoordeelt of de test volgens de beschrijving is uitgevoerd en of het antwoord voldoet aan de gestelde eis. <br />
<br />
{{Info|Het endpoint van de service op de kwalificatieomgeving is {{SID:URL_kwalificatieomgeving}}}}<br />
<br />
Om de kwalificatie omgeving aan te kunnen roepen moet het aansluitende systeem een PKI Overheid certificaat gebruiken. Het SERIALNUMBER veld in het subject van dit certificaat wordt gebruikt om het aanroepende systeem te autoriseren. Neem voor het autoriseren van het aansluitende systeem contact op met Kennisnet.<br />
<br />
De service tests zijn beschikbaar als [[Media:NV-Kwalificatie-testsuite.zip|SOAPUI project]]. In dit project is een testsuite opgenomen. Hierin is geïllustreerd welke requests er van het systeem worden verwacht, en welke responses de Nummervoorziening daarop geeft.<br />
<br />
{{Warn|SOAPUI heeft vanaf versie 5.4.0 de juiste SSL ondersteuning om met de Nummervoorziening te communiceren.}} <br />
<br />
'''Let op:'''<br/><br />
Deze testen hebben tot doel het verkrijgen van zekerheid dat het gebruik van de Nummervoorziening niet tot operationele problemen leidt in het normale dagelijkse gebruik op school. In de test worden doelbewust manipulaties gevraagd die tot uitzonderingen leiden. <br/><br />
'''Als een manipulatie niet door normale gebruikers en beheerders van het aansluitende systeem kunnen worden uitgevoerd, bijvoorbeeld omdat het systeem hiertegen beschermd is, dan geldt de test op dit punt als geslaagd.'''<br />
<br />
== Test 1: ping ==<br />
{| class="wikitable"<br />
| '''service''' || pingRequest<br />
|-<br />
| '''service''' || retrieveChains (optioneel)<br />
|}<br />
In deze test wordt de connectiviteit, certificaat-verwerking en WS-Addressing getest. Als het aansluitende systeem de ping service niet ondersteunt, voer deze test dan uit met de service retrieveChains.<br />
<br />
<br />
'''Request 1: ping'''<br />
# Stuur een ping request.<br />
<br />
'''Response 1'''<br />
# Stel vast dat het antwoord geen SOAP Fault is.<br />
# Stel vast dat het antwoord de huidige tijd bevat in het veld Envelope/Body/pingResponse/systemTime (bij gebruik van retrieveChains, stel vast dat de reponse een geldige chainId bevat).<br />
<br />
<br />
'''Request 2: geen OIN'''<br />
# Stuur een ping request. Pas de WS-A From: header zo aan dat deze alleen ''<nowiki>http://www.w3.org/2005/08/addressing/anonymous</nowiki>'' bevat, en dus geen geldig OIN.<br />
<br />
'''Response 2'''<br />
# Stel vast dat het antwoord een SOAP Fault is.<br />
# Stel vast dat de foutmelding is:<br/>''Technische fout: het request bevat geen (geldige) From header.''<br />
<br />
<br />
'''Request 3: onbekend BRIN nummer'''<br />
# Stuur een ping request. Pas de instelling van het systeem aan zodat er een WS-A From header wordt gestuurd met een onbekend BRIN nummer, bijvoorbeeld 99XX. De volledige header ziet er dan uit als:<br/>''<nowiki>http://www.w3.org/2005/08/addressing/anonymous?oin=0000000700099XX00000</nowiki>''<br />
<br />
'''Response 3'''<br />
# Stel vast dat het antwoord een SOAP Fault is.<br />
# Stel vast dat de foutmelding is:<br/>''Uw Bevoegd Gezag is nog niet geautoriseerd voor het gebruik van de Nummervoorziening.''<br />
# Stel vast dat melding die de eindgebruiker hierover ziet in het aansluitende systeem helder en duidelijk is.<br />
<br />
== Test 2: ophalen stampseudoniem voor leerlingen ==<br />
{| class="wikitable"<br />
| '''service''' || retrieveStampseudonym<br />
|}<br />
Deze test valideert dat de functie van het aanmaken en retourneren van stampseudoniemen op de juiste manier wordt gebruikt door het aansluitende systeem.<br/><br />
Gebruik voor deze test, PGN’s uit de dataset van de juiste sector en omgeving.<br/><br />
'''Kwalificatie omgeving:'''<br />
* [[SID:Testset_PO_kwalificatie_omgeving|Testset PO - leerlingen]]<br />
* [[SID:Testset_VO_kwalificatie_omgeving|Testset VO - leerlingen]]<br />
* [[SID:Testset_MBO_kwalificatie_omgeving|Testset MBO - leerlingen]]<br />
<br />
'''Genereer gehashte PGN's.'''<br/><br />
Parameters voor het genereren van de gehashte PGNs zijn:<br />
* N = 131072<br />
* r = 8<br />
* p = 4<br />
* salt = rktYml0MIp9TC9u6Ny6uqw==<br />
{{Warn|De hier genoemde SALT is voor de sandbox omgeving. De SALT voor de kwalificatie omgeving zal door Kennisnet verstrekt worden wanneer men begint aan het proces kwalificeren.}}<br />
<!-- Voor testcases kun je gebruik maken van code zoals bijvoorbeeld:<br />
<syntaxhighlight lang="java"><br />
String[] PGNs = { "139227672", "170612673", "220500186", "307702522", "479694217", "543997911", "586613675", "644153258", "666614192", "702289905", "854868604", "992795862"};<br />
</syntaxhighlight> --><br />
<br />
'''Haal voor hPGN’s het stampseudoniem op.'''<br/><br />
Gebruik voor het opvragen van elk stampseudoniem een eigen, onafhankelijk request.<br />
# Ga na dat de response geen SOAP fault is.<br />
# Ga na dat het antwoord het correcte stampseudoniem bevat<br />
<br />
== Test 3: ophalen ECK iD voor leerlingen == <br />
{| class="wikitable"<br />
| '''service''' || retrieveEckId<br />
|}<br />
Deze test valideert dat de functie van het aanmaken en retourneren van ECK iD's op de juiste manier wordt gebruikt door het aansluitende systeem.<br/><br />
Gebruik voor deze test, stampseudoniemen uit de dataset van de juiste sector en omgeving.<br/><br />
'''Kwalificatie omgeving:'''<br />
* [[SID:Testset_PO_kwalificatie_omgeving|Testset PO - leerlingen]]<br />
* [[SID:Testset_VO_kwalificatie_omgeving|Testset VO - leerlingen]]<br />
* [[SID:Testset_MBO_kwalificatie_omgeving|Testset MBO - leerlingen]]<br />
<br />
'''Haal voor stampseudoniemen het ECK iD op.'''<br/><br />
Gebruik voor het genereren van elk ECK iD een eigen, onafhankelijk request.<br />
# Ga na dat de response geen SOAP fault is.<br />
# Ga na dat het antwoord het correcte ECK iD bevat<br />
<br />
== Test 4: ophalen stampseudoniem voor docenten ==<br />
{| class="wikitable"<br />
| '''service''' || retrieveStampseudonym<br />
|}<br />
Deze test valideert dat de functie van het aanmaken en retourneren van stampseudoniemen voor docenten op de juiste manier wordt gebruikt door het aansluitende systeem.<br/><br />
Gebruik voor deze test, identifiers uit de dataset van de juiste sector en omgeving.<br/><br />
'''Kwalificatie omgeving:'''<br />
* [[SID:Testset_PO_kwalificatie_omgeving#Docenten|Testset PO - docenten]]<br />
* [[SID:Testset_VO_kwalificatie_omgeving#Docenten|Testset VO - docenten]]<br />
* [[SID:Testset_MBO_kwalificatie_omgeving#Docenten|Testset MBO - docenten]]<br />
<br/><br />
'''Genereer gehashte PGN's.'''<br/><br />
Parameters voor het genereren van de gehashte PGN's zijn:<br />
* N = 131072<br />
* r = 8<br />
* p = 4<br />
* salt = rktYml0MIp9TC9u6Ny6uqw==<br />
{{Warn|De hier genoemde SALT is voor de sandbox omgeving. De SALT voor de kwalificatie omgeving zal door Kennisnet verstrekt worden wanneer men begint aan het proces kwalificeren.}}<br />
<br />
'''Haal voor hPGN’s het stampseudoniem op.'''<br/><br />
Gebruik voor het opvragen van elk stampseudoniem een eigen, onafhankelijk request.<br />
# Ga na dat de response geen SOAP fault is.<br />
# Ga na dat het antwoord het correcte stampseudoniem bevat<br />
<br />
== Test 5: ophalen ECK iD voor docenten == <br />
{| class="wikitable"<br />
| '''service''' || retrieveEckId<br />
|}<br />
Deze test valideert dat de functie van het aanmaken en retourneren van ECK iD's, op de juiste manier wordt gebruikt door het aansluitende systeem.<br/><br />
Gebruik voor deze test, stampseudoniemen uit de dataset van de juiste sector en omgeving.<br/><br />
'''Kwalificatie omgeving:'''<br />
* [[SID:Testset_PO_kwalificatie_omgeving#Docenten|Testset PO - docenten]]<br />
* [[SID:Testset_VO_kwalificatie_omgeving#Docenten|Testset VO - docenten]]<br />
* [[SID:Testset_MBO_kwalificatie_omgeving#Docenten|Testset MBO - docenten]]<br />
<br />
'''Haal voor stampseudoniemen het ECK iD op.'''<br/><br />
Gebruik voor het genereren van elk ECK iD een eigen, onafhankelijk request.<br />
# Ga na dat de response geen SOAP fault is.<br />
# Ga na dat het antwoord het correcte ECK iD bevat<br />
<br />
== Test 6: randgevallen ==<br />
<br />
Onderstaande tests gaan er van uit dat de waarden die het systeem in het request opneemt, kunnen worden aangepast door de gebruiker of beheerder van het systeem. Wanneer dat niet het geval is, dan kunnen deze tests als geslaagd beschouwd worden.<br />
<br />
<br />
'''Request 36: leeg hPGN'''<br />
<br />
# Haal een stampseudoniem op voor een leeg hPGN.<br />
<br />
'''Response 36'''<br />
<br />
# Stel vast dat het response een SOAP fault is<br />
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Leeg HPgn object ontvangen''<br />
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is<br />
<br />
<br />
'''Request 37: leeg stampseudoniem'''<br />
<br />
# Haal een ECK iD op voor een leeg stampseudoniem.<br />
<br />
'''Response 37'''<br />
<br />
# Stel vast dat het response een SOAP fault is<br />
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Leeg stampseudoniem ontvangen''<br />
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is<br />
<br />
<br />
'''Request 38: te kort stampseudoniem'''<br />
<br />
# Haal een ECK iD op en gebruik een stampseudoniem dat één positie te kort is (d.w.z. verwijder een karakter).<br />
<br />
'''Response 38'''<br />
<br />
# Stel vast dat het response een SOAP Fault is<br />
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Stampseudoniem is te kort. Een tekenreeks van minimaal 128 karakters werd verwacht.''<br />
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is<br />
<br />
<br />
'''Request 39: ongeldige sector'''<br />
<br />
# Haal een ECK iD op. Gebruik in het request ''ECK'' als keten en een ongeldige sector, dus niet ''PO'', ''VO'' of ''MBO''.<br />
<br />
'''Response 39'''<br />
<br />
# Stel vast dat het response een SOAP Fault is<br />
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Ontvangen waarde voor sector is onbekend.''<br />
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is<br />
<br />
<br />
'''Request 40: ongeldige keten'''<br />
<br />
# Haal een ECK iD op. Gebruik in het request een geldige sector (''PO'', ''VO'' of ''MBO'') en een ongeldige keten, dus niet ''ECK''.<br />
<br />
'''Response 40'''<br />
<br />
# Stel vast dat het response een SOAP Fault is<br />
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Ontvangen waarde voor keten is onbekend.''<br />
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is<br />
<br />
== Test 7: substitutie ==<br />
{| class="wikitable"<br />
| '''service''' || replaceStampseudonym<br />
|}<br />
<br />
Deze test gaat na of substituties goed worden afgehandeld. Er worden geen voorbeelden van PGN's genoemd want deze worden geblokkeerd na het eerste gebruik. Om deze blokkade op te heffen kan contact opgenomen worden met Kennisnet. Neem zelf vijf PGNs en doe de test daarmee.<br/><br />
Gebruik voor deze test, PGN’s uit de dataset van de juiste sector en omgeving.<br/><br />
'''Kwalificatie omgeving:'''<br />
* [[SID:Testset_PO_kwalificatie_omgeving|Testset PO - leerlingen]]<br />
* [[SID:Testset_VO_kwalificatie_omgeving|Testset VO - leerlingen]]<br />
* [[SID:Testset_MBO_kwalificatie_omgeving|Testset MBO - leerlingen]]<br />
<br />
'''Substitutie 1'''<br/><br />
Deze test valideert of een substitutie goed wordt afgehandeld. Tevens wordt gevalideerd of de foutmelding goed wordt afgehandeld door het systeem als het oude PGN wordt hergebruikt.<br />
<br />
# Neem de eerste twee PGN's, noem het eerste PGN ''oud PGN'' en het tweede PGN ''nieuw PGN''.<br />
# Haal een stampseudoniem op voor ''oud PGN''. Onthoud het stampseudoniem als ''oud stampseudoniem''.<br />
# Haal een stampseudoniem op voor ''nieuw PGN''. Onthoud het stampseudoniem als ''nieuw stampseudoniem''.<br />
# Roep de substitutieservice aan om ''oud PGN'' te vervangen door ''nieuw PGN''.<br />
# Haal een stampseudoniem opnieuw op voor ''oud PGN''.<br />
## Stel vast dat de response een SOAP Fault is.<br />
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''De aangeleverde HPgn is geblokkeerd''<br />
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.<br />
#Haal een stampseudoniem opnieuw op voor ''nieuw PGN''.<br />
## Stel vast dat de response geen SOAP Fault is.<br />
## Stel vast dat het geleverde stampseudoniem in het response gelijk is aan ''oud stampseudoniem'' uit stap 2, en '''niet''' aan ''nieuw stampseudoniem'' uit stap 3.<br />
<br />
'''Substitutie 2'''<br/><br />
Deze test valideert dat een substitutie niet voor een tweede keer naar eenzelfde nieuwe PGN kan worden uitgevoerd. Deze situatie komt voor wanneer aan twee leerlingen (die niet op dezelfde school hoeven te zitten) hetzelfde nieuwe PGN krijgen. <br />
<br />
# Neem de andere drie PGN's, noem het eerste PGN ''oud PGN'', het tweede PGN ''nieuw PGN'' en het derde PGN ''ander PGN''.<br />
# Haal een stampseudoniem op voor ''oud PGN''. Onthoud het stampseudoniem als ''oud stampseudoniem''.<br />
# Haal een stampseudoniem op voor ''nieuw PGN''. Onthoud het stampseudoniem als ''nieuw stampseudoniem''.<br />
# Roep de substitutieservice aan om ''oud PGN'' te vervangen door ''nieuw PGN''.<br />
## Stel vast dat de response geen SOAP Fault is.<br />
# Roep de substitutieservice aan om ''ander PGN'' te vervangen door ''nieuw PGN''.<br />
## Stel vast dat de response een SOAP Fault is.<br />
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Deze substitutie bestaat al: ''<br />
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.<br />
# Roep de substitutieservice aan om ''oud PGN'' te vervangen door ''nieuw PGN''.<br />
## Stel vast dat de response een SOAP Fault is.<br />
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''De aangeleverde HPgn is geblokkeerd''<br />
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.<br />
<br />
== Test 8: batch ==<br />
{| class="wikitable"<br />
| '''service''' || submitStampseudonymBatch<br />
|- <br />
| '''service''' || submitEckIdBatch<br />
|- <br />
| '''service''' || retrieveBatch<br />
|}<br />
<br />
Deze test gaat na of batches goed worden afgehandeld. Wanneer een systeem geen gebruik maakt van batches dan kan deze test als geslaagd beschouwd worden.<br/><br />
Stel voor deze test een set van 12 PGN's samen, gebruik hiervoor PGN’s uit de dataset van de juiste sector en omgeving.<br/><br />
'''Kwalificatie omgeving:'''<br />
* [[SID:Testset_PO_kwalificatie_omgeving|Testset PO - leerlingen]]<br />
* [[SID:Testset_VO_kwalificatie_omgeving|Testset VO - leerlingen]]<br />
* [[SID:Testset_MBO_kwalificatie_omgeving|Testset MBO - leerlingen]]<br />
<br />
'''Batch 1'''<br/><br />
Deze test valideert of het systeem fouten in de resultaten van batches goed kan verwerken.<br />
<br />
# Pas de gehashte PGN's op de volgende manier aan:<br/>- derde hPGN = ""<br/>- tiende hPGN = "abc"<br/>- voeg een extra "A" toe aan het einde van het twaalfde hPGN<br />
# Stuur het batch request op.<br />
## Stel vast dat het antwoord geen SOAP Fault is.<br />
## Stel vast dat het antwoord een batchID bevat.<br />
#Wacht minstens 10 seconden en haal dan het batch resultaat op, op basis van het batchID.<br />
## Stel vast dat het antwoord geen SOAP fault is.<br />
## Stel vast dat het antwoord 9 correcte stampseudoniemen bevat.<br />
## Stel vast dat het antwoord 3 failed elementen bevat met de tekst:<br/>''Genereren niet succesvol''<br />
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.<br />
<br />
'''Batch 2'''<br/><br />
Op basis van de stampseudoniemen die in de vorige test gemaakt zijn worden in deze test ECK-iD's gegenereerd.<br/><br />
Haal voor stampseudoniemen het ECK iD op.<br />
<br />
# Stuur het batch request op.<br />
## Stel vast dat het antwoord geen SOAP Fault is.<br />
## Stel vast dat het antwoord een batchID bevat.<br />
#Wacht minstens 10 seconden en haal dan het batch resultaat op, op basis van het batchID.<br />
## Stel vast dat het antwoord geen SOAP fault is.<br />
## Stel vast dat het antwoord 9 correcte ECK iD's bevat.<br />
## Stel vast dat het antwoord 3 failed elementen bevat met de tekst:<br/>''Genereren niet succesvol''<br />
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.<br />
<br />
'''Batch 3'''<br/><br />
Deze test valideert of de afhandeling van fouten wegens het overschrijden van de batch limieten goed worden afgehandeld.<br />
<br />
# Stel voor deze test een set van 5 PGN's samen, gebruik hiervoor PGN’s uit de dataset van de juiste sector en omgeving.<br />
# Stuur het batch request op.<br />
## Stel vast dat het antwoord geen SOAP Fault is.<br />
## Stel vast dat het antwoord een batchID bevat.<br />
# Wacht niet en haal het batchresultaat onmiddellijk op, op basis van het batchID.<br />
## Stel vast dat de response een SOAP Fault is.<br />
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''De school mag tijdelijk geen batches ophalen wegens een opgelegde cooldown timeout.''<br />
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.<br />
# Wacht minder dan 10 seconden vanaf het vorige request en haal het batchresultaat opnieuw op.<br />
## Stel vast dat de response een SOAP Fault is.<br />
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''U kunt tijdelijk de batch niet ophalen wegens het niet honoreren van de cooldown periode.''<br />
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.<br />
# Wacht minstens 30 seconden na het vorige request en haal dan het batch resultaat op, op basis van het batchID.<br />
## Stel vast dat het antwoord geen SOAP fault is.<br />
## Stel vast dat de resultaten goed worden weergegeven.<br />
# Wacht 10 seconden en haal dan het batch resultaat opnieuw op, op basis van het batchID.<br />
## Stel vast dat de response een SOAP Fault is.<br />
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Batch reeds opgehaald.''<br />
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.<br />
<br />
[[Categorie:Nummervoorziening]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Attributen_overzicht_voor_Identity_Providers&diff=12416KNF:Attributen overzicht voor Identity Providers2022-04-29T09:13:44Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br/><br />
__TOC__<br />
<br />
Om een gebruiker te authentiseren en vervolgens te autoriseren wordt binnen Entree Federatie gebruik gemaakt van attributen. Deze attributen bevatten informatie (bijvoorbeeld een voornaam) over de gebruiker die bij een aangesloten dienst (ook wel Service Provider genoemd) wilt inloggen. De dienst gebruikt deze gegevens om te bepalen of de gebruiker toegang krijgt.<br/><br />
De set van attributen bestaat uit twee typen attributen:<br />
*Standaard attributen<br />
*Aanvullende attributen<br />
Voor de meeste dienstleveranciers zal de basisset met standaard attributen voldoende zijn om gebruikers te authentiseren en te autoriseren. Er kunnen zich echter situaties voordoen waarin een Service Provider meer informatie over een gebruiker nodig heeft, in dat geval kan er gebruik worden gemaakt van één of meerdere aanvullende attributen.<br />
<br />
Om als Identity Provider de toegang tot alle aangesloten diensten voor gebruikers mogelijk te maken, is het belangrijk om naast de set met standaard attributen ook de aanvullende attributen te ondersteunen.<br />
<br />
==Standaard attributen==<br />
Hieronder staan de attributen die altijd door de Identity Provider aan Entree Federatie moeten worden doorgegeven<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| Name ID (voorheen uid) * || Uniek kenmerk van de gebruiker, bestaand uit een gebruikersnaam en domein || userId@realm || pietjepukkelen@petteflatcollege.nl<br />
|-<br />
| employeeNumber || Leerlingnummer || vrij tekstveld || 123456<br />
|-<br />
| givenName || Voornaam || vrij tekstveld || Pietje<br />
|-<br />
| sn || Achternaam || vrij tekstveld || Pukkelen <br />
|-<br />
| eduPersonAffiliation || Rol || ''student'', ''employee'', ''staff'' of ''affiliate'' || student<br />
|-<br />
| nlEduPersonHomeOrganizationId || BRIN van de instelling || 4 of 6 karakters || 11ZZ03<br />
|-<br />
| nlEduPersonHomeOrganization || Naam van de instelling || vrij tekstveld || Petteflat College<br />
|}<br />
<br />
* Het formaat van dit attribuut moet als volgt zijn userid@realm, wat dus sterk lijkt op een mailadres. Belangrijk is dat dit attribuut niet wijzigt omdat dit de unieke identifier is waarmee de gebruiker bekend is binnen de keten en bij de aangesloten diensten van Entree Federatie.<br />
<br />
==Aanvullende attributen==<br />
Deze attributen worden alleen aan de Service Provider doorgegeven indien de school hiervoor expliciet toestemming heeft gegeven via een ondertekend [https://support.kennisnet.org/Knowledgebase/Article/View/511 Attribute Release Policy] formulier.<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| nlEduPersonProfileId || ECK keten-ID attribuut<br/>Indien een school meerdere administraties voert kan het administratienummer worden toegevoegd achter het @, zoals in het voorbeeld || leerlingnummer@administratienummer.schooldomein.nl || 95312@1.kennisnet.nl<br />
|-<br />
| eckId || Uniek ECK pseudoniem voor leerling of docent&nbsp;'''<sup>1</sup>''' || tekstveld || <nowiki>https://ketenid.nl/pilot/8e0a9f57fc76854d3dd2d3c4fa732feaf7b7a2d5f549a5458ce300223b83172f5074aa88a8cef0712aca19b62e9b90d0352e98fc76f498cd3947e7cc810f03fa</nowiki><br />
|-<br />
| initials || Initalen || vrij tekstveld || P.<br />
|-<br />
| nlEduPersonTussenvoegsels || Tussenvoegsel || vrij tekstveld || van<br />
|-<br />
| mail || E-mailadres || vrij tekstveld || pietjepukkelen@petteflatcollege.nl<br />
|-<br />
| nlEduPersonBirthDate || Geboortedatum || yyyymmdd || 19801231<br />
|-<br />
| nlEduPersonProfile || Opleidingsnaam voorafgegaan door ''CREBO[spatie]''.<br/>Optioneel kan ''BOL_'' of ''BBL_'' toegevoegd worden voor de opleidingsnaam || vrij tekstveld || 2345 BOL_ICT.Gamedeveloper <br />
|-<br />
| nlEduPersonDepartment || Afdeling of sector || vrij tekstveld || Techniek<br />
|-<br />
| nlEduPersonUnit || Primaire klas/groep. Uniek binnen administratie / schooldomein || vrij tekstveld || H2A<br />
|-<br />
| ou || Groep || vrij tekstveld || H2A<br />
|-<br />
| nlEduPersonCohort || Startjaar || vrij tekstveld || 2014<br />
|-<br />
| ocwILTRegistratiecode || ILT Registratiecode<br/>''Conform bijlage I en II, behorende bij artikel 1 van de Regeling van de Minister OCW houdende vaststelling van de Elementcodetabel en Vakcodetabel VO en Volwasseneneducatie: nr. DUO/OND-2013/15135 M.'' || vier cijferige-code || 0011<br />
|-<br />
| ocwILTLeerjaar || ILT Leerjaar<br/>''Conform bijlage I en II, behorende bij artikel 1 van de Regeling van de Minister OCW houdende vaststelling van de Elementcodetabel en Vakcodetabel VO en Volwasseneneducatie: nr. DUO/OND-2013/15135 M.'' || 1 cijfer || 1<br />
|-<br />
| digiDeliveryId || ECK digitaal afleveradres || tekstveld || ED8AE607-WI3N-414C-T87A-624E74S7T005<br />
|-<br />
| nlEduPersonHomeOrganizationBranchId || Vestigingsnummer (BRIN 6) || String van 6 alfa-numerieke karakters || 11ZZ03<br />
|-<br />
| nlEduPersonTargetedId || Badge ID || tekstveld || 12345678901234567890<br />
|}<br />
'''<sup>1</sup>''' Voor meer informatie over het ECK-iD: https://www.eck-id.nl/<br/><br />
<br />
===Het nlEduPersonRealId attribuut===<br />
In sommige gevallen kan een dienstleverancier ook vragen om het ''nlEduPersonRealId''. In dit attribuut wordt de waarde die de Identity Provider in het ''Name ID'' element naar Entree Federatie stuurt, tijdens de authenticatie door de Entree Federatie applicatie gekopieerd. De Identity Provider hoeft het ''nlEduPersonRealId'' dus '''niet''' zelf te configureren en naar Entree Federatie op te sturen, daarom staat het attribuut ook niet in het bovenstaande overzicht.<br />
<br />
==Richtlijnen voor Identity Providers==<br />
De attributen die worden doorgegeven definiëren de identiteit van de gebruiker. Het is dan ook belangrijk dat dit correct en consistent gebeurt. Kennisnet heeft daarom hiervoor een aantal richtlijnen opgesteld.<br />
===Realm in het ''Name ID'' element===<br />
Het element ''Name ID'' vormt samen met het ''employeeNumber'' de basis van de unieke identiteit van een gebruiker binnen de hele keten. Diensten die zijn aangesloten bij Entree Federatie koppelen de voortgang of licenties van de gebruiker aan dit ID. Het is voor de gebruiker daarom uiterst belangrijk dat dit ID persistent is en blijft.<br />
<br />
In het element ''Name ID'' wordt een domein (of realm) meegegeven. Indien een school in de toekomst naar een andere systeem wilt migreren is het belangrijk dat het ''Name Id'' van gebruikers persistent blijft. Daarom moet als realm niet een systeemnaam worden gebruikt, bijvoorbeeld ''pietjepukkelen@elonaam'', maar een domein van de school, bijvoorbeeld ''pietjepukkelen@petteflatcollege''.<br />
<br />
Een Identity Provider waar meerdere onderwijsinstellingen gebruik van maken, moet in staat zijn om per aangesloten onderwijsinstelling een uniek domein door te geven in het ''Name ID'' element.<br />
<br />
===BRIN nummer in het ''nlEduPersonHomeOrganizationId'' attribuut===<br />
Veel aangesloten diensten maken gebruik van schoollicenties. Het BRIN nummer in het ''nlEduPersonHomeOrganizationId'' attribuut wordt daarom aangewend om te controleren of een gebruiker toegang heeft. Tijdens een authenticatie valideert Entree Federatie het doorgegeven BRIN nummer.<br />
# Een Identity Provider moet in staat zijn om BRIN nummers van zowel vier als zes karakters door te geven.<br />
# Een Identity Provider waar meerdere onderwijsinstellingen gebruik van maken, moet in staat zijn om per aangesloten onderwijsinstelling een uniek BRIN nummer door te geven in het ''nlEduPersonHomeOrganizationId'' attribuut.<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Attributen_overzicht_voor_Service_Providers&diff=12415KNF:Attributen overzicht voor Service Providers2022-04-29T09:11:14Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br/><br />
__TOC__<br />
<br />
Om een gebruiker te authentiseren en vervolgens te autoriseren wordt binnen Entree Federatie gebruik gemaakt van attributen. Deze attributen bevatten informatie (bijvoorbeeld een voornaam) over de gebruiker die bij een aangesloten dienst wilt inloggen.<br/><br />
De set van attributen bestaat uit twee typen attributen:<br />
*Standaard attributen: worden door alle Service Providers ontvangen<br />
*Aanvullende attributen: worden alleen ontvangen na expliciete toestemming van de onderwijsinstelling<br />
Voor de meeste dienstleveranciers zal de basisset met standaard attributen voldoende zijn om gebruikers te authentiseren en te autoriseren. Er kunnen zich echter situaties voordoen waarin een Service Provider meer informatie over een gebruiker nodig heeft, in dat geval kan er gebruik worden gemaakt van één of meerdere aanvullende attributen.<br />
<br />
==Standaard attributen==<br />
Hieronder staan de attributen die altijd door Entree Federatie worden doorgegeven aan de Service Provider.<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| uid || Uniek ID van de gebruiker. Dit is een versleutelde versie van de gebruikersnaam en het employeeNumber, gevolgd door de omgeving (realm) || hash@realm || qj7cks8qdz9ph54@petteflatcollege<br />
|-<br />
| givenName || Voornaam || vrij tekstveld || Pietje<br />
|-<br />
| eduPersonAffiliation** || Rol || student, employee, staff of affiliate || student<br />
|-<br />
| nlEduPersonHomeOrganizationId || BRIN nummer van de instelling || vrij tekstveld || 11ZZ03<br />
|-<br />
| nlEduPersonHomeOrganization || Naam van de instelling || vrij tekstveld || Petteflat College<br />
|-<br />
| eckId * || Uniek ECK pseudoniem voor leerling of docent&nbsp;'''<sup>2</sup>''' || tekstveld || <nowiki>https://ketenid.nl/pilot/8e0a9f57fc76854d3dd2d3c4fa732feaf7b7a2d5f549a5458ce300223b83172f5074aa88a8cef0712aca19b62e9b90d0352e98fc76f498cd3947e7cc810f03fa</nowiki><br />
|}<br />
* Als aangesloten dienstaanbieder heeft u ook de mogelijkheid om ECK iD’s via Entree Federatie te ontvangen. [https://www.kennisnet.nl/entree-federatie/aanmelden/ Voorwaarden en aanmelden]<br />
<br />
==Aanvullende attributen==<br />
Deze attributen worden alleen aan de Service Provider doorgegeven indien de school hiervoor expliciet toestemming heeft gegeven via een ondertekende [https://support.kennisnet.org/Knowledgebase/Article/View/511 Attribute Release Policy].<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| nlEduPersonRealId&nbsp;'''<sup>1</sup>''' || Onversleutelde versie van het uid || [userId]@[realm] || pietjepukkelen@petteflatcollege<br />
|-<br />
| nlEduPersonProfileId || ECK keten-ID<br/>Indien een school meerdere administraties voert kan het administratienummer worden toegevoegd achter het @, zoals in het voorbeeld || leerlingnummer@administratienummer.schooldomein.nl || 95312@1.kennisnet.nl<br />
|-<br />
| nlEduPersonTussenvoegsels || Tussenvoegsel || vrij tekstveld || van<br />
|-<br />
| sn || Achternaam || vrij tekstveld || Pukkelen<br />
|-<br />
| mail || E-mailadres || vrij tekstveld || pietjepukkelen@petteflatcollege.nl<br />
|-<br />
| initials || Initalen || vrij tekstveld || P.<br />
|-<br />
| nlEduPersonBirthDate || Geboortedatum || yyyymmdd || 19801231<br />
|-<br />
| nlEduPersonProfile || Opleidingsnaam voorafgegaan door CREBO[spatie].<br/>Optioneel kan BOL_ of BBL_ toegevoegd worden voor de opleidingsnaam || vrij tekstveld || 2345 BOL_ICT.Gamedeveloper <br />
|-<br />
| nlEduPersonDepartment || Afdeling of sector || vrij tekstveld || Techniek<br />
|-<br />
| nlEduPersonUnit || Primaire klas/groep. Uniek binnen administratie / schooldomein || vrij tekstveld || H2A<br />
|-<br />
| ou || Klas of groep || vrij tekstveld || H2A<br />
|-<br />
| nlEduPersonCohort || Startjaar || vrij tekstveld || 2014<br />
|-<br />
| ocwILTRegistratiecode || ILT Registratiecode<br/>''Conform bijlage I en II, behorende bij artikel 1 van de Regeling van de Minister OCW houdende vaststelling van de Elementcodetabel en Vakcodetabel VO en Volwasseneneducatie: nr. DUO/OND-2013/15135 M.'' || vier cijferige-code || 0011<br />
|-<br />
| ocwILTLeerjaar || ILT Leerjaar<br/>''Conform bijlage I en II, behorende bij artikel 1 van de Regeling van de Minister OCW houdende vaststelling van de Elementcodetabel en Vakcodetabel VO en Volwasseneneducatie: nr. DUO/OND-2013/15135 M.'' || 1 cijfer || 1<br />
|-<br />
| digiDeliveryId || ECK digitaal afleveradres || tekstveld || ED8AE607-WI3N-414C-T87A-624E74S7T005<br />
|-<br />
| nlEduPersonHomeOrganizationBranchId || Vestigingsnummer (BRIN 6) || String van 6 alfa-numerieke karakters || 11ZZ03<br />
|-<br />
| nlEduPersonTargetedId || Badge ID || tekstveld || 12345678901234567890<br />
|}<br />
'''<sup>1</sup> Let op:''' De versleutelde inhoud van dit attribuut wordt altijd doorgegeven in het attribuut uid (zie standaard attributen).<br/><br />
'''<sup>2</sup>''' Voor meer informatie over het ECK-iD: https://www.eck-id.nl/<br />
<br />
==Attribute release policy==<br />
Door het ondertekenen van een Attribute Release Policy geeft een school toestemming om bepaalde aanvullende attributen aan een specifieke Service Provider door te geven. <br />
Een overzicht van attribute release policies die al gebruikt worden is te vinden op [https://support.kennisnet.org/display/FAQ/Federatie+FAQ de support pagina van Kennisnet].<br />
<br />
==Rollen eduPersonAffiliation==<br />
Hieronder beschrijving van de verschillende rollen die gebruikt worden binnen Entree Federatie.<br />
<br />
* De rol student is voor studenten.<br />
* De rol employee is voor docenten.<br />
* De rol staff is voor onderwijspersoneel. <br />
* De rol affiliate wordt gebruikt voor Entree Account gebruikers.<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Azure_AD_Premium_-_Identity_Provider&diff=11138KNF:Azure AD Premium - Identity Provider2021-08-18T08:01:13Z<p>Oostmeijer01: </p>
<hr />
<div>__TOC__<br />
Deze handleiding bevat een stappenplan om een '''Azure AD''' omgeving in te zetten als Identity Provider en aan Entree Federatie te koppelen.<br />
<br />
'''Let op:''' Deze handleiding is niet geschikt voor de Gratis en Basic edities van Azure AD<br />
<br />
Om aan de hand van deze handleiding een koppeling te kunnen realiseren moet aan de volgende voorwaarden worden voldaan:<br />
#U heeft een werkende Azure AD omgeving<br />
#U heeft ervaring met het beheren van een Azure AD omgeving<br />
#U heeft zich als Identity Provider bij Entree Federatie aangemeld. U kunt zich aanmelden door het invullen van het formulier op: https://www.kennisnet.nl/entree-federatie/aanmelden/<br />
<br />
{{Warn|Recent is de Azure AD omgeving gewijzigd, voor een handleiding verwijzen wij je naar de documentatie van Microsoft: https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/add-application-portal-setup-sso}}<br />
Azure is voortdurend in ontwikkeling. Als je opmerkingen of aanvullingen hebt ontvangen we die graag op implementaties@kennisnet.nl.<br />
<br />
==Stap 1: Configuratie van de koppeling==<br />
Voor het maken van een koppeling moet een app geconfigureerd worden die via het SAML protocol de communicatie tussen Azure AD en Entree Federatie verzorgt. <br />
<br />
#Ga naar https://admin.microsoft.com/<br />
#Klik op 'Show All' en vervolgens 'Azure active Directory'<br />
#*- Als alternatief ga direct naar https://aad.portal.azure.com/<br />
<br />
#Klik op 'Enterprise applications'<br />
#Klik op '+ New application'<br />
#Kies Non-Gallery Application<br />
#Geef als naam op Entree Federatie staging of productie<br />
#Kies na creëren 'Set up single sign on'<br />
#Kies SAML<br />
#Edit 'Basic SAML Configuration<br />
#Vul bij Identifier in :<br />
#*Staging: https://aselect-s.entree.kennisnet.nl<br />
#*Productie: https://aselect.entree.kennisnet.nl<br />
#Reply URL:<br />
#*Staging: https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
#*Productie: https://aselect.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
#Sign on URL:<br />
#*Staging: https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
#*Productie: https://aselect.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
# Ga nu naar het menu Single sign-on en kopieer de URL bij 'App Federation Metadata URL' stuur de URL naar [mailto:support@kennisnet.nl| Support Kennisnet]<br />
<br />
De koppeling is nu geconfigureerd, in het volgende deel worden de attributen die worden doorgegeven gedefinieerd.<br />
<br />
==Stap 2: Attributen definiëren==<br />
Entree Federatie maakt onderscheid tussen '''‘standaard attributen’''' en '''‘aanvullende attributen’'''. De standaard attributen dienen altijd te worden doorgegeven door de Azure AD applicatie. Een overzicht van de attributen is te vinden op [[KNF:Attributen_overzicht_voor_Identity_Providers|Attributen overzicht]].<br />
<br />
Sommige diensten die zijn aangesloten op Entree Federatie vragen naast de standaard attributen ook nog één of meerdere aanvullende attributen. In deze handleiding gaan we alleen uit van de standaard attributen, maar houd er rekening mee dat er meer attributen gedefinieerd moeten worden.<br />
<br />
# Open de tab ‘Attributes’.<br />
# Azure AD heeft de volgende attributen gedefinieerd:<br/>[[Bestand:AzureADIdP07.png|border|600px]]<br/><br/><br />
# Pas de attributen aan zodat ze gelijk zijn aan het onderstaande scherm.<br/>'''Let op:''' Er zijn twee waarden die moeten worden aangepast aan de eigen specifieke situatie.<br />
#* '''nlEduPersonHomeOrganizationId:''' in het voorbeeld heeft dit veld de vaste waarde ‘SKNS’. Dit moet het BRIN nummer zijn van de school waarvoor de koppeling wordt gemaakt.<br />
#* '''nlEduPersonHomeOrganization:''' in het voorbeeld heeft dit veld de vaste waarde ‘Kennisnet kantoor’. Dit moet de naam van de school zijn van de school waarvoor de koppeling wordt gemaakt.<br/>[[Bestand:AzureADIdP08.png|border|600px]]<br/><br/><br />
<br />
Een volledig overzicht van alle attributen is hier te vinden [[KNF:Attributen_overzicht_voor_Identity_Providers|Attributen overzicht]].<br />
<br />
De app is nu geconfigureerd en de attributen zijn gedefinieerd. Nadat Kennisnet de koppeling heeft geconfigureerd op basis van het metadata XML bestand kan de koppeling getest worden.<br />
<br />
===Attributen voor een groep===<br />
Het is mogelijk om bepaalde attributen door te geven aan de hand van groepen in de AD. Bijvoorbeeld voor het doorgeven van de EduPersonAffiliation (de rol van de gebruiker, 'student', 'employee' of 'staff'). <br />
<br />
Tijdens het configureren van een attribuut, staat eronder een drop down menu "Claim conditions" waarmee het attribuut voor een groep ingesteld kan worden.<br />
<br />
[[Bestand:ManageGroupClaim.png|border|600px]]<br />
<br />
==Sessieduur==<br />
Azure AD levert standaard een Sessieduur met een onbeperkte levensduur, in tegenstelling tot AD FS, waarbij de session tokens na 8 uren verlopen. Dit kan tot inlogproblemen leiden bij aangesloten diensten, zoals Entree Federatie, die een eigen session timeout kennen. <br />
<br />
Met behulp van onderstaande documentatie van Microsoft is het mogelijk de "Aanmeldingsfrequentie van gebruikers" aan te passen. Voor Entree Federatie is het advies om de aanmeldfrequentie aan te passen naar 1 keer per 10 uur. <br />
https://docs.microsoft.com/nl-nl/azure/active-directory/conditional-access/howto-conditional-access-session-lifetime#policy-1-sign-in-frequency-control<br />
<br />
{{Warn|Conditional Access werkt alleen met Azure Premium P1 of Premium P2. Met andere versies is dit niet mogelijk. Houd er rekening mee dat een upgrade kosten met zich mee kan brengen.}}<br />
<br />
==Stap 3: Testen==<br />
Om de koppeling te testen kan gebruik gemaakt worden van de referentie Service Provider van Kennisnet. Na een succesvolle authenticatie via de Azure AD worden de aan de referentie SP doorgegeven attributen getoond.<br />
<br />
# Ga naar de Kennisnet referentie Service Provider.<br/>'''Staging:''' https://referentie-s.entree.kennisnet.nl/referentiesp<br/>'''Productie:''' https://referentie.entree.kennisnet.nl/referentiesp<br />
# Je wordt nu doorgestuurd naar het WAYF ('''W'''here '''A'''re '''Y'''ou '''F'''rom) scherm van Entree Federatie.<br />
# Zoek de school waarmee je wilt inloggen.<br/>[[Bestand:Wayf01.PNG|border|400px]]<br/><br/><br />
# Selecteer de school en klik op ‘Verder’. Je wordt nu doorgestuurd naar de Azure AD omgeving die bij de school hoort.<br />
# Log in op de Azure AD omgeving.<br />
# Hierna wordt je teruggestuurd naar de referentie Service Provider en krijg je een overzicht van de attributen die zijn ontvangen.<br/>[[Bestand:refsp.png|border|600px]]<br/><br/><br />
<br />
Mocht er in dit scenario iets fout gaan neem dan contact op met Kennisnet.</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSOnotification&diff=10940KNF:SSOnotification2021-05-22T18:51:12Z<p>Oostmeijer01: /* Implementatie */</p>
<hr />
<div>{{Talen}}<br />
<br />
<!-- <br />
{{Warn|Met ingang van 1 juli 2019 maakt Entree Federatie gebruik van een nieuw endpoint voor de SSO notificatie: https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree<br/><br />
Per 1 september 2020 gaan we het oude endpoint uitzetten. Daarom het verzoek om het nieuwe endpoint zo spoedig mogelijk in gebruik te nemen.<br />
<br />
Het nieuwe endpoint is opgenomen in de beschrijvingen van de verschillende [[KNF:SSOnotification#Implementatie|Implementatie]] mogelijkheden voor SSO-notificaties. Ga voor het aanpassen van het endpoint naar de gekozen implementatie en pas de URL aan in de betreffende code van uw implementatie.}}<br />
--><br />
<br />
==Wat is een SSO notificatie?==<br />
Met een SSO notificatie (ook wel vooraanmelding genoemd) kan een Identity Provider ervoor zorgen dat zijn gebruikers het WAYF ('''W'''here '''A'''re '''Y'''ou '''F'''rom) scherm van Entree Federatie automatisch overslaan. Dit is het scherm waar de gebruiker zijn school selecteert.<br/><br />
[[Bestand:Wayf01.PNG|border|400px|Where Are You From (WAYF) scherm]]<br />
<br/><br/><br />
Dankzij de SSO notificatie hoeft de gebruiker minder handelingen uit te voeren tijdens het inlogproces en wordt het gebruiksgemak vergroot.<br />
<br />
==Hoe werkt een SSO notificatie?==<br />
Nadat een gebruiker is ingelogd bij zijn Identity Provider (bijvoorbeeld een ELO of via Windows authenticatie), verstuurt de Identity Provider een SSO notificatie verzoek naar Entree Federatie. Deze plaats vervolgens een cookie in de browser van de gebruiker met daarin de versleutelde authenticatie URL van de Identity Provider. Op het moment dat een gebruiker via Entree Federatie wil inloggen bij een aangesloten dienstleverancier zal Entree Federatie het SSO notificatie cookie uitlezen en de gebruiker direct doorsturen naar de authenticatie URL van zijn Identity Provider, waarmee het WAYF scherm dus is overgeslagen.<br />
<br />
Hoe SSO notificatie werkt binnen het authenticatie proces is te zien in [https://prezi.com/eq2xjhid1fxf/entree-federatie-authenticatie/ deze presentatie].<br />
<br />
== Zelf SSO notificatie uitproberen ==<br />
Met behulp van onze referentiediensten is het mogelijk om zelf het verschil in het inlogproces te ervaren met en zonder SSO notificatie.<br />
===Inloggen zonder SSO notificatie===<br />
#'''De gebruiker logt in op zijn ELO'''<br />
#*Ga naar de [https://referentie.entree.kennisnet.nl/referentie/ Referentie/demo omgeving] van Entree Federatie<br />
#'''De gebruiker klikt op een link naar lesmateriaal of content van een aangesloten dienstleverancier'''<br />
#*Klik ''''Dienstaanbieder (SAML) bezoeken''''<br />
#'''Het WAYF scherm wordt nu getoond, omdat bij Entree Federatie niet bekend is van welke Identity Provider de gebruiker komt '''<br />
#*Zoek en selecteer 'Referentie Omgeving'<br />
#*Klik op 'Verder'<br />
#'''De gebruikersgegevens (attributen) worden bij de Identity Provider opgevraagd door Entree Federatie'''<br />
#*Normaal gesproken zal deze stap onder water plaatsvinden, bij de Referentie/demo omgeving van Entree Federatie is het echter mogelijk om de attributen nog aan te passen voor test doeleinden.<br />
#*Klik op 'Direct verder naar dienstaanbieder'<br />
#'''De attributen worden naar de dienstleverancier doorgestuurd. De gebruiker is ingelogd bij de Referentie Service Provider en de attributen van de gebruiker worden getoond.'''<br />
<br />
=== Inloggen met SSO notificatie ===<br />
Wanneer je al bent ingelogd via Entree Federatie sluit dan nu eerst de browser en open deze opnieuw.<br />
#'''De gebruiker logt in op zijn ELO'''<br />
#*Ga naar de [https://referentie.entree.kennisnet.nl/referentie/ Referentie/demo omgeving] van Entree Federatie<br />
#*Klik op "SSO Notificatie cookie instellen", er wordt nu een SSO notificatie cookie geplaatst met het versleutelde adres van de Referentie omgeving. <br/> In de praktijk zal het plaatsen van het cookie automatisch gebeuren.<br />
#'''De gebruiker klikt op een link naar lesmateriaal of content van een aangesloten dienstleverancier'''<br />
#*Klik 'Dienstaanbieder (SAML) bezoeken'<br/> <span style="color:#ff0000">Het WAYF (Where Are You From) scherm wordt '''niet''' getoond, omdat de Identity Provider kan worden uitgelezen uit het SSO notificatie cookie.</span><br />
#'''De gebruikersgegevens (attributen) worden bij de Identity Provider opgevraagd door Entree Federatie'''<br />
#*Normaal gesproken zal deze stap onder water plaatsvinden, bij de Referentie/demo omgeving is het echter mogelijk om de attributen nog aan te passen voor test doeleinden.<br />
#*Klik op 'Direct verder naar dienstaanbieder'<br />
#'''De attributen worden naar de dienstleverancier doorgestuurd. De gebruiker is ingelogd bij de Referentie Service Provider en de attributen van de gebruiker worden getoond.'''<br />
<br />
== Implementatie ==<br />
De implementatie van een SSO notificatie kan op de volgende drie manieren:<br />
*[[KNF:SSO_notificatie_middels_een_redirect|Meer informatie over een implementatie middels een '''redirect''' - voorkeur]]<br />
*[[KNF:SSO_notificatie_middels_JavaScript|Meer informatie over een implementatie middels een '''AJAX call''']]<br />
*[[KNF:SSO_notificatie_middels_een_iframe|Meer informatie over een implementatie middels een '''iframe''']]<br />
<br />
===Waarom heeft de redirect implementatie de voorkeur?===<br />
Wanneer vanuit een Identity Provider via een AJAX call of een iframe Entree Federatie een SSO notificatie cookie laat plaatsen dan is dit een third party cookie. Third party cookies (cookies van derden) worden geplaatst door andere domeinen (in dit geval Entree Federatie) dan het domein van de website die je op dat moment bezoekt (de Identity Provider). <br />
Sommige organisaties gebruiken third party cookies voor het volgen van gebruikers wanneer deze verschillende websites bezoekt. Aangezien dit type third party cookies (ook wel tracking cookies genoemd) een inbreuk kunnen maken op de privacy van gebruikers wordt het gebruik hiervan steeds meer ontmoedigd door browsers en vaak ook geblokkeerd.<br />
<br />
Hierdoor kan het voorkomen dat ook het SSO notificatie cookie niet geplaatst wordt. De gebruiker kan in zo'n geval nog steeds inloggen via Entree Federatie, maar zal wel zelf zijn of haar school moeten selecteren op het WAYF scherm van Entree Federatie. Aangezien browsers hebben aangegeven om op termijn third party cookies helemaal te blokkeren kan het plaatsen van een SSO notificatie het beste gebeuren door middel van een redirect.<br />
<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSOnotification&diff=10939KNF:SSOnotification2021-05-22T18:49:49Z<p>Oostmeijer01: /* Implementatie */</p>
<hr />
<div>{{Talen}}<br />
<br />
<!-- <br />
{{Warn|Met ingang van 1 juli 2019 maakt Entree Federatie gebruik van een nieuw endpoint voor de SSO notificatie: https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree<br/><br />
Per 1 september 2020 gaan we het oude endpoint uitzetten. Daarom het verzoek om het nieuwe endpoint zo spoedig mogelijk in gebruik te nemen.<br />
<br />
Het nieuwe endpoint is opgenomen in de beschrijvingen van de verschillende [[KNF:SSOnotification#Implementatie|Implementatie]] mogelijkheden voor SSO-notificaties. Ga voor het aanpassen van het endpoint naar de gekozen implementatie en pas de URL aan in de betreffende code van uw implementatie.}}<br />
--><br />
<br />
==Wat is een SSO notificatie?==<br />
Met een SSO notificatie (ook wel vooraanmelding genoemd) kan een Identity Provider ervoor zorgen dat zijn gebruikers het WAYF ('''W'''here '''A'''re '''Y'''ou '''F'''rom) scherm van Entree Federatie automatisch overslaan. Dit is het scherm waar de gebruiker zijn school selecteert.<br/><br />
[[Bestand:Wayf01.PNG|border|400px|Where Are You From (WAYF) scherm]]<br />
<br/><br/><br />
Dankzij de SSO notificatie hoeft de gebruiker minder handelingen uit te voeren tijdens het inlogproces en wordt het gebruiksgemak vergroot.<br />
<br />
==Hoe werkt een SSO notificatie?==<br />
Nadat een gebruiker is ingelogd bij zijn Identity Provider (bijvoorbeeld een ELO of via Windows authenticatie), verstuurt de Identity Provider een SSO notificatie verzoek naar Entree Federatie. Deze plaats vervolgens een cookie in de browser van de gebruiker met daarin de versleutelde authenticatie URL van de Identity Provider. Op het moment dat een gebruiker via Entree Federatie wil inloggen bij een aangesloten dienstleverancier zal Entree Federatie het SSO notificatie cookie uitlezen en de gebruiker direct doorsturen naar de authenticatie URL van zijn Identity Provider, waarmee het WAYF scherm dus is overgeslagen.<br />
<br />
Hoe SSO notificatie werkt binnen het authenticatie proces is te zien in [https://prezi.com/eq2xjhid1fxf/entree-federatie-authenticatie/ deze presentatie].<br />
<br />
== Zelf SSO notificatie uitproberen ==<br />
Met behulp van onze referentiediensten is het mogelijk om zelf het verschil in het inlogproces te ervaren met en zonder SSO notificatie.<br />
===Inloggen zonder SSO notificatie===<br />
#'''De gebruiker logt in op zijn ELO'''<br />
#*Ga naar de [https://referentie.entree.kennisnet.nl/referentie/ Referentie/demo omgeving] van Entree Federatie<br />
#'''De gebruiker klikt op een link naar lesmateriaal of content van een aangesloten dienstleverancier'''<br />
#*Klik ''''Dienstaanbieder (SAML) bezoeken''''<br />
#'''Het WAYF scherm wordt nu getoond, omdat bij Entree Federatie niet bekend is van welke Identity Provider de gebruiker komt '''<br />
#*Zoek en selecteer 'Referentie Omgeving'<br />
#*Klik op 'Verder'<br />
#'''De gebruikersgegevens (attributen) worden bij de Identity Provider opgevraagd door Entree Federatie'''<br />
#*Normaal gesproken zal deze stap onder water plaatsvinden, bij de Referentie/demo omgeving van Entree Federatie is het echter mogelijk om de attributen nog aan te passen voor test doeleinden.<br />
#*Klik op 'Direct verder naar dienstaanbieder'<br />
#'''De attributen worden naar de dienstleverancier doorgestuurd. De gebruiker is ingelogd bij de Referentie Service Provider en de attributen van de gebruiker worden getoond.'''<br />
<br />
=== Inloggen met SSO notificatie ===<br />
Wanneer je al bent ingelogd via Entree Federatie sluit dan nu eerst de browser en open deze opnieuw.<br />
#'''De gebruiker logt in op zijn ELO'''<br />
#*Ga naar de [https://referentie.entree.kennisnet.nl/referentie/ Referentie/demo omgeving] van Entree Federatie<br />
#*Klik op "SSO Notificatie cookie instellen", er wordt nu een SSO notificatie cookie geplaatst met het versleutelde adres van de Referentie omgeving. <br/> In de praktijk zal het plaatsen van het cookie automatisch gebeuren.<br />
#'''De gebruiker klikt op een link naar lesmateriaal of content van een aangesloten dienstleverancier'''<br />
#*Klik 'Dienstaanbieder (SAML) bezoeken'<br/> <span style="color:#ff0000">Het WAYF (Where Are You From) scherm wordt '''niet''' getoond, omdat de Identity Provider kan worden uitgelezen uit het SSO notificatie cookie.</span><br />
#'''De gebruikersgegevens (attributen) worden bij de Identity Provider opgevraagd door Entree Federatie'''<br />
#*Normaal gesproken zal deze stap onder water plaatsvinden, bij de Referentie/demo omgeving is het echter mogelijk om de attributen nog aan te passen voor test doeleinden.<br />
#*Klik op 'Direct verder naar dienstaanbieder'<br />
#'''De attributen worden naar de dienstleverancier doorgestuurd. De gebruiker is ingelogd bij de Referentie Service Provider en de attributen van de gebruiker worden getoond.'''<br />
<br />
== Implementatie ==<br />
De implementatie van een SSO notificatie kan op de volgende drie manieren:<br />
*[[KNF:SSO_notificatie_middels_een_redirect|Meer informatie over een implementatie middels een '''redirect''' - voorkeur]]<br />
*[[KNF:SSO_notificatie_middels_JavaScript|Meer informatie over een implementatie middels een '''AJAX call''']]<br />
*[[KNF:SSO_notificatie_middels_een_iframe|Meer informatie over een implementatie middels een '''iframe''']]<br />
<br />
<br/><br />
===Waarom heeft de redirect implementatie de voorkeur?===<br />
Wanneer vanuit een Identity Provider via een AJAX call of een iframe Entree Federatie een SSO notificatie cookie laat plaatsen dan is dit een third party cookie. Third party cookies (cookies van derden) worden geplaatst door andere domeinen (in dit geval Entree Federatie) dan het domein van de website die je op dat moment bezoekt (de Identity Provider). <br />
Sommige organisaties gebruiken third party cookies voor het volgen van gebruikers wanneer deze verschillende websites bezoekt. Aangezien dit type third party cookies (ook wel tracking cookies genoemd) een inbreuk kunnen maken op de privacy van gebruikers wordt het gebruik hiervan steeds meer ontmoedigd door browsers en vaak ook geblokkeerd.<br />
<br />
Hierdoor kan het voorkomen dat ook het SSO notificatie cookie niet geplaatst wordt. De gebruiker kan in zo'n geval nog steeds inloggen via Entree Federatie, maar zal wel zelf zijn of haar school moeten selecteren op het WAYF scherm van Entree Federatie. Aangezien browsers hebben aangegeven om op termijn third party cookies helemaal te blokkeren kan het plaatsen van een SSO notificatie het beste gebeuren door middel van een redirect.<br />
<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=Bestand:Wsdl.zip&diff=10936Bestand:Wsdl.zip2021-05-04T09:31:38Z<p>Oostmeijer01: Oostmeijer01 heeft een nieuwe versie van Bestand:Wsdl.zip geüpload</p>
<hr />
<div><br />
[[Categorie:Nummervoorziening]]<br />
[[Category:Bestanden Nummervoorziening]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10929KNF:ARP service2021-03-25T10:05:04Z<p>Oostmeijer01: </p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij [mailto:implementaties@kennisnet.nl Kennisnet]}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
De technisch documentatie van de API van de ARP service is te vinden op: https://arpservice.entree.kennisnet.nl/swagger-ui/index.html<br />
<br />
==Alle onderwijsinstellingen opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van het BRIN nummer van de instelling.<br />
Met behulp van de ''school-list'' operatie kunnen alle BRIN nummers die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"brin": "01JO",<br />
"friendlyName": "Stichting Koninklijke Auris Groep"<br />
},<br />
{<br />
"brin": "14CR",<br />
"friendlyName": "Julianaschool"<br />
},<br />
{<br />
"brin": "00NT03",<br />
"friendlyName": "Prof. Dr. Leo Kannercollege"<br />
},<br />
{<br />
"brin": "25PN01",<br />
"friendlyName": "ROC Nijmegen VAVO"<br />
},<br />
{<br />
"brin": "02CI02",<br />
"friendlyName": "Insula College"<br />
},<br />
{<br />
"brin": "17VS02",<br />
"friendlyName": "Greijdanus Enschede"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Alle Service Providers opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van de organisationCode van de Service Provider.<br />
Met behulp van de ''sp-list'' operatie kunnen alle organisationCode die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"organisationCode": "EXPLR",<br />
"friendlyName": "Explor Onderwijs"<br />
},<br />
{<br />
"organisationCode": "VMBWI",<br />
"friendlyName": "VmboBWI"<br />
},<br />
{<br />
"organisationCode": "XEBIC",<br />
"friendlyName": "OnStage"<br />
},<br />
{<br />
"organisationCode": "VOCON",<br />
"friendlyName": "VO-Content"<br />
},<br />
{<br />
"organisationCode": "TOEG",<br />
"friendlyName": "Toegang.org"<br />
},<br />
{<br />
"organisationCode": "KUNSKA",<br />
"friendlyName": "Kunskapsskolan"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Onderwijsinstelling - Service Provider ARP opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider ARP configuratie moet het BRIN nummer van de onderwijsinstelling en de organisationCode van de Service Provider worden opgegeven.<br />
* Bij ''transfer: true'' wordt het attribuut doorgegeven aan de Service Provider<br />
* Bij ''transfer: false'' wordt het attribuut niet doorgegeven aan de Service Provider<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school/{brin}/sp/{organisationCode}<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
}<br />
]<br />
</syntaxhighlight><br />
<br />
==ARP configuratie van een Service Provider==<br />
Wanneer een partij als Service Provider aangesloten is op Entree Federatie dan kan deze de eigen ARP configuratie opvragen.<br />
De door Kennisnet verstrekte API key is dan gekoppeld aan de specifieke Service Provider.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-config<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
<br />
"attributeReleasePolicy": [<br />
{<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
<br />
},<br />
…<br />
] <br />
}<br />
</syntaxhighlight><br />
<br />
==Foutmeldingen==<br />
De ARP service kan de volgende antwoorden geven op foutieve aanvragen:<br />
<br />
===Ongeldige API key===<br />
Foutmelding wanneer de gebruikte API key niet geldig is (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:56:13.696+0000",<br />
"status": 403,<br />
"error": "Forbidden",<br />
"message": "403 Forbidden",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight><br />
<br />
===Geen ARP configuratie bekend voor onderwijsinstelling en Service Provider===<br />
Foutmelding wanneer er geen ARP configuratie bekend is voor de combinatie van het BRIN nummer en de organisatieCode.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T15:48:12.902+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for school-Service Provider combination",<br />
"path": "/v1/arp/school/20MG/sp/abcxyz"<br />
}<br />
</syntaxhighlight><br />
<br />
===Service Provider configuratie niet beschikbaar===<br />
Foutmelding wanneer een Service Provider configuratie wordt opgevraagd, met een API key die niet aan een Service Provider gekoppeld is.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:47:07.283+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for organisation",<br />
"path": "/v1/arp/sp-config"<br />
}<br />
</syntaxhighlight><br />
<br />
===Interne server foutmelding ARP service===<br />
Foutmelding wanneer de ARP service een interne fout genereert (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T17:04:55.481+0000",<br />
"status": 500,<br />
"error": "Internal Server Error",<br />
"message": "500 INTERNAL SERVER ERROR",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight></div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10928KNF:ARP service2021-03-22T20:18:50Z<p>Oostmeijer01: </p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij [mailto:support@kennisnet.nl Kennisnet]}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
De technisch documentatie van de API van de ARP service is te vinden op: https://arpservice.entree.kennisnet.nl/swagger-ui/index.html<br />
<br />
==Alle onderwijsinstellingen opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van het BRIN nummer van de instelling.<br />
Met behulp van de ''school-list'' operatie kunnen alle BRIN nummers die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"brin": "01JO",<br />
"friendlyName": "Stichting Koninklijke Auris Groep"<br />
},<br />
{<br />
"brin": "14CR",<br />
"friendlyName": "Julianaschool"<br />
},<br />
{<br />
"brin": "00NT03",<br />
"friendlyName": "Prof. Dr. Leo Kannercollege"<br />
},<br />
{<br />
"brin": "25PN01",<br />
"friendlyName": "ROC Nijmegen VAVO"<br />
},<br />
{<br />
"brin": "02CI02",<br />
"friendlyName": "Insula College"<br />
},<br />
{<br />
"brin": "17VS02",<br />
"friendlyName": "Greijdanus Enschede"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Alle Service Providers opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van de organisationCode van de Service Provider.<br />
Met behulp van de ''sp-list'' operatie kunnen alle organisationCode die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"organisationCode": "EXPLR",<br />
"friendlyName": "Explor Onderwijs"<br />
},<br />
{<br />
"organisationCode": "VMBWI",<br />
"friendlyName": "VmboBWI"<br />
},<br />
{<br />
"organisationCode": "XEBIC",<br />
"friendlyName": "OnStage"<br />
},<br />
{<br />
"organisationCode": "VOCON",<br />
"friendlyName": "VO-Content"<br />
},<br />
{<br />
"organisationCode": "TOEG",<br />
"friendlyName": "Toegang.org"<br />
},<br />
{<br />
"organisationCode": "KUNSKA",<br />
"friendlyName": "Kunskapsskolan"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Onderwijsinstelling - Service Provider ARP opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider ARP configuratie moet het BRIN nummer van de onderwijsinstelling en de organisationCode van de Service Provider worden opgegeven.<br />
* Bij ''transfer: true'' wordt het attribuut doorgegeven aan de Service Provider<br />
* Bij ''transfer: false'' wordt het attribuut niet doorgegeven aan de Service Provider<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school/{brin}/sp/{organisationCode}<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
}<br />
]<br />
</syntaxhighlight><br />
<br />
==ARP configuratie van een Service Provider==<br />
Wanneer een partij als Service Provider aangesloten is op Entree Federatie dan kan deze de eigen ARP configuratie opvragen.<br />
De door Kennisnet verstrekte API key is dan gekoppeld aan de specifieke Service Provider.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-config<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
<br />
"attributeReleasePolicy": [<br />
{<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
<br />
},<br />
…<br />
] <br />
}<br />
</syntaxhighlight><br />
<br />
==Foutmeldingen==<br />
De ARP service kan de volgende antwoorden geven op foutieve aanvragen:<br />
<br />
===Ongeldige API key===<br />
Foutmelding wanneer de gebruikte API key niet geldig is (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:56:13.696+0000",<br />
"status": 403,<br />
"error": "Forbidden",<br />
"message": "403 Forbidden",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight><br />
<br />
===Geen ARP configuratie bekend voor onderwijsinstelling en Service Provider===<br />
Foutmelding wanneer er geen ARP configuratie bekend is voor de combinatie van het BRIN nummer en de organisatieCode.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T15:48:12.902+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for school-Service Provider combination",<br />
"path": "/v1/arp/school/20MG/sp/abcxyz"<br />
}<br />
</syntaxhighlight><br />
<br />
===Service Provider configuratie niet beschikbaar===<br />
Foutmelding wanneer een Service Provider configuratie wordt opgevraagd, met een API key die niet aan een Service Provider gekoppeld is.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:47:07.283+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for organisation",<br />
"path": "/v1/arp/sp-config"<br />
}<br />
</syntaxhighlight><br />
<br />
===Interne server foutmelding ARP service===<br />
Foutmelding wanneer de ARP service een interne fout genereert (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T17:04:55.481+0000",<br />
"status": 500,<br />
"error": "Internal Server Error",<br />
"message": "500 INTERNAL SERVER ERROR",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight></div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10927KNF:ARP service2021-03-22T20:17:39Z<p>Oostmeijer01: </p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij [mailto:support@kennisnet.nl?Subject=Entree%20Federatie%3A%20Aanvraag%20API%20key%20voor%20ARP%20Service Kennisnet]}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
De technisch documentatie van de API van de ARP service is te vinden op: https://arpservice.entree.kennisnet.nl/swagger-ui/index.html<br />
<br />
==Alle onderwijsinstellingen opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van het BRIN nummer van de instelling.<br />
Met behulp van de ''school-list'' operatie kunnen alle BRIN nummers die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"brin": "01JO",<br />
"friendlyName": "Stichting Koninklijke Auris Groep"<br />
},<br />
{<br />
"brin": "14CR",<br />
"friendlyName": "Julianaschool"<br />
},<br />
{<br />
"brin": "00NT03",<br />
"friendlyName": "Prof. Dr. Leo Kannercollege"<br />
},<br />
{<br />
"brin": "25PN01",<br />
"friendlyName": "ROC Nijmegen VAVO"<br />
},<br />
{<br />
"brin": "02CI02",<br />
"friendlyName": "Insula College"<br />
},<br />
{<br />
"brin": "17VS02",<br />
"friendlyName": "Greijdanus Enschede"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Alle Service Providers opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van de organisationCode van de Service Provider.<br />
Met behulp van de ''sp-list'' operatie kunnen alle organisationCode die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"organisationCode": "EXPLR",<br />
"friendlyName": "Explor Onderwijs"<br />
},<br />
{<br />
"organisationCode": "VMBWI",<br />
"friendlyName": "VmboBWI"<br />
},<br />
{<br />
"organisationCode": "XEBIC",<br />
"friendlyName": "OnStage"<br />
},<br />
{<br />
"organisationCode": "VOCON",<br />
"friendlyName": "VO-Content"<br />
},<br />
{<br />
"organisationCode": "TOEG",<br />
"friendlyName": "Toegang.org"<br />
},<br />
{<br />
"organisationCode": "KUNSKA",<br />
"friendlyName": "Kunskapsskolan"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Onderwijsinstelling - Service Provider ARP opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider ARP configuratie moet het BRIN nummer van de onderwijsinstelling en de organisationCode van de Service Provider worden opgegeven.<br />
* Bij ''transfer: true'' wordt het attribuut doorgegeven aan de Service Provider<br />
* Bij ''transfer: false'' wordt het attribuut niet doorgegeven aan de Service Provider<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school/{brin}/sp/{organisationCode}<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
}<br />
]<br />
</syntaxhighlight><br />
<br />
==ARP configuratie van een Service Provider==<br />
Wanneer een partij als Service Provider aangesloten is op Entree Federatie dan kan deze de eigen ARP configuratie opvragen.<br />
De door Kennisnet verstrekte API key is dan gekoppeld aan de specifieke Service Provider.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-config<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
<br />
"attributeReleasePolicy": [<br />
{<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
<br />
},<br />
…<br />
] <br />
}<br />
</syntaxhighlight><br />
<br />
==Foutmeldingen==<br />
De ARP service kan de volgende antwoorden geven op foutieve aanvragen:<br />
<br />
===Ongeldige API key===<br />
Foutmelding wanneer de gebruikte API key niet geldig is (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:56:13.696+0000",<br />
"status": 403,<br />
"error": "Forbidden",<br />
"message": "403 Forbidden",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight><br />
<br />
===Geen ARP configuratie bekend voor onderwijsinstelling en Service Provider===<br />
Foutmelding wanneer er geen ARP configuratie bekend is voor de combinatie van het BRIN nummer en de organisatieCode.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T15:48:12.902+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for school-Service Provider combination",<br />
"path": "/v1/arp/school/20MG/sp/abcxyz"<br />
}<br />
</syntaxhighlight><br />
<br />
===Service Provider configuratie niet beschikbaar===<br />
Foutmelding wanneer een Service Provider configuratie wordt opgevraagd, met een API key die niet aan een Service Provider gekoppeld is.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:47:07.283+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for organisation",<br />
"path": "/v1/arp/sp-config"<br />
}<br />
</syntaxhighlight><br />
<br />
===Interne server foutmelding ARP service===<br />
Foutmelding wanneer de ARP service een interne fout genereert (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T17:04:55.481+0000",<br />
"status": 500,<br />
"error": "Internal Server Error",<br />
"message": "500 INTERNAL SERVER ERROR",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight></div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10926KNF:ARP service2021-03-22T20:15:38Z<p>Oostmeijer01: </p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij [mailto:support@kennisnet.nl Kennisnet]}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
De technisch documentatie van de API van de ARP service is te vinden op: https://arpservice.entree.kennisnet.nl/swagger-ui/index.html<br />
<br />
==Alle onderwijsinstellingen opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van het BRIN nummer van de instelling.<br />
Met behulp van de ''school-list'' operatie kunnen alle BRIN nummers die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"brin": "01JO",<br />
"friendlyName": "Stichting Koninklijke Auris Groep"<br />
},<br />
{<br />
"brin": "14CR",<br />
"friendlyName": "Julianaschool"<br />
},<br />
{<br />
"brin": "00NT03",<br />
"friendlyName": "Prof. Dr. Leo Kannercollege"<br />
},<br />
{<br />
"brin": "25PN01",<br />
"friendlyName": "ROC Nijmegen VAVO"<br />
},<br />
{<br />
"brin": "02CI02",<br />
"friendlyName": "Insula College"<br />
},<br />
{<br />
"brin": "17VS02",<br />
"friendlyName": "Greijdanus Enschede"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Alle Service Providers opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van de organisationCode van de Service Provider.<br />
Met behulp van de ''sp-list'' operatie kunnen alle organisationCode die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"organisationCode": "EXPLR",<br />
"friendlyName": "Explor Onderwijs"<br />
},<br />
{<br />
"organisationCode": "VMBWI",<br />
"friendlyName": "VmboBWI"<br />
},<br />
{<br />
"organisationCode": "XEBIC",<br />
"friendlyName": "OnStage"<br />
},<br />
{<br />
"organisationCode": "VOCON",<br />
"friendlyName": "VO-Content"<br />
},<br />
{<br />
"organisationCode": "TOEG",<br />
"friendlyName": "Toegang.org"<br />
},<br />
{<br />
"organisationCode": "KUNSKA",<br />
"friendlyName": "Kunskapsskolan"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Onderwijsinstelling - Service Provider ARP opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider ARP configuratie moet het BRIN nummer van de onderwijsinstelling en de organisationCode van de Service Provider worden opgegeven.<br />
* Bij ''transfer: true'' wordt het attribuut doorgegeven aan de Service Provider<br />
* Bij ''transfer: false'' wordt het attribuut niet doorgegeven aan de Service Provider<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school/{brin}/sp/{organisationCode}<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
}<br />
]<br />
</syntaxhighlight><br />
<br />
==ARP configuratie van een Service Provider==<br />
Wanneer een partij als Service Provider aangesloten is op Entree Federatie dan kan deze de eigen ARP configuratie opvragen.<br />
De door Kennisnet verstrekte API key is dan gekoppeld aan de specifieke Service Provider.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-config<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
<br />
"attributeReleasePolicy": [<br />
{<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
<br />
},<br />
…<br />
] <br />
}<br />
</syntaxhighlight><br />
<br />
==Foutmeldingen==<br />
De ARP service kan de volgende antwoorden geven op foutieve aanvragen:<br />
<br />
===Ongeldige API key===<br />
Foutmelding wanneer de gebruikte API key niet geldig is (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:56:13.696+0000",<br />
"status": 403,<br />
"error": "Forbidden",<br />
"message": "403 Forbidden",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight><br />
<br />
===Geen ARP configuratie bekend voor onderwijsinstelling en Service Provider===<br />
Foutmelding wanneer er geen ARP configuratie bekend is voor de combinatie van het BRIN nummer en de organisatieCode.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T15:48:12.902+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for school-Service Provider combination",<br />
"path": "/v1/arp/school/20MG/sp/abcxyz"<br />
}<br />
</syntaxhighlight><br />
<br />
===Service Provider configuratie niet beschikbaar===<br />
Foutmelding wanneer een Service Provider configuratie wordt opgevraagd, met een API key die niet aan een Service Provider gekoppeld is.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:47:07.283+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for organisation",<br />
"path": "/v1/arp/sp-config"<br />
}<br />
</syntaxhighlight><br />
<br />
===Interne server foutmelding ARP service===<br />
Foutmelding wanneer de ARP service een interne fout genereert (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T17:04:55.481+0000",<br />
"status": 500,<br />
"error": "Internal Server Error",<br />
"message": "500 INTERNAL SERVER ERROR",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight></div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSO_notificatie_middels_een_redirect&diff=10925KNF:SSO notificatie middels een redirect2021-03-22T20:15:11Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
Het SSO notificatie cookie kan geplaatst worden door een redirect naar Entree Federatie uit te voeren nadat de gebruiker is ingelogd in de ELO of schoolportaal.<br><br />
<br />
==Opbouw redirect URL==<br />
De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:<br />
# De Entree Federatie URL waar de redirect naar toegaat.<br />
#* Voor '''productie''': https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree<br />
#* Voor '''staging''': https://ssonot.aselect-s.entree.kennisnet.nl/openaselect/profiles/entree<br />
# De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. Eventueel kan de identifier ook worden opgevraagd bij [mailto:support@kennisnet.nl Kennisnet].<br />
# De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.<br />
# De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.<br />
<br />
De redirect URL krijgt daarmee de volgende constructie:<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>''<br />
<br />
'''LET OP:''' Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie [[KNF:SSO_notificatie_middels_een_redirect#Foutmeldingen | Foutmeldingen]]) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met [mailto:support@kennisnet.nl Kennisnet].<br />
<br />
==Voorbeeld==<br />
In onderstaande voorbeeld is ''<nowiki>http://authenticate.example.org</nowiki>'' de identifier van de IdP, ''<nowiki>http://www.example.org</nowiki>'' de URL waarvandaan de redirect wordt uitgevoerd en ''<nowiki>http://www.kennisnet.nl</nowiki>'' de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl</nowiki>''<br />
<br />
==Foutmeldingen==<br />
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code.<br><br />
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 400 HTTP status code opleveren.<br><br />
Neem in deze gevallen contact op met [mailto:support@kennisnet.nl Kennisnet].<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSO_notificatie_middels_een_redirect&diff=10924KNF:SSO notificatie middels een redirect2021-03-22T20:14:34Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
Het SSO notificatie cookie kan geplaatst worden door een redirect naar Entree Federatie uit te voeren nadat de gebruiker is ingelogd in de ELO of schoolportaal.<br><br />
<br />
==Opbouw redirect URL==<br />
De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:<br />
# De Entree Federatie URL waar de redirect naar toegaat.<br />
#* Voor '''productie''': https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree<br />
#* Voor '''staging''': https://ssonot.aselect-s.entree.kennisnet.nl/openaselect/profiles/entree<br />
# De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. Eventueel kan de identifier ook worden opgevraagd bij [mailto:support@kennisnet.nl Kennisnet].<br />
# De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.<br />
# De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.<br />
<br />
De redirect URL krijgt daarmee de volgende constructie:<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>''<br />
<br />
'''LET OP:''' Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie [[KNF:SSO_notificatie_middels_een_redirect#Foutmeldingen | Foutmeldingen]]) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
==Voorbeeld==<br />
In onderstaande voorbeeld is ''<nowiki>http://authenticate.example.org</nowiki>'' de identifier van de IdP, ''<nowiki>http://www.example.org</nowiki>'' de URL waarvandaan de redirect wordt uitgevoerd en ''<nowiki>http://www.kennisnet.nl</nowiki>'' de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl</nowiki>''<br />
<br />
==Foutmeldingen==<br />
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code.<br><br />
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 400 HTTP status code opleveren.<br><br />
Neem in deze gevallen contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSO_notificatie_middels_een_redirect&diff=10923KNF:SSO notificatie middels een redirect2021-03-22T20:12:43Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
Het SSO notificatie cookie kan geplaatst worden door een redirect naar Entree Federatie uit te voeren nadat de gebruiker is ingelogd in de ELO of schoolportaal.<br><br />
<br />
==Opbouw redirect URL==<br />
De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:<br />
# De Entree Federatie URL waar de redirect naar toegaat.<br />
#* Voor '''productie''': https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree<br />
#* Voor '''staging''': https://ssonot.aselect-s.entree.kennisnet.nl/openaselect/profiles/entree<br />
# De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. Eventueel kan de identifier ook worden opgevraagd bij mailto:support@kennisnet.nl.<br />
# De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.<br />
# De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.<br />
<br />
De redirect URL krijgt daarmee de volgende constructie:<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>''<br />
<br />
'''LET OP:''' Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie [[KNF:SSO_notificatie_middels_een_redirect#Foutmeldingen | Foutmeldingen]]) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
==Voorbeeld==<br />
In onderstaande voorbeeld is ''<nowiki>http://authenticate.example.org</nowiki>'' de identifier van de IdP, ''<nowiki>http://www.example.org</nowiki>'' de URL waarvandaan de redirect wordt uitgevoerd en ''<nowiki>http://www.kennisnet.nl</nowiki>'' de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl</nowiki>''<br />
<br />
==Foutmeldingen==<br />
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code.<br><br />
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 400 HTTP status code opleveren.<br><br />
Neem in deze gevallen contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSO_notificatie_middels_een_redirect&diff=10922KNF:SSO notificatie middels een redirect2021-03-22T20:12:28Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
Het SSO notificatie cookie kan geplaatst worden door een redirect naar Entree Federatie uit te voeren nadat de gebruiker is ingelogd in de ELO of schoolportaal.<br><br />
<br />
==Opbouw redirect URL==<br />
De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:<br />
# De Entree Federatie URL waar de redirect naar toegaat.<br />
#* Voor '''productie''': https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree<br />
#* Voor '''staging''': https://ssonot.aselect-s.entree.kennisnet.nl/openaselect/profiles/entree<br />
# De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. Eventueel kan de identifier ook worden opgevraagd bij [[mailto:support@kennisnet.nl|Kennisnet]].<br />
# De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.<br />
# De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.<br />
<br />
De redirect URL krijgt daarmee de volgende constructie:<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>''<br />
<br />
'''LET OP:''' Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie [[KNF:SSO_notificatie_middels_een_redirect#Foutmeldingen | Foutmeldingen]]) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
==Voorbeeld==<br />
In onderstaande voorbeeld is ''<nowiki>http://authenticate.example.org</nowiki>'' de identifier van de IdP, ''<nowiki>http://www.example.org</nowiki>'' de URL waarvandaan de redirect wordt uitgevoerd en ''<nowiki>http://www.kennisnet.nl</nowiki>'' de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl</nowiki>''<br />
<br />
==Foutmeldingen==<br />
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code.<br><br />
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 400 HTTP status code opleveren.<br><br />
Neem in deze gevallen contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSO_notificatie_middels_een_redirect&diff=10921KNF:SSO notificatie middels een redirect2021-03-22T20:12:08Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
Het SSO notificatie cookie kan geplaatst worden door een redirect naar Entree Federatie uit te voeren nadat de gebruiker is ingelogd in de ELO of schoolportaal.<br><br />
<br />
==Opbouw redirect URL==<br />
De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:<br />
# De Entree Federatie URL waar de redirect naar toegaat.<br />
#* Voor '''productie''': https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree<br />
#* Voor '''staging''': https://ssonot.aselect-s.entree.kennisnet.nl/openaselect/profiles/entree<br />
# De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. Eventueel kan de identifier ook worden opgevraagd bij [mailto:support@kennisnet.nl|Kennisnet].<br />
# De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.<br />
# De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.<br />
<br />
De redirect URL krijgt daarmee de volgende constructie:<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>''<br />
<br />
'''LET OP:''' Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie [[KNF:SSO_notificatie_middels_een_redirect#Foutmeldingen | Foutmeldingen]]) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
==Voorbeeld==<br />
In onderstaande voorbeeld is ''<nowiki>http://authenticate.example.org</nowiki>'' de identifier van de IdP, ''<nowiki>http://www.example.org</nowiki>'' de URL waarvandaan de redirect wordt uitgevoerd en ''<nowiki>http://www.kennisnet.nl</nowiki>'' de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl</nowiki>''<br />
<br />
==Foutmeldingen==<br />
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code.<br><br />
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 400 HTTP status code opleveren.<br><br />
Neem in deze gevallen contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:SSO_notificatie_middels_een_redirect&diff=10920KNF:SSO notificatie middels een redirect2021-03-22T20:11:43Z<p>Oostmeijer01: </p>
<hr />
<div>{{Talen}}<br />
<br />
Het SSO notificatie cookie kan geplaatst worden door een redirect naar Entree Federatie uit te voeren nadat de gebruiker is ingelogd in de ELO of schoolportaal.<br><br />
<br />
==Opbouw redirect URL==<br />
De URL waarnaartoe de redirect wordt gedaan bestaat uit vier onderdelen:<br />
# De Entree Federatie URL waar de redirect naar toegaat.<br />
#* Voor '''productie''': https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree<br />
#* Voor '''staging''': https://ssonot.aselect-s.entree.kennisnet.nl/openaselect/profiles/entree<br />
# De unieke identifier waarmee de Identity Provider bekend is binnen Entree Federatie. Dit is het entityId uit de metadata van de Identity Provider. Eventueel kan de identifier ook worden opgevraagd bij [mailto:support@kennisnet.nl].<br />
# De URL (url-encoded) van de omgeving waar de redirect vandaan komt. Dit wordt in de Entree Federatie applicatie gebruikt voor verificatie.<br />
# De redirectURI (url-encoded), dit is de URL waar de gebruiker naar teruggestuurd wordt na het plaatsen van het SSO notificatie cookie. Dit zal in veel gevallen hetzelfde zijn als de URL waar de redirect vandaan komt, maar kan indien gewenst dus ook afwijken.<br />
<br />
De redirect URL krijgt daarmee de volgende constructie:<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=<identifier van de IdP>&url=<url-encoded ELO URL>&redirectUri=<url-encoded redirect URL></nowiki>''<br />
<br />
'''LET OP:''' Voordat de SSO notificatie wordt geïmplementeerd moet de URL van de ELO of schoolportaal waarvandaan de redirect wordt uitgevoerd (zie [[KNF:SSO_notificatie_middels_een_redirect#Foutmeldingen | Foutmeldingen]]) toegevoegd worden aan de whitelist van Entree Federatie. Neem hiervoor contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
==Voorbeeld==<br />
In onderstaande voorbeeld is ''<nowiki>http://authenticate.example.org</nowiki>'' de identifier van de IdP, ''<nowiki>http://www.example.org</nowiki>'' de URL waarvandaan de redirect wordt uitgevoerd en ''<nowiki>http://www.kennisnet.nl</nowiki>'' de URL waar de gebruiker naar wordt toegestuurd na het plaatsen van de SSO notificatie cookie.<br><br />
''<nowiki>https://ssonot.aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=http://authenticate.example.org&url=http%3A%2F%2Fwww.example.org&redirectUri=http%3A%2F%2Fwww.kennisnet.nl</nowiki>''<br />
<br />
==Foutmeldingen==<br />
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de redirect call resulteren in een 400 HTTP status code.<br><br />
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de redirect call ook een 400 HTTP status code opleveren.<br><br />
Neem in deze gevallen contact op met [https://support.kennisnet.org/Tickets/Submit Kennisnet].<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Hoofdpagina&diff=10919KNF:Hoofdpagina2021-03-22T20:09:05Z<p>Oostmeijer01: /* Overige functionaliteit */</p>
<hr />
<div>__NOTOC__<br />
{{Talen}}<br />
<br />
{| cellspacing="10" cellpadding="5" border="0" width="90%"<br />
|- valign="top" <br />
| colspan="2" | <br />
<br />
== Algemeen ==<br />
<br />
|- valign="top" <br />
| style="width:50%" |<br />
<br />
* [https://prezi.com/eq2xjhid1fxf/entree-federatie-authenticatie/ Een authenticatie via Entree Federatie gezien vanuit de '''gebruiker''']<br />
* [[KNF:Hoe_werkt_Entree_Federatie%3F|De technische werking van een federatieve authenticatie]]<br />
<br/><br />
'''Communicatie'''<br />
* [https://www.kennisnet.nl/entree-federatie Entree Federatie website]<br />
* [http://kn.nu/servicemeldingen Op de hoogte blijven van onderhoud en storingen]<br />
* [[KNF:Beeldmateriaal|Beeldmateriaal van Entree Federatie]]<br />
<br />
'''Updates'''<br />
* [[KNF:TLS1.2|TLS 1.2 activeren voor AD FS]]<br />
<br />
'''Entree Account'''<br />
* [[KNF:Entree-Account|Entree Account]]<br />
<br />
| style="width:50%" |<br />
<br />
'''Metadata Entree Federatie'''<br/><br />
De metadata url's van Entree Federatie bevatten zowel SP als IdP metadata.<br />
* '''Productie:''' https://hub.entree.kennisnet.nl/openaselect/profiles/saml/<br />
* '''Staging:''' https://hub-s.entree.kennisnet.nl/openaselect/profiles/saml/<br />
<br/><br />
'''Metadata valideren'''<br/><br />
Om zelf SAML metadata te valideren kan [https://www.samltool.com/validate_xml.php deze tool] gebruikt worden.<br />
<br />
'''Wijzigingen'''<br />
* [[KNF:Wijzigingen|Wijzigingen]]<br />
<br />
'''Foutmeldingen'''<br />
* [[KNF:Foutmeldingen|Foutmeldingen]]<br />
<br />
|- valign="top"<br />
| style="width:50%" |<br />
<br />
== Service Provider (Dienstleverancier) ==<br />
===Aansluiten===<br />
* [[KNF:SAML-sp|Ik wil als '''dienstleverancier''' aansluiten op Entree Federatie]]<br />
'''Attributen'''<br />
* [[KNF:Attributen_overzicht_voor_Service_Providers|Overzicht van '''Federatieve attributen''' voor Service Providers]]<br />
'''Koppelen via SimpleSAMLphp'''<br />
* [[KNF:SimpleSAMLphp-sp|Ik wil koppelen als '''service provider''' met '''SimpleSAMLphp''']]<br />
'''Koppelen via OneLogin PHP'''<br />
* [[KNF:OneLogin_configureren_als_Service_Provider|Ik wil koppelen als '''service provider''' met '''OneLogin PHP''']]<br />
'''Koppelen via Shibboleth'''<br />
* [[KNF:Shibboleth-sp|Ik wil koppelen als '''service provider''' met '''Shibboleth''']]<br />
'''Koppelen via ComponentSpace'''<br />
* [https://docs.google.com/document/d/18CmPP0WWNEZ1uz6xGqUEQy-uNIOk7w_PLc3i7jxBBFQ Ik wil koppelen als '''service provider''' met '''ComponentSpace''']<br />
:: [https://developers.wiki.kennisnet.nl/images/7/75/ComponentSpace-SAML-projects_1_.zip SAML2 ComponentSpace example (sources)]<br />
===Testen===<br />
* [[KNF:Service_provider_koppeling_testen|Ik wil als service provider mijn koppeling met Entree Federatie testen]]<br />
===Overige functionaliteit===<br />
'''SSO query'''<br />
* [[KNF:Single_Sign_On_query|Ik wil als '''service-provider''' controleren of een gebruiker al is ingelogd met een '''SSO query''']]<br />
'''Scoping'''<br />
* [[KNF:scoping|Als '''service-provider''' het WAYF '''inlogscherm overslaan''']]<br />
'''ARP service'''<br />
* [[KNF:ARP_service|Als ketenpartner wil ik '''ARP configuraties''' kunnen opvragen]]<br />
'''Multi tenant koppeling'''<br />
* [[KNF:Multi-Tenant-SAML-SP|Ik wil koppelen als '''service provider''' met een '''Multi-Tenant SAML''' oplossing]]<br />
'''Gebruik van frames en iframes'''<br />
* [[KNF:iframes|Als '''service-provider''' gebruik maken van FRAMEs en IFRAMEs]]<br />
<br />
| style="width:50%" |<br />
<br />
== Identity Provider (ELO of school) ==<br />
'''Attributen'''<br />
* [[KNF:Attributen_overzicht_voor_Identity_Providers|Overzicht van '''Federatieve attributen''' voor Identity Providers]]<br />
<br />
'''Migratie'''<br />
* [[KNF:Migratie_van_Identity_Provider|Ik wil als school een andere '''Identity Provider''' gebruiken]]<br />
* [[KNF:ADFS-Migratie|Ik wil mijn bestaande koppeling (ELO) naar Windows Server '''ADFS''' migreren]]<br />
<br />
'''Koppelen via ADFS'''<br />
* [[KNF:ADFS-IdP|Ik wil koppelen als '''Identity Provider''' met Windows Server '''ADFS''']]<br />
<!-- * [[KNF:ADFS-SQL|SQL QUERY attributen aanmaken voor Windows Server '''ADFS''']] --><br />
* [[KNF:ADFS-dynamische-attributen|Dynamische attributen aanmaken voor Windows Server '''ADFS''']]<br />
<br />
'''Koppelen via Azure AD'''<br />
* [[KNF:Azure_AD_Premium_-_Identity_Provider|Ik wil koppelen als '''Identity Provider''' met '''Azure AD''']]<br />
<br />
'''Koppelen via Google Apps for Education'''<br />
* [[KNF:Google_Apps_for_Education_-_Identity_Provider|Ik wil koppelen als '''Identity Provider''' met '''Google Apps for Education''']]<br />
<br />
'''Koppelen via Moodle'''<br />
* [[KNF:Moodle-IdP|Ik wil koppelen als '''Identity Provider''' met '''Moodle''']]<br />
<br />
'''Koppelen via SimpleSAMLphp'''<br />
* [[KNF:SimpleSAMLphp-idp|Ik wil koppelen als '''Identity Provider''' met '''SimpleSAMLphp''']]<br />
<!--<br />
'''Koppelen met eigen een implementatie'''<br />
* [https://docs.google.com/document/d/1TmPAQalgN4JLtjlExP3nG1NLgpvK8Wm4xpmPpwOSpwU/edit?hl=en&authkey=CNOpmQ0&pli=1 Ik wil koppelen als '''Identity Provider''' via '''SAML 2.0''']<br />
--><br />
<br />
===Testen===<br />
* [[KNF:Identity_provider_koppeling_testen|Ik wil als identity provider mijn koppeling met Entree Federatie testen]]<br />
<br />
===Overige functionaliteit===<br />
'''SSO notificatie'''<br />
* [[KNF:SSOnotification|Als '''Identity Provider''' wil ik het '''schoolselectie scherm van Entree Federatie''' overslaan]]<br />
'''Realm scoping'''<br />
* [[KNF:Realm_scoping|Als '''Identity Provider''' wil ik '''mijn eigen schoolselectie''' scherm overslaan]]<br />
<br />
|- valign="top"<br />
| colspan="2" |<br />
<br />
==Instellen automatisch verversen metadata==<br />
* [[KNF:ADFS-metadata|Ik wil automatisch metadata verversen instellen op mijn '''ADFS server''']]<br />
* [[KNF:SimpleSAMLphp-metadata|Ik wil automatisch metadata verversen instellen in '''SimpleSAMLphp''']]<br />
* [[KNF:Shibboleth-metadata|Ik wil automatisch metadata verversen instellen in '''Shibboleth''']]<br />
* [[KNF:Asimba-metadata|Ik wil automatisch metadata verversen instellen in '''Asimba/OpenAselect''']]<br />
* [[KNF:Overig-metadata|Metadata verversen in overige SAML2 implementaties]]<br />
<br />
<br />
<!--== Hotlinks ==<br />
* [https://www.samltool.com/validate_xml.php Metadata valideren]<br />
* [[KNF:Attributen_overzicht_voor_Identity_Providers|Overzicht van '''Federatieve attributen''' voor Identity Providers]]<br />
* [[KNF:Attributen_overzicht_voor_Service_Providers|Overzicht van '''Federatieve attributen''' voor Service Providers]]<br />
* [[KNF:Beeldmateriaal|Beeldmateriaal van Entree Federatie]]<br />
<br />
Verouderde documenten en daarom uitgecommentarieerd<br />
=== Documenten ===<br />
* [https://docs.google.com/document/d/16gap_3p0ZkoqBqpuzDES6I2c8e33VTP3L5Q7TtzV7YY Entree dienstbeschrijving]<br />
* [http://kn.nu/aansluitvoorwaarden-entree-idp Aansluitvoorwaarden Identity Provider]<br />
* [http://www.kennisnet.nl/fileadmin/contentelementen/kennisnet/1_deze_map_gebruiken_voor_bestanden/Kennisnet-Federatie/ovk-dienstaanbieder-entree-2.2-webvoorbeeld.pdf Voorbeeld samenwerkingsovereenkomst]<br />
* [http://www.kennisnet.nl/fileadmin/contentelementen/kennisnet/Kennisnet_federatie/Entree-SLS.pdf SLS Onderwijsinstellingen]<br />
* [http://developers.wiki.kennisnet.nl/images/e/eb/SLS_Dienstleveranciers.pdf SLS Dienstleveranciers] <br />
* [http://www.kennisnet.nl/fileadmin/contentelementen/kennisnet/Kennisnet_federatie/Documentatie/Handleiding_Entree_2.0.pdf Gebruikershandleiding Autorisatiemodule]<br />
<br />
=== Archief ===<br />
* [https://docs.google.com/document/d/1BzpHUD59sAKLLACLMUubuuD0wvw8_YjUWraUjNEV6Jo Entree web services for IdP's (legacy documentatie)]--><br />
<br />
|}<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10918KNF:ARP service2021-03-22T20:05:53Z<p>Oostmeijer01: </p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij Kennisnet}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
De technisch documentatie van de API van de ARP service is te vinden op: https://arpservice.entree.kennisnet.nl/swagger-ui/index.html<br />
<br />
==Alle onderwijsinstellingen opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van het BRIN nummer van de instelling.<br />
Met behulp van de ''school-list'' operatie kunnen alle BRIN nummers die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"brin": "01JO",<br />
"friendlyName": "Stichting Koninklijke Auris Groep"<br />
},<br />
{<br />
"brin": "14CR",<br />
"friendlyName": "Julianaschool"<br />
},<br />
{<br />
"brin": "00NT03",<br />
"friendlyName": "Prof. Dr. Leo Kannercollege"<br />
},<br />
{<br />
"brin": "25PN01",<br />
"friendlyName": "ROC Nijmegen VAVO"<br />
},<br />
{<br />
"brin": "02CI02",<br />
"friendlyName": "Insula College"<br />
},<br />
{<br />
"brin": "17VS02",<br />
"friendlyName": "Greijdanus Enschede"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Alle Service Providers opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van de organisationCode van de Service Provider.<br />
Met behulp van de ''sp-list'' operatie kunnen alle organisationCode die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"organisationCode": "EXPLR",<br />
"friendlyName": "Explor Onderwijs"<br />
},<br />
{<br />
"organisationCode": "VMBWI",<br />
"friendlyName": "VmboBWI"<br />
},<br />
{<br />
"organisationCode": "XEBIC",<br />
"friendlyName": "OnStage"<br />
},<br />
{<br />
"organisationCode": "VOCON",<br />
"friendlyName": "VO-Content"<br />
},<br />
{<br />
"organisationCode": "TOEG",<br />
"friendlyName": "Toegang.org"<br />
},<br />
{<br />
"organisationCode": "KUNSKA",<br />
"friendlyName": "Kunskapsskolan"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Onderwijsinstelling - Service Provider ARP opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider ARP configuratie moet het BRIN nummer van de onderwijsinstelling en de organisationCode van de Service Provider worden opgegeven.<br />
* Bij ''transfer: true'' wordt het attribuut doorgegeven aan de Service Provider<br />
* Bij ''transfer: false'' wordt het attribuut niet doorgegeven aan de Service Provider<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school/{brin}/sp/{organisationCode}<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
}<br />
]<br />
</syntaxhighlight><br />
<br />
==ARP configuratie van een Service Provider==<br />
Wanneer een partij als Service Provider aangesloten is op Entree Federatie dan kan deze de eigen ARP configuratie opvragen.<br />
De door Kennisnet verstrekte API key is dan gekoppeld aan de specifieke Service Provider.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-config<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"serviceProvider": {<br />
"organisationCode": "KRULLE",<br />
"friendlyName": "Uitgeverij Krullevaar"<br />
},<br />
<br />
"attributeReleasePolicy": [<br />
{<br />
"school": {<br />
"brin": "20MG",<br />
"friendlyName": "Musopia Lyceum"<br />
},<br />
"identityProvider": {<br />
"organisationCode": "xZmZzy",<br />
"friendlyName": "Het Computergebouw IdP"<br />
},<br />
"attributes": [<br />
{<br />
"name": "nlEduPersonCohort",<br />
"friendlyName": "Startjaar",<br />
"transfer": false<br />
},<br />
{<br />
"name": "nlEduPersonDepartment",<br />
"friendlyName": "Afdeling of sector",<br />
"transfer": true<br />
},<br />
{<br />
"name": "eckId",<br />
"friendlyName": "ECK ID",<br />
"transfer": true<br />
}<br />
]<br />
<br />
},<br />
…<br />
] <br />
}<br />
</syntaxhighlight><br />
<br />
==Foutmeldingen==<br />
De ARP service kan de volgende antwoorden geven op foutieve aanvragen:<br />
<br />
===Ongeldige API key===<br />
Foutmelding wanneer de gebruikte API key niet geldig is (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:56:13.696+0000",<br />
"status": 403,<br />
"error": "Forbidden",<br />
"message": "403 Forbidden",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight><br />
<br />
===Geen ARP configuratie bekend voor onderwijsinstelling en Service Provider===<br />
Foutmelding wanneer er geen ARP configuratie bekend is voor de combinatie van het BRIN nummer en de organisatieCode.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T15:48:12.902+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for school-Service Provider combination",<br />
"path": "/v1/arp/school/20MG/sp/abcxyz"<br />
}<br />
</syntaxhighlight><br />
<br />
===Service Provider configuratie niet beschikbaar===<br />
Foutmelding wanneer een Service Provider configuratie wordt opgevraagd, met een API key die niet aan een Service Provider gekoppeld is.<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T16:47:07.283+0000",<br />
"status": 400,<br />
"error": "Bad Request",<br />
"message": "ARP configuration unavailable for organisation",<br />
"path": "/v1/arp/sp-config"<br />
}<br />
</syntaxhighlight><br />
<br />
===Interne server foutmelding ARP service===<br />
Foutmelding wanneer de ARP service een interne fout genereert (geldt voor alle operaties)<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
{<br />
"timestamp": "2021-02-22T17:04:55.481+0000",<br />
"status": 500,<br />
"error": "Internal Server Error",<br />
"message": "500 INTERNAL SERVER ERROR",<br />
"path": "/v1/arp/school-list"<br />
}<br />
</syntaxhighlight></div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10917KNF:ARP service2021-03-22T19:47:19Z<p>Oostmeijer01: </p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij Kennisnet}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
De technisch documentatie van de API van de ARP service is te vinden op: https://arpservice.entree.kennisnet.nl/swagger-ui/index.html<br />
<br />
==Alle onderwijsinstellingen opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van het BRIN nummer van de instelling.<br />
Met behulp van de ''school-list'' operatie kunnen alle BRIN nummers die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"brin": "01JO",<br />
"friendlyName": "Stichting Koninklijke Auris Groep"<br />
},<br />
{<br />
"brin": "14CR",<br />
"friendlyName": "Julianaschool"<br />
},<br />
{<br />
"brin": "00NT03",<br />
"friendlyName": "Prof. Dr. Leo Kannercollege"<br />
},<br />
{<br />
"brin": "25PN01",<br />
"friendlyName": "ROC Nijmegen VAVO"<br />
},<br />
{<br />
"brin": "02CI02",<br />
"friendlyName": "Insula College"<br />
},<br />
{<br />
"brin": "17VS02",<br />
"friendlyName": "Greijdanus Enschede"<br />
},<br />
…<br />
]<br />
</syntaxhighlight><br />
<br />
==Alle Service Providers opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van de organisationCode van de Service Provider.<br />
Met behulp van de ''sp-list'' operatie kunnen alle organisationCode die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/sp-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"organisationCode": "EXPLR",<br />
"friendlyName": "Explor Onderwijs"<br />
},<br />
{<br />
"organisationCode": "VMBWI",<br />
"friendlyName": "VmboBWI"<br />
},<br />
{<br />
"organisationCode": "XEBIC",<br />
"friendlyName": "OnStage"<br />
},<br />
{<br />
"organisationCode": "VOCON",<br />
"friendlyName": "VO-Content"<br />
},<br />
{<br />
"organisationCode": "TOEG",<br />
"friendlyName": "Toegang.org"<br />
},<br />
{<br />
"organisationCode": "KUNSKA",<br />
"friendlyName": "Kunskapsskolan"<br />
},<br />
…<br />
]<br />
</syntaxhighlight></div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10916KNF:ARP service2021-03-22T19:45:23Z<p>Oostmeijer01: </p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij Kennisnet}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
De technisch documentatie van de API van de ARP service is te vinden op: https://arpservice.entree.kennisnet.nl/swagger-ui/index.html<br />
<br />
==Alle onderwijsinstellingen opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van het BRIN nummer van de instelling.<br />
Met behulp van de ''school-list'' operatie kunnen alle BRIN nummers die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school-list<br />
<br />
'''Antwoord:'''<br />
<syntaxhighlight lang="json"><br />
[<br />
{<br />
"brin": "01JO",<br />
"friendlyName": "Stichting Koninklijke Auris Groep"<br />
},<br />
{<br />
"brin": "14CR",<br />
"friendlyName": "Julianaschool"<br />
},<br />
{<br />
"brin": "00NT03",<br />
"friendlyName": "Prof. Dr. Leo Kannercollege"<br />
},<br />
{<br />
"brin": "25PN01",<br />
"friendlyName": "ROC Nijmegen VAVO"<br />
},<br />
{<br />
"brin": "02CI02",<br />
"friendlyName": "Insula College"<br />
},<br />
{<br />
"brin": "17VS02",<br />
"friendlyName": "Greijdanus Enschede"<br />
},<br />
…<br />
]<br />
</syntaxhighlight></div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10915KNF:ARP service2021-03-22T19:42:03Z<p>Oostmeijer01: /* Alle scholen opvragen */</p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij Kennisnet}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
De technisch documentatie van de API van de ARP service is te vinden op: https://arpservice.entree.kennisnet.nl/swagger-ui/index.html<br />
<br />
==Alle onderwijsinstellingen opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van het BRIN nummer van de instelling.<br />
Met behulp van de ''school-list'' operatie kunnen alle BRIN nummers die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
'''Operatie:''' https://arpservice.entree.kennisnet.nl/v1/arp/school-list<br />
<br />
'''Antwoord:'''</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10914KNF:ARP service2021-03-22T19:38:15Z<p>Oostmeijer01: </p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij Kennisnet}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
De technisch documentatie van de API van de ARP service is te vinden op: https://arpservice.entree.kennisnet.nl/swagger-ui/index.html<br />
<br />
==Alle scholen opvragen==<br />
Voor het opvragen van de configuratie voor een specifieke onderwijsinstelling - Service Provider configuratie kan gebruik gemaakt worden van het BRIN nummer van de instelling.<br />
Met behulp van de ''school-list'' operatie kunnen alle BRIN nummers die binnen Entree Federatie bekend zijn opgevraagd worden.<br />
<br />
Operatie: https://arpservice.entree.kennisnet.nl/v1/arp/school-list</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10913KNF:ARP service2021-03-22T19:32:42Z<p>Oostmeijer01: </p>
<hr />
<div>=Inleiding=<br />
Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.<br />
<br />
{{Info|Voor het gebruik van de ARP service is een API key nodig. Deze kan worden aangevraagd bij Kennisnet}}<br />
<br />
De URL voor de ARP service is: https://arpservice.entree.kennisnet.nl<br />
<br />
De ARP service kent vier operaties:<br />
# Een lijst met alle scholen opvragen: ''/v1/arp/school-list''<br />
# Een lijst met alle Service Providers opvragen: ''/v1/arp/sp-list''<br />
# ARP configuratie voor een school – SP combinatie opvragen: ''/v1/arp/school/{brin}/sp/{organisationCode}''<br />
# Als Service Provider de eigen ARP configuratie opvragen: ''/v1/arp/sp-config''<br />
<br />
==Alle scholen opvragen==</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:ARP_service&diff=10912KNF:ARP service2021-03-22T19:27:39Z<p>Oostmeijer01: Nieuwe pagina aangemaakt met 'Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan...'</p>
<hr />
<div>Door middel van een Attribute Release Policy (ARP) bepaalt een onderwijsinstelling welke attributen (of persoonsgegevens) van haar gebruikers worden doorgegeven aan een Service Provider. Wanneer de configuratie van de ARP onjuist is kan dit ertoe leiden tot verstoring in de toegang tot digitale leermiddelen. De ARP service kan gebruikt worden om de actuele ARP configuratie op te vragen.</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Attributen_overzicht_voor_Identity_Providers/en&diff=10902KNF:Attributen overzicht voor Identity Providers/en2021-02-08T08:38:34Z<p>Oostmeijer01: </p>
<hr />
<div>{{PageTitleCustom|title=Overview attributes for Identity Providers|name=Entree Federation|image=true|imageurl=KNF:Hoofdpagina/en}}<br />
<br/><br />
__TOC__<br />
<br />
To authenticate and subsequently authorize a user the Entree Federation uses attributes. These attributes contain information (for example a firstname) about the user who wants access to a connected Service Provider.<br/><br />
There are two types of attributes used within the context of Entree Federation:<br />
*Default attributes<br />
*Additional attributes<br />
For most Service Providers the set with default attributes will suffice to authenticate and authorize users. However there are situations in which a Service Provider requires more information about a user. In this case one or more additional attributes can be used.<br />
<br />
In order to enable the users to gain access to all connected Service Providers an Identity Provider has to support both the default attributes and the additional attributes.<br />
<br />
==Default attributes==<br />
In this table you can find the attributes that an Identity Provider always has to pass on to Entree Federation.<br />
{| class="wikitable"<br />
! '''Attributename''' || '''Description''' || '''Format''' || '''Example'''<br />
|-<br />
| uid || Unique ID for the user, consisting of a username and a realm&nbsp;'''<sup>1</sup>''' || userId@realm || pietjepukkelen@petteflatcollege<br />
|-<br />
| employeeNumber || Studentnumber || string || 140136<br />
|-<br />
| givenName || First name || string || Pietje<br />
|-<br />
| sn || Surname || string || Pukkelen <br />
|-<br />
| eduPersonAffiliation || Role || student, employee, staff or affiliate || student<br />
|-<br />
| nlEduPersonHomeOrganizationId || BRIN code of the institution || 4 or 6 characters || 11ZZ03<br />
|-<br />
| nlEduPersonHomeOrganization || Name of the institution || string || Petteflat College<br />
|}<br />
'''<sup>1</sup> Attention:''' When using the SAML protocol the value of uid attribute has to be the same as the value of the ''<saml:NameID>'' field.<br/><br />
<br />
==Additional attributes==<br />
These attributes will only passed on to a Service Provider after the school has given explicit permission by signing an [https://support.kennisnet.org/Knowledgebase/Article/View/511/0/er-zijn-meer-attributen-van-gebruikers-nodig-wat-nu Attribute Release Policy] form.<br />
{| class="wikitable"<br />
! '''Attributename''' || '''Description''' || '''Format''' || '''Example'''<br />
|-<br />
| nlEduPersonProfileId || ECK attribute<br/>If a school has multiple administrations the administrationnumber can be added after the @ as in the example || studentnumber@administrationnumber.schooldomain.nl || 95312@1.kennisnet.nl<br />
|-<br />
| eckId || Unique ECK pseudonym for students and teachers&nbsp;'''<sup>1</sup>''' || string || <nowiki>https://ketenid.nl/pilot/8e0a9f57fc76854d3dd2d3c4fa732feaf7b7a2d5f549a5458ce300223b83172f5074aa88a8cef0712aca19b62e9b90d0352e98fc76f498cd3947e7cc810f03fa</nowiki><br />
|-<br />
| initials || Initials || string || P.<br />
|-<br />
| nlEduPersonTussenvoegsels || Insertion || string || van<br />
|-<br />
| mail || Email address || string || pietjepukkelen@petteflatcollege.nl<br />
|-<br />
| homePhone || Phone number || string || +31791234567<br />
|-<br />
| mobile || Mobile number || string || +31612345678<br />
|-<br />
| nlEduPersonBirthDate || Date of birth|| yyyymmdd || 19801231<br />
|-<br />
| nlEduPersonProfile || Name of study preceded by ''CREBO<space>''.<br/>Optionally ''BOL_'' or ''BBL_'' can be added at the beginning || string || 2345 BOL_ICT.Gamedeveloper <br />
|-<br />
| nlEduPersonDepartment || Department or sector || string || Techniek<br />
|-<br />
| nlEduPersonUnit || Primary class or group. Unique within the school administration or domain || string || H2A<br />
|-<br />
| ou || Class or group || string || H2A<br />
|-<br />
| nlEduPersonCohort || Starting year || string || 2014<br />
|-<br />
| ocwILTRegistratiecode || ILT Registrationcode<br/>''In accordance with annex I and II, corresponding to Article 1 of the Regulation of the Minister of OCW containing the determination of the elementcode table and studycode table for secondary and adult education: No DUO / OND-2013/15135 M.'' || four digits || 0011<br />
|-<br />
| ocwILTLeerjaar || ILT cohort<br/>''In accordance with annex I and II, corresponding to Article 1 of the Regulation of the Minister of OCW containing the determination of the elementcode table and studycode table for secondary and adult education: nr. DUO/OND-2013/15135 M.'' || 1 digit || 1<br />
|-<br />
| digiDeliveryId || ECK digital delivery address || string|| ED8AE607-WI3N-414C-T87A-624E74S7T005<br />
|-<br />
| nlEduPersonHomeOrganizationBranchId || Establishment number (BRIN 6) || String of 6 alpha-numeric characters || 11ZZ03<br />
|-<br />
| preferredLanguage || Preferred Language || Language code (https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) || nl<br />
|-<br />
| country || Country || Country code (https://en.wikipedia.org/wiki/ISO_3166-1) || NL<br />
|}<br />
'''<sup>1</sup>''' For more information on the ECK-iD: https://www.eck-id.nl/<br/><br />
<br />
===The nlEduPersonRealId attribute===<br />
In some cases a Service Provider request the ''nlEduPersonRealId'' attribute. During an authentication the Entree Federation application will copy the value of the ''uid'' attribitute that is sent by the Identity Provider into the ''nlEduPersonRealId'' attribute. Therefore the Identity Provider does '''not''' need to configure the ''nlEduPersonRealId'' and it is not listed in the table above.<br />
<br />
==Guidelines for Identity Providers==<br />
The user's identity is defined by the attributes that are passed down. It's important that this happens correctly and consistently. Therefore Kennisnet has set up a number of guidelines.<br />
<br />
===Realm in the ''uid'' attribute===<br />
The ''uid''-attribute combined with the ''employeeNumber'' are the basis of the unique identity of the user within the system. Service Providers who are connected to Entree Federation use this ID to monitor progress or link licenses to it. From a users perspective therefor it is of the atmost importance that this ID is persistent.<br />
<br />
The ''uid''-attribute also contains a domain (or realm). If a school wants to change to another type of Identity Provider it is important that the ''uid'' of its users stay persistent. Therefor the domain should not contain the name of a system, e.g. pietjepukkelen@elonaam, but the domain should be linked to the school, e.g. pietjepukkelen@petteflatcollege.<br />
<br />
If an Identity Provider is used by multiple educational institutions, the Identity Provider has to be able to pass on a unique domain per educational institution within the ''uid''-attribute.<br />
<br />
===BRIN number in the ''nlEduPersonHomeOrganizationId'' attribute===<br />
Many of the connected Service Providers use schoollicenses. In those cases the BRIN number in the ''nlEduPersonHomeOrganizationId''-attribute is used to authorize the user. Entree Federation will validate the received BRIN number against the registered BRIN number.<br />
# An Identity Provider must be able to pass on a BRIN number containing either four or six characters.<br />
# If an Identity Provider is used by multiple educational institutions, the Identity Provider has to be able to pass on a unique BRIN number per educational institution within the ''nlEduPersonHomeOrganizationId''-attribute.<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Azure_AD_Premium_-_Identity_Provider&diff=10901KNF:Azure AD Premium - Identity Provider2021-02-01T09:33:40Z<p>Oostmeijer01: </p>
<hr />
<div>__TOC__<br />
Deze handleiding bevat een stappenplan om een '''Azure AD''' omgeving in te zetten als Identity Provider en aan Entree Federatie te koppelen.<br />
<br />
'''Let op:''' Deze handleiding is niet geschikt voor de Gratis en Basic edities van Azure AD<br />
<br />
Om aan de hand van deze handleiding een koppeling te kunnen realiseren moet aan de volgende voorwaarden worden voldaan:<br />
#U heeft een werkende Azure AD omgeving<br />
#U heeft ervaring met het beheren van een Azure AD omgeving<br />
#U heeft zich als Identity Provider bij Entree Federatie aangemeld. U kunt zich aanmelden door het invullen van het formulier op: https://www.kennisnet.nl/entree-federatie/aanmelden/<br />
<br />
{{Warn|Recent is de Azure AD omgeving gewijzigd, voor een handleiding verwijzen wij je naar de documentatie van Microsoft: https://docs.microsoft.com/en-us/azure/active-directory/active-directory-saas-custom-apps#adding-an-unlisted-application}}<br />
Azure is voortdurend in ontwikkeling. Als je opmerkingen of aanvullingen hebt ontvangen we die graag op implementaties@kennisnet.nl.<br />
<br />
==Stap 1: Configuratie van de koppeling==<br />
Voor het maken van een koppeling moet een app geconfigureerd worden die via het SAML protocol de communicatie tussen Azure AD en Entree Federatie verzorgt. <br />
<br />
#Ga naar https://admin.microsoft.com/<br />
#Klik op 'Show All' en vervolgens 'Azure active Directory'<br />
#*- Als alternatief ga direct naar https://aad.portal.azure.com/<br />
<br />
#Klik op 'Enterprise applications'<br />
#Klik op '+ New application'<br />
#Kies Non-Gallery Application<br />
#Geef als naam op Entree Federatie staging of productie<br />
#Kies na creëren 'Set up single sign on'<br />
#Kies SAML<br />
#Edit 'Basic SAML Configuration<br />
#Vul bij Identifier in :<br />
#*Staging: https://aselect-s.entree.kennisnet.nl<br />
#*Productie: https://aselect.entree.kennisnet.nl<br />
#Reply URL:<br />
#*Staging: https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
#*Productie: https://aselect.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
#Sign on URL:<br />
#*Staging: https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
#*Productie: https://aselect.entree.kennisnet.nl/openaselect/profiles/saml/sp/sso/web<br />
# Ga nu naar het menu Single sign-on en kopieer de URL bij 'App Federation Metadata URL' stuur de URL naar [mailto:support@kennisnet.nl| Support Kennisnet]<br />
<br />
De koppeling is nu geconfigureerd, in het volgende deel worden de attributen die worden doorgegeven gedefinieerd.<br />
<br />
==Stap 2: Attributen definiëren==<br />
Entree Federatie maakt onderscheid tussen '''‘standaard attributen’''' en '''‘aanvullende attributen’'''. De standaard attributen dienen altijd te worden doorgegeven door de Azure AD applicatie. Een overzicht van de attributen is te vinden op [[KNF:Attributen_overzicht_voor_Identity_Providers|Attributen overzicht]].<br />
<br />
Sommige diensten die zijn aangesloten op Entree Federatie vragen naast de standaard attributen ook nog één of meerdere aanvullende attributen. In deze handleiding gaan we alleen uit van de standaard attributen, maar houd er rekening mee dat er meer attributen gedefinieerd moeten worden.<br />
<br />
# Open de tab ‘Attributes’.<br />
# Azure AD heeft de volgende attributen gedefinieerd:<br/>[[Bestand:AzureADIdP07.png|border|600px]]<br/><br/><br />
# Pas de attributen aan zodat ze gelijk zijn aan het onderstaande scherm.<br/>'''Let op:''' Er zijn twee waarden die moeten worden aangepast aan de eigen specifieke situatie.<br />
#* '''nlEduPersonHomeOrganizationId:''' in het voorbeeld heeft dit veld de vaste waarde ‘SKNS’. Dit moet het BRIN nummer zijn van de school waarvoor de koppeling wordt gemaakt.<br />
#* '''nlEduPersonHomeOrganization:''' in het voorbeeld heeft dit veld de vaste waarde ‘Kennisnet kantoor’. Dit moet de naam van de school zijn van de school waarvoor de koppeling wordt gemaakt.<br/>[[Bestand:AzureADIdP08.png|border|600px]]<br/><br/><br />
<br />
Een volledig overzicht van alle attributen is hier te vinden [[KNF:Attributen_overzicht_voor_Identity_Providers|Attributen overzicht]].<br />
<br />
De app is nu geconfigureerd en de attributen zijn gedefinieerd. Nadat Kennisnet de koppeling heeft geconfigureerd op basis van het metadata XML bestand kan de koppeling getest worden.<br />
<br />
===Attributen voor een groep===<br />
Het is mogelijk om bepaalde attributen door te geven aan de hand van groepen in de AD. Bijvoorbeeld voor het doorgeven van de EduPersonAffiliation (de rol van de gebruiker, 'student', 'employee' of 'staff'). <br />
<br />
Tijdens het configureren van een attribuut, staat eronder een drop down menu "Claim conditions" waarmee het attribuut voor een groep ingesteld kan worden.<br />
<br />
[[Bestand:ManageGroupClaim.png|border|600px]]<br />
<br />
==Sessieduur==<br />
Azure AD levert standaard een Sessieduur met een onbeperkte levensduur, in tegenstelling tot AD FS, waarbij de session tokens na 8 uren verlopen. Dit kan tot inlogproblemen leiden bij aangesloten diensten, zoals Entree Federatie, die een eigen session timeout kennen. <br />
<br />
Met behulp van onderstaande documentatie van Microsoft is het mogelijk de "Aanmeldingsfrequentie van gebruikers" aan te passen. Voor Entree Federatie is het advies om de aanmeldfrequentie aan te passen naar 1 keer per 10 uur. <br />
https://docs.microsoft.com/nl-nl/azure/active-directory/conditional-access/howto-conditional-access-session-lifetime#policy-1-sign-in-frequency-control<br />
<br />
{{Warn|Conditional Access werkt alleen met Azure Premium P1 of Premium P2. Met andere versies is dit niet mogelijk. Houd er rekening mee dat een upgrade kosten met zich mee kan brengen.}}<br />
<br />
==Stap 3: Testen==<br />
Om de koppeling te testen kan gebruik gemaakt worden van de referentie Service Provider van Kennisnet. Na een succesvolle authenticatie via de Azure AD worden de aan de referentie SP doorgegeven attributen getoond.<br />
<br />
# Ga naar de Kennisnet referentie Service Provider.<br/>'''Staging:''' https://referentie-s.entree.kennisnet.nl/referentiesp<br/>'''Productie:''' https://referentie.entree.kennisnet.nl/referentiesp<br />
# Je wordt nu doorgestuurd naar het WAYF ('''W'''here '''A'''re '''Y'''ou '''F'''rom) scherm van Entree Federatie.<br />
# Zoek de school waarmee je wilt inloggen.<br/>[[Bestand:Wayf01.PNG|border|400px]]<br/><br/><br />
# Selecteer de school en klik op ‘Verder’. Je wordt nu doorgestuurd naar de Azure AD omgeving die bij de school hoort.<br />
# Log in op de Azure AD omgeving.<br />
# Hierna wordt je teruggestuurd naar de referentie Service Provider en krijg je een overzicht van de attributen die zijn ontvangen.<br/>[[Bestand:refsp.png|border|600px]]<br/><br/><br />
<br />
Mocht er in dit scenario iets fout gaan neem dan contact op met Kennisnet.</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Entree-Account&diff=10895KNF:Entree-Account2021-01-21T11:51:19Z<p>Oostmeijer01: /* Beschikbare attributen */</p>
<hr />
<div>==Entree Account==<br />
Voor scholen die niet aangesloten zijn op Entree Federatie is het mogelijk om een los en persoonlijk Entree Account aan te maken. Hiervoor is alleen een uniek e-mailadres nodig. [https://account.kennisnet.nl/| Account aanmaken]<br />
<br />
Met een Entree Account is het niet mogelijk om te bepalen bij welke school een gebruiker hoort. Een Dienstaanbieder, die aangesloten is op Entree Federatie, kan zijn dienst(en) zowel toegankelijk maken voor Eindgebruikers met een schoolaccount en/of voor Eindgebruikers met een Entree-account.<br />
<br />
Entree Account is als een zelfstandige Identity Provider aangesloten bij Entree Federatie. Gebruikers kunnen tijdens het inloggen, zoeken op "Entree" en hiermee vervolgens inloggen. <br />
<br />
===Beschikbare attributen===<br />
Dienstleveranciers ontvangen de volgende attributen via Entree Account.<br />
<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| uid || Uniek versleuteld ID || hash@kennisnet.org || qj7cks8qdz9ph54@kennisnet.org<br />
|-<br />
| givenName || Voornaam || vrij tekstveld || Pietje<br />
|-<br />
| eduPersonAffiliation || Rol || affiliate || affiliate<br />
|-<br />
| nlEduPersonHomeOrganizationId || BRIN van Entree || vrij tekstveld || ENTREE<br />
|-<br />
| nlEduPersonHomeOrganization || Naam van de instelling || vrij tekstveld || Entree<br />
|}</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Entree-Account&diff=10894KNF:Entree-Account2021-01-21T11:51:07Z<p>Oostmeijer01: /* Beschikbare attributen */</p>
<hr />
<div>==Entree Account==<br />
Voor scholen die niet aangesloten zijn op Entree Federatie is het mogelijk om een los en persoonlijk Entree Account aan te maken. Hiervoor is alleen een uniek e-mailadres nodig. [https://account.kennisnet.nl/| Account aanmaken]<br />
<br />
Met een Entree Account is het niet mogelijk om te bepalen bij welke school een gebruiker hoort. Een Dienstaanbieder, die aangesloten is op Entree Federatie, kan zijn dienst(en) zowel toegankelijk maken voor Eindgebruikers met een schoolaccount en/of voor Eindgebruikers met een Entree-account.<br />
<br />
Entree Account is als een zelfstandige Identity Provider aangesloten bij Entree Federatie. Gebruikers kunnen tijdens het inloggen, zoeken op "Entree" en hiermee vervolgens inloggen. <br />
<br />
===Beschikbare attributen===<br />
Dienstleveranciers ontvangen de volgende attributen via Entree Account.<br />
<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Voorbeeld'''<br />
|-<br />
| uid || Uniek versleuteld ID || hash@kennisnet.org || qj7cks8qdz9ph54@kennisnet.org<br />
|-<br />
| givenName || Voornaam || vrij tekstveld || Pietje<br />
|-<br />
| eduPersonAffiliation || Rol || affiliate || affiliate<br />
|-<br />
| nlEduPersonHomeOrganizationId || BRIN van Entree || vrij tekstveld || Entree<br />
|-<br />
| nlEduPersonHomeOrganization || Naam van de instelling || vrij tekstveld || Entree<br />
|}</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Entree-Account&diff=10893KNF:Entree-Account2021-01-21T11:50:46Z<p>Oostmeijer01: </p>
<hr />
<div>==Entree Account==<br />
Voor scholen die niet aangesloten zijn op Entree Federatie is het mogelijk om een los en persoonlijk Entree Account aan te maken. Hiervoor is alleen een uniek e-mailadres nodig. [https://account.kennisnet.nl/| Account aanmaken]<br />
<br />
Met een Entree Account is het niet mogelijk om te bepalen bij welke school een gebruiker hoort. Een Dienstaanbieder, die aangesloten is op Entree Federatie, kan zijn dienst(en) zowel toegankelijk maken voor Eindgebruikers met een schoolaccount en/of voor Eindgebruikers met een Entree-account.<br />
<br />
Entree Account is als een zelfstandige Identity Provider aangesloten bij Entree Federatie. Gebruikers kunnen tijdens het inloggen, zoeken op "Entree" en hiermee vervolgens inloggen. <br />
<br />
===Beschikbare attributen===<br />
Dienstleveranciers ontvangen de volgende attributen en waardes via Entree Account.<br />
<br />
{| class="wikitable"<br />
! '''Attribuutnaam''' || '''Beschrijving''' || '''Formaat''' || '''Waarde'''<br />
|-<br />
| uid || Uniek versleuteld ID || hash@kennisnet.org || qj7cks8qdz9ph54@kennisnet.org<br />
|-<br />
| givenName || Voornaam || vrij tekstveld || Pietje<br />
|-<br />
| eduPersonAffiliation || Rol || affiliate || affiliate<br />
|-<br />
| nlEduPersonHomeOrganizationId || BRIN van Entree || vrij tekstveld || Entree<br />
|-<br />
| nlEduPersonHomeOrganization || Naam van de instelling || vrij tekstveld || Entree<br />
|}</div>Oostmeijer01https://developers.wiki.kennisnet.nl/index.php?title=KNF:Hoofdpagina&diff=10891KNF:Hoofdpagina2021-01-11T09:34:21Z<p>Oostmeijer01: </p>
<hr />
<div>__NOTOC__<br />
{{Talen}}<br />
<br />
{| cellspacing="10" cellpadding="5" border="0" width="90%"<br />
|- valign="top" <br />
| colspan="2" | <br />
<br />
== Algemeen ==<br />
<br />
|- valign="top" <br />
| style="width:50%" |<br />
<br />
* [https://prezi.com/eq2xjhid1fxf/entree-federatie-authenticatie/ Een authenticatie via Entree Federatie gezien vanuit de '''gebruiker''']<br />
* [[KNF:Hoe_werkt_Entree_Federatie%3F|De technische werking van een federatieve authenticatie]]<br />
<br/><br />
'''Communicatie'''<br />
* [https://www.kennisnet.nl/entree-federatie Entree Federatie website]<br />
* [http://kn.nu/servicemeldingen Op de hoogte blijven van onderhoud en storingen]<br />
* [[KNF:Beeldmateriaal|Beeldmateriaal van Entree Federatie]]<br />
<br />
'''Updates'''<br />
* [[KNF:TLS1.2|TLS 1.2 activeren voor AD FS]]<br />
<br />
'''Entree Account'''<br />
* [[KNF:Entree-Account|Entree Account]]<br />
<br />
| style="width:50%" |<br />
<br />
'''Metadata Entree Federatie'''<br/><br />
De metadata url's van Entree Federatie bevatten zowel SP als IdP metadata.<br />
* '''Productie:''' https://hub.entree.kennisnet.nl/openaselect/profiles/saml/<br />
* '''Staging:''' https://hub-s.entree.kennisnet.nl/openaselect/profiles/saml/<br />
<br/><br />
'''Metadata valideren'''<br/><br />
Om zelf SAML metadata te valideren kan [https://www.samltool.com/validate_xml.php deze tool] gebruikt worden.<br />
<br />
'''Wijzigingen'''<br />
* [[KNF:Wijzigingen|Wijzigingen]]<br />
<br />
|- valign="top"<br />
| style="width:50%" |<br />
<br />
== Service Provider (Dienstleverancier) ==<br />
===Aansluiten===<br />
* [[KNF:SAML-sp|Ik wil als '''dienstleverancier''' aansluiten op Entree Federatie]]<br />
'''Attributen'''<br />
* [[KNF:Attributen_overzicht_voor_Service_Providers|Overzicht van '''Federatieve attributen''' voor Service Providers]]<br />
'''Koppelen via SimpleSAMLphp'''<br />
* [[KNF:SimpleSAMLphp-sp|Ik wil koppelen als '''service provider''' met '''SimpleSAMLphp''']]<br />
'''Koppelen via OneLogin PHP'''<br />
* [[KNF:OneLogin_configureren_als_Service_Provider|Ik wil koppelen als '''service provider''' met '''OneLogin PHP''']]<br />
'''Koppelen via Shibboleth'''<br />
* [[KNF:Shibboleth-sp|Ik wil koppelen als '''service provider''' met '''Shibboleth''']]<br />
'''Koppelen via ComponentSpace'''<br />
* [https://docs.google.com/document/d/18CmPP0WWNEZ1uz6xGqUEQy-uNIOk7w_PLc3i7jxBBFQ Ik wil koppelen als '''service provider''' met '''ComponentSpace''']<br />
:: [https://developers.wiki.kennisnet.nl/images/7/75/ComponentSpace-SAML-projects_1_.zip SAML2 ComponentSpace example (sources)]<br />
===Testen===<br />
* [[KNF:Service_provider_koppeling_testen|Ik wil als service provider mijn koppeling met Entree Federatie testen]]<br />
===Overige functionaliteit===<br />
'''SSO query'''<br />
* [[KNF:Single_Sign_On_query|Ik wil als '''service-provider''' controleren of een gebruiker al is ingelogd met een '''SSO query''']]<br />
'''Scoping'''<br />
* [[KNF:scoping|Als '''service-provider''' het WAYF '''inlogscherm overslaan''']]<br />
'''Multi tenant koppeling'''<br />
* [[KNF:Multi-Tenant-SAML-SP|Ik wil koppelen als '''service provider''' met een '''Multi-Tenant SAML''' oplossing]]<br />
'''Gebruik van frames en iframes'''<br />
* [[KNF:iframes|Als '''service-provider''' gebruik maken van FRAMEs en IFRAMEs]]<br />
<br />
| style="width:50%" |<br />
<br />
== Identity Provider (ELO of school) ==<br />
'''Attributen'''<br />
* [[KNF:Attributen_overzicht_voor_Identity_Providers|Overzicht van '''Federatieve attributen''' voor Identity Providers]]<br />
<br />
'''Migratie'''<br />
* [[KNF:Migratie_van_Identity_Provider|Ik wil als school een andere '''Identity Provider''' gebruiken]]<br />
* [[KNF:ADFS-Migratie|Ik wil mijn bestaande koppeling (ELO) naar Windows Server '''ADFS''' migreren]]<br />
<br />
'''Koppelen via ADFS'''<br />
* [[KNF:ADFS-IdP|Ik wil koppelen als '''Identity Provider''' met Windows Server '''ADFS''']]<br />
<!-- * [[KNF:ADFS-SQL|SQL QUERY attributen aanmaken voor Windows Server '''ADFS''']] --><br />
* [[KNF:ADFS-dynamische-attributen|Dynamische attributen aanmaken voor Windows Server '''ADFS''']]<br />
<br />
'''Koppelen via Azure AD'''<br />
* [[KNF:Azure_AD_Premium_-_Identity_Provider|Ik wil koppelen als '''Identity Provider''' met '''Azure AD''']]<br />
<br />
'''Koppelen via Google Apps for Education'''<br />
* [[KNF:Google_Apps_for_Education_-_Identity_Provider|Ik wil koppelen als '''Identity Provider''' met '''Google Apps for Education''']]<br />
<br />
'''Koppelen via Moodle'''<br />
* [[KNF:Moodle-IdP|Ik wil koppelen als '''Identity Provider''' met '''Moodle''']]<br />
<br />
'''Koppelen via SimpleSAMLphp'''<br />
* [[KNF:SimpleSAMLphp-idp|Ik wil koppelen als '''Identity Provider''' met '''SimpleSAMLphp''']]<br />
<!--<br />
'''Koppelen met eigen een implementatie'''<br />
* [https://docs.google.com/document/d/1TmPAQalgN4JLtjlExP3nG1NLgpvK8Wm4xpmPpwOSpwU/edit?hl=en&authkey=CNOpmQ0&pli=1 Ik wil koppelen als '''Identity Provider''' via '''SAML 2.0''']<br />
--><br />
<br />
===Testen===<br />
* [[KNF:Identity_provider_koppeling_testen|Ik wil als identity provider mijn koppeling met Entree Federatie testen]]<br />
<br />
===Overige functionaliteit===<br />
'''SSO notificatie'''<br />
* [[KNF:SSOnotification|Als '''Identity Provider''' wil ik het '''schoolselectie scherm van Entree Federatie''' overslaan]]<br />
'''Realm scoping'''<br />
* [[KNF:Realm_scoping|Als '''Identity Provider''' wil ik '''mijn eigen schoolselectie''' scherm overslaan]]<br />
<br />
|- valign="top"<br />
| colspan="2" |<br />
<br />
==Instellen automatisch verversen metadata==<br />
* [[KNF:ADFS-metadata|Ik wil automatisch metadata verversen instellen op mijn '''ADFS server''']]<br />
* [[KNF:SimpleSAMLphp-metadata|Ik wil automatisch metadata verversen instellen in '''SimpleSAMLphp''']]<br />
* [[KNF:Shibboleth-metadata|Ik wil automatisch metadata verversen instellen in '''Shibboleth''']]<br />
* [[KNF:Asimba-metadata|Ik wil automatisch metadata verversen instellen in '''Asimba/OpenAselect''']]<br />
* [[KNF:Overig-metadata|Metadata verversen in overige SAML2 implementaties]]<br />
<br />
<br />
<!--== Hotlinks ==<br />
* [https://www.samltool.com/validate_xml.php Metadata valideren]<br />
* [[KNF:Attributen_overzicht_voor_Identity_Providers|Overzicht van '''Federatieve attributen''' voor Identity Providers]]<br />
* [[KNF:Attributen_overzicht_voor_Service_Providers|Overzicht van '''Federatieve attributen''' voor Service Providers]]<br />
* [[KNF:Beeldmateriaal|Beeldmateriaal van Entree Federatie]]<br />
<br />
Verouderde documenten en daarom uitgecommentarieerd<br />
=== Documenten ===<br />
* [https://docs.google.com/document/d/16gap_3p0ZkoqBqpuzDES6I2c8e33VTP3L5Q7TtzV7YY Entree dienstbeschrijving]<br />
* [http://kn.nu/aansluitvoorwaarden-entree-idp Aansluitvoorwaarden Identity Provider]<br />
* [http://www.kennisnet.nl/fileadmin/contentelementen/kennisnet/1_deze_map_gebruiken_voor_bestanden/Kennisnet-Federatie/ovk-dienstaanbieder-entree-2.2-webvoorbeeld.pdf Voorbeeld samenwerkingsovereenkomst]<br />
* [http://www.kennisnet.nl/fileadmin/contentelementen/kennisnet/Kennisnet_federatie/Entree-SLS.pdf SLS Onderwijsinstellingen]<br />
* [http://developers.wiki.kennisnet.nl/images/e/eb/SLS_Dienstleveranciers.pdf SLS Dienstleveranciers] <br />
* [http://www.kennisnet.nl/fileadmin/contentelementen/kennisnet/Kennisnet_federatie/Documentatie/Handleiding_Entree_2.0.pdf Gebruikershandleiding Autorisatiemodule]<br />
<br />
=== Archief ===<br />
* [https://docs.google.com/document/d/1BzpHUD59sAKLLACLMUubuuD0wvw8_YjUWraUjNEV6Jo Entree web services for IdP's (legacy documentatie)]--><br />
<br />
|}<br />
<br />
[[Categorie:Entree Federatie]]</div>Oostmeijer01