KNF:OneLogin configureren als Service Provider: verschil tussen versies
(10 tussenliggende versies door 2 gebruikers niet weergegeven) | |||
Regel 4: | Regel 4: | ||
Deze handleiding bevat een stappenplan om OneLogin in te zetten als Service Provider Provider en aan Entree Federatie te koppelen. |
Deze handleiding bevat een stappenplan om OneLogin in te zetten als Service Provider Provider en aan Entree Federatie te koppelen. |
||
+ | {{Warn|De OneLogin PHP toolkit ondersteunt '''geen''' scoping, er is wel een workaround beschikbaar op https://github.com/onelogin/php-saml/pull/214/files}} |
||
==Stap 1: Installatie== |
==Stap 1: Installatie== |
||
Regel 23: | Regel 24: | ||
==Stap 3: Aanpassen settings.php== |
==Stap 3: Aanpassen settings.php== |
||
Voor het realiseren van een koppeling met Entree Federatie zijn een aantal aanpassingen in het bestand ''settings.php'' in de project directory nodig.<br/> |
Voor het realiseren van een koppeling met Entree Federatie zijn een aantal aanpassingen in het bestand ''settings.php'' in de project directory nodig.<br/> |
||
− | '''LET OP!''' De |
+ | '''LET OP!''' De aanpassingen in de voorbeeld code zijn toevoegingen en/of wijzigingen. De php tags zijn niet meegenomen.<br/> |
− | De aanpassingen staan beschreven in commentaar |
+ | De aanpassingen staan beschreven in commentaar. |
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
$settings = array ( |
$settings = array ( |
||
Regel 33: | Regel 34: | ||
// Informatie over de te implementeren Service Provider applicatie |
// Informatie over de te implementeren Service Provider applicatie |
||
'sp' => array ( |
'sp' => array ( |
||
− | // Het entityID is de unieke |
+ | // Het entityID is de unieke identifier van de applicatie (voorbeeld: https://example.com/projectnaam) |
'entityId' => '', |
'entityId' => '', |
||
// Informatie over het endpoint waar Entree Federatie de responses naar toestuurt |
// Informatie over het endpoint waar Entree Federatie de responses naar toestuurt |
||
Regel 51: | Regel 52: | ||
// Informatie over de Entree Federatie applicatie |
// Informatie over de Entree Federatie applicatie |
||
// De informatie staat in de metadata van Entree Federatie |
// De informatie staat in de metadata van Entree Federatie |
||
− | // Metadata staging omgeving: https:// |
+ | // Metadata staging omgeving: https://engine.entree-s.kennisnet.nl/authentication/idp/metadata |
− | // Metadata productie omgeving: https:// |
+ | // Metadata productie omgeving: https://engine.entree.kennisnet.nl/authentication/idp/metadata |
'idp' => array ( |
'idp' => array ( |
||
// De unieke identifier van Entree Federatie |
// De unieke identifier van Entree Federatie |
||
− | 'entityId' => '', |
+ | 'entityId' => 'https://engine.entree.kennisnet.nl/authentication/idp/metadata', |
+ | //'entityId' => 'https://engine.entree-s.kennisnet.nl/authentication/idp/metadata', |
||
// Endpoint van Entree Federatie waar de authenticatie requests naar toegestuurd worden |
// Endpoint van Entree Federatie waar de authenticatie requests naar toegestuurd worden |
||
'singleSignOnService' => array ( |
'singleSignOnService' => array ( |
||
// De URL van het endpoint |
// De URL van het endpoint |
||
− | 'url' => '', |
+ | 'url' => 'https://engine.entree.kennisnet.nl/authentication/idp/single-sign-on', |
+ | //'url' => 'https://engine.entree-s.kennisnet.nl/authentication/idp/single-sign-on', |
||
// SAML protocol binding dat gebruikt wordt om de requests naar Entree Federatie te versturen |
// SAML protocol binding dat gebruikt wordt om de requests naar Entree Federatie te versturen |
||
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', |
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', |
||
), |
), |
||
− | // De public key in de metadata van Entree Federatie |
+ | // De public key in de metadata van Entree Federatie, te vinden in de metadata onder het onderdeel IDPSSODescriptor / X509Certificate. |
'x509cert' => '...' |
'x509cert' => '...' |
||
), |
), |
||
Regel 71: | Regel 74: | ||
==Stap 4: Aanpassen advanced_settings.php== |
==Stap 4: Aanpassen advanced_settings.php== |
||
Aanpassing in het bestand ''advanced_settings.php'' in de hoofd directory.<br/> |
Aanpassing in het bestand ''advanced_settings.php'' in de hoofd directory.<br/> |
||
− | '''LET OP!''' De |
+ | '''LET OP!''' De aanpassingen in de voorbeeld code zijn toevoegingen en/of wijzigingen. De php tags zijn niet meegenomen.<br/> |
− | De aanpassingen staan beschreven in commentaar |
+ | De aanpassingen staan beschreven in commentaar. |
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
// Alle verzonden en ontvangen berichten moeten gesigned zijn |
// Alle verzonden en ontvangen berichten moeten gesigned zijn |
||
Regel 97: | Regel 100: | ||
), |
), |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
− | |||
− | ==Stap 5: Delen metadata URL== |
||
− | |||
[[Categorie:Entree Federatie]] |
[[Categorie:Entree Federatie]] |
Huidige versie van 12 jul 2022 om 10:44
Nederlands | English |
Deze handleiding bevat een stappenplan om OneLogin in te zetten als Service Provider Provider en aan Entree Federatie te koppelen.
De OneLogin PHP toolkit ondersteunt geen scoping, er is wel een workaround beschikbaar op https://github.com/onelogin/php-saml/pull/214/files |
Stap 1: Installatie
- Download de PHP toolkit van https://github.com/onelogin/php-saml.
- Pak de zip uit en kopieer de directory php-saml-master naar de juiste locatie op de webserver.
- Hernoem de demo1 directory naar de gewenste project naam (bijvoorbeeld entreefederatie).
- Verwijder het bestand settings_example.php uit de project directory.
- Kopieer het bestand settings_example.php uit de hoofd directory naar de project directory.
- Hernoem dit bestand naar settings.php.
- Hernoem het bestand advanced_settings_example.php in de hoofd directory naar advanced_settings.php.
Stap 2: Certificaat genereren
De berichten die met de Entree Federatie applicatie worden uitgewisseld tijdens een authenticatie worden ondertekend door middel van XML-signing. Hiervoor moet een certificaat gegenereerd worden.
- In de hoofd directory (php-saml-master) bevindt zich de sub directory certs.
- Ga naar de directory certs.
- Voer het onderstaande commando uit om het certificaat te genereren:
openssl req -newkey rsa:2048 -new -x509 -days 3652 -nodes -out sp.crt -keyout sp.key
- Volg de instructies en vul de juiste certificaat gegevens in.
Stap 3: Aanpassen settings.php
Voor het realiseren van een koppeling met Entree Federatie zijn een aantal aanpassingen in het bestand settings.php in de project directory nodig.
LET OP! De aanpassingen in de voorbeeld code zijn toevoegingen en/of wijzigingen. De php tags zijn niet meegenomen.
De aanpassingen staan beschreven in commentaar.
$settings = array (
'strict' => false,
'debug' => false,
// Vul hier de base URL van de applicatie in (voorbeeld: https://example.com)
'baseurl' => '',
// Informatie over de te implementeren Service Provider applicatie
'sp' => array (
// Het entityID is de unieke identifier van de applicatie (voorbeeld: https://example.com/projectnaam)
'entityId' => '',
// Informatie over het endpoint waar Entree Federatie de responses naar toestuurt
'assertionConsumerService' => array (
// De URL van het endpoint (voorbeeld: https://example.com/index.php?acs)
'url' => '',
// SAML protocol binding dat gebruikt wordt om de response te versturen
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
),
// Format van de identifier van het onderwerp van authenticatie
// Voor Entree Federatie is het vereist dat dit 'unspecified' is
'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
// Informatie van het certificaat dat gegenereerd is in stap 2
'x509cert' => '...'
'privateKey' => '...'
),
// Informatie over de Entree Federatie applicatie
// De informatie staat in de metadata van Entree Federatie
// Metadata staging omgeving: https://engine.entree-s.kennisnet.nl/authentication/idp/metadata
// Metadata productie omgeving: https://engine.entree.kennisnet.nl/authentication/idp/metadata
'idp' => array (
// De unieke identifier van Entree Federatie
'entityId' => 'https://engine.entree.kennisnet.nl/authentication/idp/metadata',
//'entityId' => 'https://engine.entree-s.kennisnet.nl/authentication/idp/metadata',
// Endpoint van Entree Federatie waar de authenticatie requests naar toegestuurd worden
'singleSignOnService' => array (
// De URL van het endpoint
'url' => 'https://engine.entree.kennisnet.nl/authentication/idp/single-sign-on',
//'url' => 'https://engine.entree-s.kennisnet.nl/authentication/idp/single-sign-on',
// SAML protocol binding dat gebruikt wordt om de requests naar Entree Federatie te versturen
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
),
// De public key in de metadata van Entree Federatie, te vinden in de metadata onder het onderdeel IDPSSODescriptor / X509Certificate.
'x509cert' => '...'
),
);
Stap 4: Aanpassen advanced_settings.php
Aanpassing in het bestand advanced_settings.php in de hoofd directory.
LET OP! De aanpassingen in de voorbeeld code zijn toevoegingen en/of wijzigingen. De php tags zijn niet meegenomen.
De aanpassingen staan beschreven in commentaar.
// Alle verzonden en ontvangen berichten moeten gesigned zijn
'authnRequestsSigned' => true,
// Contact informatie
'contactPerson' => array (
'technical' => array (
'givenName' => '',
'emailAddress' => ''
),
'support' => array (
'givenName' => '',
'emailAddress' => ''
),
),
// Organisatie informatie
'organization' => array (
'nl-nl' => array(
'name' => '',
'displayname' => '',
'url' => ''
),
),