Liitumine eduGAIN-iga

Allikas: Eesti Hariduse ja Teaduse Andmesidevõrk
Redaktsioon seisuga 8. jaanuar 2016, kell 16:20 kasutajalt Admin (arutelu | kaastöö) (config/config-metarefresh.php)

EduGAIN-iga liitumise juhend

Automaatne metadata laadimine

Kui soovite ühendada teenuse- või identiteedipakkujat föderatsiooni, tuleb esmalt seadistada metaandmed, mida usaldate. TAATis on metaandmete jagamine automatiseeritud kasutades selleks URLi, mis väljastab kõigi asutuste SAML 2.0 XML formaadis metaandmed, kes föderatsiooni kuuluvad.

Rohkem infot ametlikust SimpleSAMLphp juhendist https://simplesamlphp.org/docs/stable/simplesamlphp-automated_metadata

Eeltöö

Aktiveerige järgnevad moodulid:

  1. cron
  2. metarefresh
  3. consent

Croni moodul käivitab etteantud töid perioodiliselt.

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

Consent küsib kasutajatelt luba kasutajate atribuutide edastamiseks teenusepakkujale.

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/
[root@simplesamlphp simplesamlphp] touch modules/consent/enable

Konfiguratsiooni täiendused

EduGAINi metadata automaatseks laadimiseks on vaja teha seadetes järgnevad muudatused:

config/config-metarefresh.php

NB! schacHomeOrganization ja schacHomeOrganizationType väärtused tuleb seadistada vastavaks oma asutusele.

schacHomeOrganization = domeeninimi.ee

schacHomeOrganizationType - lubatud väärtusi vaata siit.

<?php

$config = array(

    'sets' => array(
        'edugain' => array(
            'cron'      => array('hourly'),
            'sources'   => array(
                array(
                    'src' => 'https://taeva.taat.edu.ee/metadata/metadata.edugain+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('edugain'),
            'validate.authnrequest' => FALSE,
            'validate.logout' => FALSE, 
            'authproc' => array(
                            // Add schacHomeOrganization and schacHomeOrganizationType for domain of entity
                            10 => array('class' => 'core:AttributeAdd',
                                'schacHomeOrganization' => 'domeenimi.ee',
                                'schacHomeOrganizationType' => 'urn:schac:homeOrganizationType:int:university',
                            ),
                            // Add eduPersonScopedAffiliation based on eduPersonAffiliation and eduPersonPrincipalName.
                            11 => array('class' => 'core:ScopeAttribute',
                                'scopeAttribute' => 'eduPersonPrincipalName',
                                'sourceAttribute' => 'eduPersonAffiliation',
                                'targetAttribute' => 'eduPersonScopedAffiliation',
                            ),

                            // Add the persistent to the eduPersonTargetedID attribute
                            20 => 'core:TargetedID',

                            45 => array('class'     => 'consent:Consent', 
                                        'store'     => 'consent:Cookie', 
                                        'focus'     => 'yes', 
                                        'checked'   => TRUE
                            ),

                            51 => array('class' => 'core:AttributeMap', 'name2oid'),
                            //52 => array('class' => 'core:AttributeLimit'),
                            57 => array(
                              'class' => 'core:PHP',
                              'code' => '
                                SimpleSAML_Logger::debug("TAAT-DEBUG4-METAREFRESH: Attributes: " . print_r($attributes, true));
                            '),
                        ),
                    ),
                ),
            ),

            'expireAfter'       => 60*60*24*4, // Maximum 4 days cache time.
            'outputDir'     => 'metadata/edugain/',

            /*
             * Which output format the metadata should be saved as.
             * Can be 'flatfile' or 'serialize'. 'flatfile' is the default.
             */
            'outputFormat' => 'flatfile',
        ),
    ),
);

config/config.php

# ... 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/edugain'),
  ),

# ... rest of the file

module_cron.php

<?php
/*
 * Configuration for the Cron module.
 *
 * $Id: $
 */
$config = array (
        'key' => 'GENERATE_SOME_RANDOM_STRING_HERE',
        'allowed_tags' => array('daily', 'hourly', 'frequent'),
        'debug_message' => false,
        'sendemail' => false,
);
?>

simplesamlphp_cron

# 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_STRING&tag=hourly" > /dev/null 2>&1

Kindlasti vaja seada croni jaoks parool (märgitud failides RANDOM_STRING-iga), sest muidu saab igaüks tulla ja taske käivitada. Samuti on vaja teha kaust metadata/edugain ja sellele veebiserverile kirjutamise õigus anda.

Kohustuslikud atribuudid

  1. HomeOrganizationType

Testimine

Hetkel on eduGAIN-i atribuutide kontrollteenus alles valmimisel. Kui kõik ülalmainitud muudatused on tehtud, siis saab kontrollida sisselogimist ja edastatud atribuute siin:

https://attribute-viewer.aai.switch.ch/interfederation-test/test/

NB! Test ebaõnnestub eduPersonUniqueId ja persistent-id puudumise tõttu, kuid sellest hoolimata saab EduGAIN-i teenuseid kasutada.

Testimise kiirendamiseks on võimalik administraatori kasutajaga SimpleSAMLphp lehele logides metarefreshi ka käsitsi käivitada.