KNF:OneLogin configureren als Service Provider: verschil tussen versies

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen
Regel 31: Regel 31:
 
// Vul hier de base URL van de applicatie in (voorbeeld: https://example.com)
 
// Vul hier de base URL van de applicatie in (voorbeeld: https://example.com)
 
'baseurl' => '',
 
'baseurl' => '',
// Service Provider Data that we are deploying
+
// Informatie over de Service Provider applicatie
 
'sp' => array (
 
'sp' => array (
 
// Het entityID is de unieke idenitfier van de applicatie (voorbeeld: https://example.com/projectnaam)
 
// Het entityID is de unieke idenitfier van de applicatie (voorbeeld: https://example.com/projectnaam)
Regel 46: Regel 46:
 
'privateKey' => '...'
 
'privateKey' => '...'
 
),
 
),
  +
// Informatie over Entree Federatie als Identity Provider
// Identity Provider Data that we want connect with our SP
 
 
'idp' => array (
 
'idp' => array (
 
'entityId' => 'aselect-t.entree.kennisnet.nl',
 
'entityId' => 'aselect-t.entree.kennisnet.nl',

Versie van 7 aug 2018 08:41

Nl.gif Nederlands En.gif English


Deze handleiding bevat een stappenplan om OneLogin in te zetten als Service Provider Provider en aan Entree Federatie te koppelen.

Stap 1: Installatie

  1. Download de PHP toolkit van https://github.com/onelogin/php-saml.
  2. Pak de zip uit en kopieer de directory php-saml-master naar de juiste locatie op de webserver.
  3. Hernoem de demo1 directory naar de gewenste project naam (bijvoorbeeld entreefederatie).
  4. Verwijder het bestand settings_example.php uit de project directory.
  5. Kopieer het bestand settings_example.php uit de hoofd directory naar de project directory.
  6. Hernoem dit bestand naar settings.php.
  7. 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.

  1. In de hoofd directory (php-saml-master) bevindt zich de sub directory certs.
  2. Ga naar de directory certs.
  3. 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
    
  4. 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 volgende configuraties zijn toevoegingen of wijzigingen. De php tags zijn niet meegenomen.

$settings = array (
    'strict' => false,
    'debug' => false,
    // Vul hier de base URL van de applicatie in (voorbeeld: https://example.com)
    'baseurl' => '',
    // Informatie over de Service Provider applicatie
    'sp' => array (
        // Het entityID is de unieke idenitfier van de applicatie (voorbeeld: https://example.com/projectnaam)
        'entityId' => '',
       
        'assertionConsumerService' => array (
            // URL waar Entree Federatie de responses naar toestuurt (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',
        ),
        'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
        'x509cert' => '...'
        'privateKey' => '...'
    ),
    // Informatie over Entree Federatie als Identity Provider
    'idp' => array (
        'entityId' => 'aselect-t.entree.kennisnet.nl',
        'singleSignOnService' => array (
            'url' => 'https://aselect-t.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web',
            // 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',
        ),
        'x509cert' => '...'
    ),
);