SP juhend SimpleSAMLphp paigaldamiseks, seadistamiseks ja ühendamiseks TAATiga.

  1. Laadige alla SimpleSAMLphp lehelt http://simplesamlphp.org/download ning pakkige arhiiv lahti oma veebiserverisse.
  2. Veenduge, et serveri konfiguratsioon (vhost) võimaldaks 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
  3. 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
  4. Muutke failis config/config.php järgmised read:
    
    // juurkataloogi puhul tuleb installatsioonikaustaks määrata '/'
    'baseurlpath' => 'minuinstallatsioonikaust/',
    // 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',
    
  5. Leidke samas failis authproc.idp plokk (kõige all), veenduge, et selles oleks rida
    10 => array( ‘class’ => ‘core:AttributeMap’, ‘name2urn’),
  6. Failis authsources.php muutke default-sp nimi vastavaks oma teenuse nimega ning lisage read:

    ‘certificate’ => ‘server.crt’,
    ‘privatekey’ => ‘server.pem’,
    ‘redirect.sign’ => TRUE, // sign authn requests, logout requestsand responses sent from this SP
    ‘redirect.validate’ => TRUE, // validate signature of authn requests, logout requests and responses sent to this SP
    ‘sign.authnrequest’ => TRUE, // sign authentication requests sent from this SP
    ‘sign.logout’ => TRUE, // sign logout messages sent from this SP
    ‘validate.logout’ => TRUE, // validate signature of logout messages sent to this SP

  7. Kaustas cert/ peab olema kehtiv sertifikaat. Self-signed sertifikaadi saab genereerida nii:
     rm server*
     openssl req -nodes -new -keyout server.pem -newkey rsa:2048 > server.csr
     openssl x509 -req -days 1095 -in server.csr -signkey server.pem -out server.crt
     chgrp www-data server.*
     chmod o-r server.pem

    TAAT-i jaoturitega ühendamine

  8. 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 teenusepakkujale
        'taat-prod' => array(
          'cron'      => array('hourly'),
          'sources'   => array(
            array(
              'src' => 'https://taeva.taat.edu.ee/metadata/metadata.taat+hub+prod+idp.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 teenusepakkujale
        'taat-test' => array(
          'cron'      => array('hourly'),
          'sources'   => array(
            array(
              'src' => 'https://taeva.taat.edu.ee/metadata/metadata.taat+hub+test+idp.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',
        ),
      ),
    );
  9. 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/
  10. 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
  11. 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,
    );
    ?>
  12. 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 või väljakommenteerida  vanas juhendis (punktis 8) loodud metadata/saml20-idp-remote.php failis reos.taat.edu.ee ja/või sarvik.taat.edu.ee metaandmed.

    JANUS (uue ühenduse loomiseks)

  13. Tehke kasutaja JANUSesse aadressil https://taeva.taat.edu.ee/module.php/janus/index.php
  14. 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 SP“. XML-i ei ole vaja kopeerida.
  15.  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.
  16. Vahelehel „Metadata“ lisage metaandmed, mis on nõutud TAAT Tehnoloogilises profiilis ( https://taat.edu.ee/main/dokumendid/ ).
  17. Vahelehel “Connection” valige endale ARP ehk atribuutide väljastamise poliitika.
    Tõenäoliselt on teil vaja luua uus “New”. Nimetage oma ARP nii, et nimi sisaldaks teie
    asutuse domeeninime ja ARP lisamise/muutmise kuupäeva ning valige atribuudid, mida
    soovite TAATi kaudu vastu võtta. Atribuudid peavad klappima hiljem sõlmitud lepingus
    oleva atribuutide nimistuga. Ärge unustage ka muudatusi salvestada.
  18. Testige sisselogimist TAAT test-idp andmetega, mille leiate lehelt 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.