IdP juhend SimpleSAMLphp paigaldamiseks, seadistamiseks ja ühendamiseks TAAT-iga

  1. Veenduge, et serveriseadistused vastaksid SimpleSAMLphp nõuetele https://simplesamlphp.org/docs/stable/simplesamlphp-install#section_3
  2. Laadige alla SimpleSAMLphp lehelt http://simplesamlphp.org/download ning pakkige arhiiv lahti oma veebiserverisse.
  3. Veenduge, et serveri konfiguratsioon (vhost) võimaldaks ligipääsu installatsioonikausta. Kui on kasutusel Suhosin, siis on vaja see seadistada lubama pikemaid GET parameetrite väärtuseid. Debiani puhul failis /etc/php5/apache2/conf.d/suhosin.ini

    suhosin.get.max_value_length = 2048

  4. Navigeerige installatsioonikausta ja kopeerige kaustast config-templates/ failid config.php ja authsources.php kausta config/ ning metadata-templates/ kaustast fail saml20-idp-hosted.php kausta metadata/ :
    cp config-templates/config.php config-templates/authsources.php config
    cp metadata-templates/saml20-idp-hosted.php metadata
  5. Muutke failis config/config.php järgmised read:
    • juurkataloogi puhul tuleb installatsioonikaustaks määrata '/'

      ‘baseurlpath’ => ‘minuinstallatsioonikaust/’,

    • lülitage sisse IdP funktsionaalsus

      ‘enable.saml20-idp’ => ‘true’,

    • sümbolijada genereerimiseks võib kasutada SimpleSAMLphp koodi kommentaarides olevat juhendit või sisestada see ise

      ‘secretsalt’ => ‘suvalinesümbolijada’,

    • lisage administratiivandmed

      ‘auth.adminpassword’ => ‘administraatoriparool’,
      ‘technicalcontact_name’ => ‘tehnilise kontaktisiku nimi’,
      ‘technicalcontact_email’ => ‘tehnilise kontaktisiku e-postiaadress’,

    • määrake ajatsoon

      ‘timezone’ => ‘Europe/Tallinn’,

  6. Leidke samas failis authproc.idp plokk (kõige all), veenduge, et selles oleks rida

    100 => array( ‘class’ => ‘core:AttributeMap’, ‘name2urn’),

  7. Failis config/authsouces.php kommenteerige välja kõik autentimisallikad, mida te ei kasuta ning eemaldage kommentaarid sellelt, mida kasutate (olgu selleks siis SQL andmebaas, LDAP või midagi muud). Testimiseks sobib kõige paremini exampleauth:UserPass.
  8. Konfigureerige valitud autentimisallikas vastavalt oma autentimissüsteemile, arvestades, et väljastama peate atribuudid, mis on nõutud TAAT Tehnoloogilises profiilis (https://taat.edu.ee/main/dokumendid/).
    NB! Kui autentimine toimub ühes süsteemis (nt LDAP) ning vajalikke andmeid võetakse teisest (nt SQL andmebaasist), siis selleks on olemas eraldi atribuutide koguja moodul: https://github.com/NIIF/simplesamlphp-module-attributecollector
  9. Aktiveerige valitud autoriseerimisallika moodul:
    touch modules/exampleauth/enable
  10. Muutke failis metadata/saml20-idp-hosted.php järgmised read:

    ‘certificate’ => ‘server.crt’,
    ‘privatekey’ => ‘server.pem’, // sertifikaadiandmed vastavalt enda poolt kasutatud sertifikaatidele
    ‘auth’ => ‘example-userpass’, // autentimisallikas, mida kasutate

    lisage järgmised:

    ‘sign.logout’ => TRUE, // sign logout messages sent from this IdP ‘validate.authnrequest’ => TRUE, // require signatures on authentication requests sent to this IdP
    ‘validate.logout’ => TRUE, // require signatures on logout messages sent to this IdP
    ‘redirect.sign’ => TRUE, // sign logout requests and responses sent from this IdP
    ‘redirect.validate’ => TRUE, // validate logout requests and responses sent to this IdP

    TAAT-i jaoturitega ühendamine

  11. Aktiveerige järgnevad moodulid:
    1. cron
    2. metarefresh

    Croni moodul käivitab etteantud töid perioodiliselt.

    Metarefresh moodul laeb alla ja parsib metaandmed ning salvestab need lokaalselt vahemällu.

    Esmalt kopeerige config-templates failide seast ülalpool mainitud moodulid globaalsesse config/ kausta.

    [root@simplesamlphp] cd /var/simplesamlphp
    [root@simplesamlphp simplesamlphp] touch modules/cron/enable
    [root@simplesamlphp simplesamlphp] cp modules/cron/config-templates/*.php config/
    [root@simplesamlphp simplesamlphp] touch modules/metarefresh/enable
    [root@simplesamlphp simplesamlphp] cp modules/metarefresh/config-templates/*.php config/
    

    Metarefresh konfiguratsiooni täiendused

    Muutke config/config-metarefresh.php faili vastavalt sellele, kas soovite ühendada test või produktsiooni jaoturi külge:

     <?php
    $config = array(
      'sets' => array(
        // TAAT produktsiooni jaotur identiteedipakkujale
        'taat-prod' => array(
          'cron'      => array('hourly'),
          'sources'   => array(
            array(
              'src' => 'https://taeva.taat.edu.ee/metadata/metadata.taat+hub+prod+sp.xml',
              'validateFingerprint' => 'C5:F4:79:B5:80:8D:90:C2:5A:7D:B0:8D:B4:99:D7:2D:06:7F:DE:E5',
              'template' => array(
                'tags'  => array('taat-prod'),
                'validate.authnrequest' => FALSE,
                'validate.logout' => FALSE, 
              ),
            ),
          ),
    
          'expireAfter'       => 60*60*24*4, // Maximum 4 days cache time.
          'outputDir'     => 'metadata/taat-prod/',
          'outputFormat' => 'flatfile',
        ),
    
        // TAAT test jaotur identiteedipakkujale
        'taat-test' => array(
          'cron'      => array('hourly'),
          'sources'   => array(
            array(
              'src' => 'https://taeva.taat.edu.ee/metadata/metadata.taat+hub+test+sp.xml',
              'validateFingerprint' => 'C5:F4:79:B5:80:8D:90:C2:5A:7D:B0:8D:B4:99:D7:2D:06:7F:DE:E5',
              'template' => array(
                'tags'  => array('taat-test'),
                'validate.authnrequest' => FALSE,
                'validate.logout' => FALSE, 
              ),
            ),
          ),
    
          'expireAfter'       => 60*60*24*4, // Maximum 4 days cache time.
          'outputDir'     => 'metadata/taat-test/',
          'outputFormat' => 'flatfile',
        ),
      ),
    );
  12. Tehke TAAT-i hubi metadata jaoks eraldi kaust ning andke veebiserverile sinna kirjutamisõigus:
    mkdir -p metadata/taat-prod
    chmod go+rw metadata/taat-prod/
    mkdir -p metadata/taat-test
    chmod go+rw metadata/taat-test/
  13. Lisage config/config.php faili jaoturi metadata asukoht:

    # ... rest of the file
    #
    # Find 'metadata.sources' section and make it to reflect:
      'metadata.sources' => array(
        array('type' => 'flatfile', 'directory' => 'metadata'),
        array('type' => 'flatfile', 'directory' => 'metadata/taat-prod'),
        array('type' => 'flatfile', 'directory' => 'metadata/taat-test'),
    ),
    # ... rest of the file
  14. Kindlasti on vaja seada croni jaoks parool (märgitud failides RANDOM_KEY-iga), sest muidu saab igaüks tulla ja taske käivitada.
    <?php
    /*
     * Configuration for the Cron module.
     *
     * $Id: $
     */
    $config = array (
            'key' => 'RANDOM_KEY',
            'allowed_tags' => array('daily', 'hourly', 'frequent'),
            'debug_message' => false,
            'sendemail' => false,
    );
    ?>
  15. Lisage croni töö:
    Näiteks simplesamlphp_cron fail:

    # Run SimpleSAMLphp Hourly tasks at every second minute of an hour
    2 * * * * apache curl --silent  "https://SERVER/simplesaml/module.php/cron/cron.php?key=RANDOM_KEY&tag=hourly" > /dev/null 2>&1

    NB! Juhul kui uuendasite SSP eelmist seadistust metarefreshi peale, siis on vajalik kustutada vanas juhendis (punktis 10) loodud metadata/saml20-sp-remote.php failis reos.taat.edu.ee ja/või sarvik.taat.edu.ee metaandmed.

    JANUS (uue ühenduse loomiseks)

  16. Tehke kasutaja JANUSesse aadressil https://taeva.taat.edu.ee/module.php/janus/index.php
  17. Lisage JANUSesse uus ühendus („Create connection“), kus ID on „entity id“, mis on leitav teie oma SimpleSAMLphp installatsioonilehel menüüst „Federation“ ning ühenduse tüübiks on „SAML 2.0 IdP“. XML-i ei ole vaja kopeerida.
  18. Valige loodud ühendus ja minge lehele „Import metadata“. Kopeerige oma metaandmete XML või link, mille leiate oma SimpleSAMLphp installatsioonilehet „Federation“ vahelehelt „show metadata“ klõpsates.
  19. Vahelehel „Metadata“ lisage metaandmed, mis on nõutud TAAT Tehnoloogilises profiilis (https://taat.edu.ee/main/dokumendid/).
  20. Testige sisselogimist TAAT testlehel https://eitja.taat.edu.ee/
    NB! Jaoturite andmeid uuendatakse kord 5 min jooksul. Kui teie ühendus kohe ei toimi, oodake 5 minutit ja proovige uuesti.