Simplesamlphp

Da sia.
Versione del 1 dic 2009 alle 12:14 di Malvezzi (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Panoramica

SimpleSAMLphp è un progetto in php che implementa funzionalità simili a quelle di shibboleth sia come IdP che come SP. Può interloquire con Shibboleth.

Fonti

Istruzioni su eduGate

Installare SimpleSAMLphp versione 1.5 su Debian Lenny

  • scaricare il tar.gz dal sito del progetto
  • scompattarlo ad esempio in /opt (d'ora innanzi si suppone questo)
  • cambiare la ownership della cartella con
sudo chown -R www-data:www-data /opts/implesamlphp-1.5.0/
  • aggiungere nel virtual host corretto (ad esempio /etc/apache2/sites-enabled/default-ss) la regola:
Alias /simplesaml /opt/simplesamlphp-1.5.0/www

Configurazione

Le cartelle config e metadata sono duplicate in config-templates e metadata-templates, si possono quindi modificare i file in config e metadata senza rischi.

config/config.php

Modificare le righe:

  • 'auth.adminpassword' => '123', con una passwd di propria scelta
  • 'secretsalt' => 'default-secret-salt', con una stringa casuale a propria scelta (openssl rand -base64 -16, ad esempio)
  • le righe dei contatti con la propria email
  • aggiungere la riga:
 'enable.saml20-idp'             => false,
 'enable.saml20-sp'              => true,

nella sezione degli enable saml|shib

  • se si vuole portare il logging da NOTICE a INFO.

metadata/saml20-sp-hosted.php

Creare in metadata/saml20-sp-hosted.php:

<?php
$metadata = array(
        'https://moodle-idem.unimore.it/simplesaml' => array(
                'host'  => 'moodle-idem.unimore.it',
                'certificate' => 'moodle-idem.crt',
                'privatekey'  => 'moodle-idem.key',
                'redirect.sign' => TRUE,
                'redirect.validate' => TRUE,
                'attributemap' => 'moodle',
        )
);
?>

Senza righe bianche ne' prima ne' dopo.

  • host è il FQDN dell'host
  • certificate e privatekey devono essere copiate (o symlinked) in /opt/simplesamlphp-1.5.0/cert
  • la chiave dell'array è l'equivalente dell'entityID per Shibboleth. Se questo host ha anche Shibboleth, scegliere un nome entityID diverso.

metadata/saml20-idp-remote.php

Per le prove, aggiungere prima degli altri IdP:

/*
 * omissis.unimore.it -> test
 */
$metadata = array();
$metadata['https://omissis.unimore.it/idp/shibboleth'] = array (
  'description' => 'omissis',
  'name' => 'omissis.unimore.it',
  'SingleSignOnService' =>
  'https://omissis.unimore.it/idp/profile/SAML2/Redirect/SSO',
  'certFingerprint' => '733533D8F6CCBBAB0F6F432EE802469E06637112',
);

attributemap/moodle.php

<?php
$attributemap = array(
        'urn:oid:0.9.2342.19200300.100.1.3' => 'mail',
        'urn:oid:2.5.4.3' => 'cn',
        'urn:oid:2.5.4.42' => 'givenName',
        'urn:oid:2.5.4.4' => 'sn',
        'urn:oid:1.3.6.1.4.1.5923.1.1.1.6' => 'eduPersonPrincipalName',
        'urn:oid:1.3.6.1.4.1.5923.1.1.1.1' => 'eduPersonAffiliation',
);
?>

Un test

Connettersi a: https://tuo_server/simplesaml e fare un'occhiata alle sezioni configuration e federation. Per abilitare i sanity check, prima eseguire:

/opt/simplesamlphp-1.5.0$ sudo cp -v modules/sanitycheck/config-templates/config-sanitycheck.php config

Integrazione con Shibboleth

Copiare i metadati

I metadati simplesaml si scaricano dall'indirizzo: https://tuo_server/simplesaml/saml2/sp/metadata.php, oppure dalla pagina web /simplesaml -> federation SAML 2.0 SP Metadata.

O si aggiungono i metadati ai metadati della federazione o si fa una inclusione ad hoc nell'IdP. Chiedere a support.identity@unimore.it

Modificare il relying-party.xml del IdP

Fare aggiungere una sezione del tipo a support.identity@unimore.it

<RelyingParty id="https://tuo_server/simplesaml"
        provider="https://omissis.unimore.it/idp/shibboleth"
        defaultSigningCredentialRef="IdPCredential" >
        <ProfileConfiguration xsi:type="saml:SAML2SSOProfile"
                              encryptNameIds="never" />
    </RelyingParty>

Un altro test

Adesso dalla pagina: https://tuo_server/simplesaml si può provare la sezione autenticazione.