KNF:SimpleSAMLphp-sp: verschil tussen versies

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen
 
(31 tussenliggende versies door 4 gebruikers niet weergegeven)
Regel 1: Regel 1:
 
{{Talen}}
 
{{Talen}}
  +
<br/>
  +
__TOC__
   
  +
Deze handleiding bevat een stappenplan om SimpleSAMLphp in te zetten als Service Provider Provider en aan Entree Federatie te koppelen.
===Installatie===
 
Bij installatie zijn de volgende stappen nodig:
 
   
  +
==Stap 1: Installatie==
  +
Voor de installatie kunnen de stappen op de website van SimpleSAMLphp gevolgd worden:
 
# [http://simplesamlphp.org/docs/stable/simplesamlphp-install Installatie documentatie SimpleSAMLphp]
 
# [http://simplesamlphp.org/docs/stable/simplesamlphp-install Installatie documentatie SimpleSAMLphp]
 
# [http://simplesamlphp.org/docs/stable/simplesamlphp-sp Quickstart document SimpleSAMLphp]
 
# [http://simplesamlphp.org/docs/stable/simplesamlphp-sp Quickstart document SimpleSAMLphp]
# De Kennisnet specifieke data die hieronder is beschreven.
 
   
===Configuratie===
 
De Kennisnet Federatie vraagt een aantal specifieke configuraties aan SimpleSAMLphp.<br>
 
'''LET OP!''' Volgende configuraties zijn toevoegingen of wijzigingen. De php tags zijn niet meegenomen.
 
   
  +
==Stap 2: Configuratie==
====authsources.php====
 
  +
Voor het realiseren van een koppeling met Entree Federatie zijn een aantal aanpassingen in de configuratie van SimpleSAMLphp nodig.<br>
  +
  +
===Aanpassen authsources.php===
  +
'''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.
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
  +
// default-sp kan worden aangepast naar een eigen te kiezen naam van de dienst
  +
// noodzakelijk bij meerdere app achter deze koppeling.
  +
 
'default-sp' => array(
 
'default-sp' => array(
 
'saml:SP',
 
'saml:SP',
Regel 20: Regel 27:
 
'entityID' => 'https://domainname.com',
 
'entityID' => 'https://domainname.com',
 
 
// Certificatie gegenereerd in stap 1.1 uit de Quickstart
+
// Certificaat gegenereerd in stap 1.1 uit de Quickstart
  +
// pad is te configureren in config.php bij 'certdir' => 'cert/'; map is nog niet aangemaakt door installer.
 
'privatekey' => 'saml.pem',
 
'privatekey' => 'saml.pem',
 
'certificate' => 'saml.crt',
 
'certificate' => 'saml.crt',
   
// Standaard keuzemenu voor Identity Provider uitzetten en direct naar Kennisnet Federatie wijzen
+
// Standaard keuzemenu voor Identity Provider uitzetten en direct naar Entree Federatie wijzen
// Onderstaande configuratie is voor staging. Bij livegang hoeft alleen deze waarde aangepast te worden naar aselect.entree.kennisnet.nl
+
// Onderstaande configuratie is voor staging.
'idp' => 'aselect-s.entree.kennisnet.nl',
+
// Bij livegang hoeft alleen deze waarde aangepast te worden naar https://engine.entree.kennisnet.nl/authentication/idp/metadata
  +
'idp' => 'https://engine.entree-s.kennisnet.nl/authentication/idp/metadata', // staging/test url
  +
// 'idp' => 'https://engine.entree.kennisnet.nl/authentication/idp/metadata', // productie url
   
  +
// Format van de identifier van het onderwerp van authenticatie
// Kennisnet Federatie attribuut formaten aanpassen
 
  +
// Voor Entree Federatie is het vereist dat dit 'unspecified' is
'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
 
'AttributeNameFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified',
+
'NameIDPolicy' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
  +
'attributes.NameFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified',
   
 
// Optionele configuratie voor-selectie aan te spreken Identity Provider/school
 
// Optionele configuratie voor-selectie aan te spreken Identity Provider/school
Regel 38: Regel 49:
 
</syntaxhighlight>
 
</syntaxhighlight>
   
  +
{{Warn|Met ingang van SimpleSAMLphp versie 1.15 is 'NameIDFormat' vervangen door 'NameIDPolicy'. Het gebruik van 'NameIDFormat' wordt niet meer ondersteunt.}}
   
  +
====config.php====
 
  +
'''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/
  +
  +
===Aanpassen config.php===
  +
'''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.
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
 
// Het pad waarop simpleSAMLphp bereikbaar is. Dit moet overeenkomen met de Alias locatie in de webserver configuratie.
 
// Het pad waarop simpleSAMLphp bereikbaar is. Dit moet overeenkomen met de Alias locatie in de webserver configuratie.
Regel 48: Regel 65:
   
 
// Voer de juiste contactgegevens in.
 
// Voer de juiste contactgegevens in.
'technicalcontact_name' => 'Servicedesk Kennisnet',
+
'technicalcontact_name' => 'Technisch contactpersoon',
'technicalcontact_email' => 'servicedesk@kennisnet.nl',
+
'technicalcontact_email' => 'na@example.org',
 
</syntaxhighlight>
 
</syntaxhighlight>
   
  +
===Automatisch metadata verversen instellen===
  +
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).
  +
De handleiding voor het instellen van het automatisch ophalen van de metadata staat beschreven op [[KNF:SimpleSAMLphp-metadata|'''deze pagina''']].
   
  +
[[Categorie:Entree Federatie]]
====metadata/saml20-idp-remote.php====
 
<syntaxhighlight lang="php">
 
// Voeg de metadata van de Kennisnet Federatie omgeving toe
 
 
// Productie Kennisnet Federatie
 
$metadata['aselect.entree.kennisnet.nl'] = array (
 
'entityid' => 'aselect.entree.kennisnet.nl',
 
'name' =>
 
array (
 
'en' => 'Stichting Kennisnet',
 
),
 
'description' =>
 
array (
 
'en' => 'skn',
 
),
 
'OrganizationName' =>
 
array (
 
'en' => 'skn',
 
),
 
'OrganizationDisplayName' =>
 
array (
 
'en' => 'Stichting Kennisnet',
 
),
 
'url' =>
 
array (
 
'en' => 'http://www.kennisnetfederatie.nl',
 
),
 
'OrganizationURL' =>
 
array (
 
'en' => 'http://www.kennisnetfederatie.nl',
 
),
 
'metadata-set' => 'saml20-idp-remote',
 
'redirect.sign' => true,
 
'SingleSignOnService' =>
 
array (
 
0 =>
 
array (
 
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
 
'Location' => 'https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web',
 
),
 
1 =>
 
array (
 
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
 
'Location' => 'https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web',
 
),
 
2 =>
 
array (
 
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact',
 
'Location' => 'https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web',
 
),
 
),
 
'SingleLogoutService' =>
 
array (
 
),
 
'ArtifactResolutionService' =>
 
array (
 
0 =>
 
array (
 
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:SOAP',
 
'Location' => 'https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/artifact',
 
'index' => 0,
 
),
 
),
 
'certFingerprint' =>
 
array (
 
0 => '48a4f9fe019179a2867afc8598a64e0c45fa137b',
 
),
 
'certData' => 'MIICsDCCAhkCBEPd1t8wDQYJKoZIhvcNAQEEBQAwgZ4xCzAJBgNVBAYTAk5MMRUwEwYDVQQIEwxadWlkLUhvbGxhbmQxEzARBgNVBAcTClpvZXRlcm1lZXIxHDAaBgNVBAoTE1N0aWNodGluZyBLZW5uaXNuZXQxHzAdBgNVBAsTFkVudHJlZSBOZXh0IEdlbmVyYXRpb24xJDAiBgNVBAMTG2FzZWxlY3QuZW50cmVlLmtlbm5pc25ldC5ubDAeFw0wNjAxMzAwOTA1MzVaFw0xNjAyMDcwOTA1MzVaMIGeMQswCQYDVQQGEwJOTDEVMBMGA1UECBMMWnVpZC1Ib2xsYW5kMRMwEQYDVQQHEwpab2V0ZXJtZWVyMRwwGgYDVQQKExNTdGljaHRpbmcgS2VubmlzbmV0MR8wHQYDVQQLExZFbnRyZWUgTmV4dCBHZW5lcmF0aW9uMSQwIgYDVQQDExthc2VsZWN0LmVudHJlZS5rZW5uaXNuZXQubmwwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ4CmyqXS7kTIHsJsRvLjnYbyXjYs+JYk078Mggmp5fyIrb5qA0kkXIHvXY+8Cj050jqPk2T1Qm9qq+D05b2tj7/p9f+5uPr6x3NsZU3kbPD7JgdGNWSJovOS/v36Xv322+yjixP6v1nHFCgdQueKh/Wx1nRcs/zg1I4uqEVmPAJAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAl1fcp/JJ7r2JdpXilq1YFzwPNeNX3bkEcJSiUeGF9yWMJkA4270Dwwf3wOPtlwSWYaJSlDr7fefW9HUCYoVriIavUSJh9s0g7EwsNzmp38Fc1abEmq1bJ8IvLamEoOnOUTJ3pVhgGdv6I7dja8lft+JiA/1WcirlxZtrRi5r994=',
 
);
 
 
// Staging Kennisnet Federatie
 
$metadata['aselect-s.entree.kennisnet.nl'] = array (
 
'entityid' => 'aselect-s.entree.kennisnet.nl',
 
'name' =>
 
array (
 
'en' => 'Stichting Kennisnet (staging)',
 
),
 
'description' =>
 
array (
 
'en' => 'skn',
 
),
 
'OrganizationName' =>
 
array (
 
'en' => 'skn',
 
),
 
'OrganizationDisplayName' =>
 
array (
 
'en' => 'Stichting Kennisnet (staging)',
 
),
 
'url' =>
 
array (
 
'en' => 'http://www.kennisnetfederatie.nl',
 
),
 
'OrganizationURL' =>
 
array (
 
'en' => 'http://www.kennisnetfederatie.nl',
 
),
 
'metadata-set' => 'saml20-idp-remote',
 
'redirect.sign' => true,
 
'SingleSignOnService' =>
 
array (
 
0 =>
 
array (
 
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
 
'Location' => 'https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web',
 
),
 
1 =>
 
array (
 
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
 
'Location' => 'https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web',
 
),
 
2 =>
 
array (
 
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact',
 
'Location' => 'https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web',
 
),
 
),
 
'SingleLogoutService' =>
 
array (
 
),
 
'ArtifactResolutionService' =>
 
array (
 
0 =>
 
array (
 
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:SOAP',
 
'Location' => 'https://aselect-s.entree.kennisnet.nl/openaselect/profiles/saml2/artifact',
 
'index' => 0,
 
),
 
),
 
'certFingerprint' =>
 
array (
 
0 => 'f2b78d5163e010ddcd4a7d8ef1b11eb68853c3b8',
 
),
 
'certData' => 'MIICwDCCAikCBE1k+lAwDQYJKoZIhvcNAQEEBQAwgaYxCzAJBgNVBAYTAk5MMRUwEwYDVQQIEwxadWlkLUhvbGxhbmQxEzARBgNVBAcTClpvZXRlcm1lZXIxHDAaBgNVBAoTE1N0aWNodGluZyBLZW5uaXNuZXQxHzAdBgNVBAsTFkVudHJlZSBOZXh0IEdlbmVyYXRpb24xLDAqBgNVBAMTI2FzZWxlY3Quc3RhZ2luZy5lbnRyZWUua2VubmlzbmV0Lm5sMB4XDTExMDIyMzEyMTUxMloXDTE2MDIwNjEyMTUxMlowgaYxCzAJBgNVBAYTAk5MMRUwEwYDVQQIEwxadWlkLUhvbGxhbmQxEzARBgNVBAcTClpvZXRlcm1lZXIxHDAaBgNVBAoTE1N0aWNodGluZyBLZW5uaXNuZXQxHzAdBgNVBAsTFkVudHJlZSBOZXh0IEdlbmVyYXRpb24xLDAqBgNVBAMTI2FzZWxlY3Quc3RhZ2luZy5lbnRyZWUua2VubmlzbmV0Lm5sMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+iQDEWzzn76RgfOsnNrE0xS+WvmXr6oWTwoMaNVGZC5UnESbV5vPsNWTEbP8Vh2bT6kTaTnjDMx4POWasHnBPR/h0MCJ78D4nqkIEuhz+QBEvfMgZEgXJgOtoqgenDpXAkoetJkkkmRwt4mBk+puUJUaP3WcI5/J7BM/NdH6JQwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAK5WdDPy4clXgsVWie58A0NkALRwCl7Rbwb0bzddNN0qMpbHGZVINQWzbv6fitd5LLAP8wKtEA82unqH7GpQ+8P1BNlmQVbVBA/otFP1n4NKxKBWwyBgNo6CzsCw/yDSxShNH4abwXs0OhQcnAYnY6WNzYAbG/OVcIuYbkxfiiCk',
 
);
 
</syntaxhighlight>
 
 
[[Categorie:Kennisnet Federatie]]
 

Huidige versie van 20 sep 2022 om 11:04

Nl.gif Nederlands En.gif English


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

Stap 1: Installatie

Voor de installatie kunnen de stappen op de website van SimpleSAMLphp gevolgd worden:

  1. Installatie documentatie SimpleSAMLphp
  2. Quickstart document SimpleSAMLphp


Stap 2: Configuratie

Voor het realiseren van een koppeling met Entree Federatie zijn een aantal aanpassingen in de configuratie van SimpleSAMLphp nodig.

Aanpassen authsources.php

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.

// default-sp kan worden aangepast naar een eigen te kiezen naam van de dienst
// noodzakelijk bij meerdere app achter deze koppeling.

    'default-sp' => array(
        'saml:SP',
        
        // Voer een entityID in voor uw applicatie (meestal unieke url van de dienst)   
        'entityID' => 'https://domainname.com',
        
        // Certificaat gegenereerd in stap 1.1 uit de Quickstart
        // pad is te configureren in config.php bij 'certdir' => 'cert/'; map is nog niet aangemaakt door installer.
        'privatekey' => 'saml.pem',
        'certificate' => 'saml.crt',

        // Standaard keuzemenu voor Identity Provider uitzetten en direct naar Entree Federatie wijzen
        // Onderstaande configuratie is voor staging. 
        // Bij livegang hoeft alleen deze waarde aangepast te worden naar https://engine.entree.kennisnet.nl/authentication/idp/metadata
        'idp' => 'https://engine.entree-s.kennisnet.nl/authentication/idp/metadata',   // staging/test url
        // 'idp' => 'https://engine.entree.kennisnet.nl/authentication/idp/metadata',  // productie url

        // Format van de identifier van het onderwerp van authenticatie
        // Voor Entree Federatie is het vereist dat dit 'unspecified' is
        'NameIDPolicy' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
        'attributes.NameFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified',

        // Optionele configuratie voor-selectie aan te spreken Identity Provider/school
        // 'IDPList' => array( 'entityidofidp', ),
        // 'ProxyCount' => 1,
    ),
Warn.gif Met ingang van SimpleSAMLphp versie 1.15 is 'NameIDFormat' vervangen door 'NameIDPolicy'. Het gebruik van 'NameIDFormat' wordt niet meer ondersteunt.


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/

Aanpassen config.php

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.

        // Het pad waarop simpleSAMLphp bereikbaar is. Dit moet overeenkomen met de Alias locatie in de webserver configuratie.
        'baseurlpath'           => 'simplesaml/',

        // Pas het admin wachtwoord voor de webinterface aan!!!
        'auth.adminpassword'          => '!123456!',

        // Voer de juiste contactgegevens in.
        'technicalcontact_name'     => 'Technisch contactpersoon',
        'technicalcontact_email'    => 'na@example.org',

Automatisch metadata verversen instellen

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). De handleiding voor het instellen van het automatisch ophalen van de metadata staat beschreven op deze pagina.