Liitumine eduGAIN-iga

Allikas: Eesti Hariduse ja Teaduse Andmesidevõrk
Redaktsioon seisuga 10. oktoober 2018, kell 14:37 kasutajalt Admin (arutelu | kaastöö) (Testimine)

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 vastavalt asutuse TAAT-i lepingule. Juhul kui config.php failis või mujal on AttributeLimit koos atribuutide nimekirjaga defineeritud, siis tuleb sinna lisada kõik Metarefreshi konfis AttributeAdd sees olevad atribuutide nimed. Vastasel juhul filtreeritakse need automaatselt välja. (schacHomeOrganization, schacHomeOrganizationType)

schacHomeOrganization = asutuse_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 => array( 'class' => 'core:TargetedID',
                                'attributename' => 'eduPersonPrincipalName',
                            ),

                            45 => array('class'     => 'consent:Consent', 
                                        'store'     => 'consent:Cookie', 
                                        'focus'     => 'yes', 
                                        'checked'   => TRUE
                            ),
                            /* allow sane set of name attributes */
                            
                            51 => array('class' => 'core:AttributeMap', 'name2oid'),
                            52 => array('class' => 'core:AttributeLimit'),
                        ),
                    ),
                ),
            ),

            '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',
        ),
    ),
);

Tehke eduGAIN-i metadata jaoks eraldi kaust.

mkdir -p metadata/edugain

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' => 'RANDOM_KEY',
        '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_KEY&tag=hourly" > /dev/null 2>&1

Kindlasti vaja seada croni jaoks parool (märgitud failides RANDOM_KEY-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 nendes teenustes:

NB! Mõned testid võivad ebaõnnestuda eduPersonUniqueId puudumise tõttu. Sellest hoolimata peaks saama eduGAINi teenuseid kasutada. Võimalik, et puudu on persistent-id, sellisel juhul võtke ühendust EENetiga eenet@eenet.ee.

Samuti tuleb arvestada, et erinevad teenusepakkujad võivad vajada erinevaid atribuute. Sellest tulenevalt võivad ka erinevate föderatsioonide atribuutide testid veidike erinevaid tulemusi näidata.

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