SimpleSAMLphp paslaugos (SP) konfigūravimas

Iš LITNET WIKI.
Peršokti į: navigacija, paiešką

Paslaugos konfigūravimas

Norint susikonfigūruoti SimpleSAMLphp paketą kaip paslaugos teikėją (SP), visų pirma reikia įdiegti programinį paketą kaip nurodyta instrukcijoje. Konfigūracijoje nereikia papildomai nurodyti, kad paketas bus naudojamas kaip paslaugos teikėjas.

Įdiegtą paketą gali naudoti viena arba daugiau paslaugų. Jos yra aprašomos faile config/authsources.php. Šiame faile pateikta daug pavyzdžių, kaip galima sukonfigūruoti paslaugos teikėją. Žemiau pateikta paslaugos, kuri gauna vartotojo tapatybę iš SimpleSAMLphp pagrindu veikiančio tapatybės teikėjo (IdP) konfigūracija:

'wiki' => array( // <service_alias>
    'saml:SP',
    'entityID' => 'https://wiki.litnet.lt',
    'idp' => 'https://login.ktu.lt/simplesaml/saml2/idp/metadata.php',
    'discoURL' => null,
    'privatekey' => 'saml.pem',
    'certificate' => 'saml.crt',
    'description' => array(
        'en' => 'LITNET wiki',
        'lt' => 'LITNET wiki',
    ),
    'name' => array(
         'en' => 'LITNET wiki',
         'lt' => 'LITNET wiki',
    ),
    'OrganizationName' => array(
          'en' => 'Academic and Research Network in Lithuania',
          'lt' => 'Lietuvos mokslo ir studiju kompiuteriu tinklas',
    ),
    'OrganizationURL' => 'http://www.litnet.lt',
    'attributes' => array('sn', 'givenName', 'mail'),
    'attributes.required' => array ('mail'),
    'attributes.NameFormat' => 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',
    'contacts' => array(
        array(
            'contactType'       => 'support',
            'emailAddress'      => 'info@litnet.lt',
            'telephoneNumber'   => '+370 37 300645',
            'company'           => 'LITNET',
        )
    ),
)

Sertifikatai, reikalingi paslaugai patalpinami cert/ kataloge.

Atlikus paslaugos konfigūraciją, sugeneruotus paslaugos metaduomenis, kuriuos pateiksite tapatybės teikėjui galite gauti adresu:

https://<service_provider_domain>/simplesaml/module.php/saml/sp/metadata.php/<service_alias>?output=xhtml

Autentifikacija pradės veikti tik abiem šalims apsikeitus metaduomenimis!

Tapatybės teikėjo (IdP) metaduomenų talpinimas

Jei paslauga kreipiasi tiesiogiai į IdP, tuomet faile metadata/saml20-idp-remote.php reikia nurodyti šio IdP metaduomenis. SimpleSAMLphp pagrindu veikiančių IdP metaduomenis galima gauti adresu:

http://<identity_provider_domain>/simplesaml/saml2/idp/metadata.php?output=xhtml

Pavyzdinis metadata/saml20-idp-remote.php failas:

$metadata['https://login.ktu.lt/simplesaml/saml2/idp/metadata.php'] = array (
  'SingleSignOnService' => 'https://login.ktu.lt/simplesaml/saml2/idp/SSOService.php',
  'SingleLogoutService' => 'https://login.ktu.lt/simplesaml/saml2/idp/SingleLogoutServiceiFrame.php',
  'SingleLogoutServiceResponse' => 'https://login.ktu.lt/simplesaml/saml2/idp/SingleLogoutServiceiFrameResponse.php',
  'certFingerprint' => '513d583cc764bcaa8a499586f0c55413fd68bcab',
  'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
);

Kaip patikrinti

Paprastas PHP kodas, kuris leis patikrinti ar viskas veikia korektiškai:

<?php

require '/var/www/simplesamlphp/lib/_autoload.php';

$auth = $as = new SimpleSAML_Auth_Simple('<service_alias>');
$auth->requireAuth();

foreach ($auth->getAttributes() as $attribute) {
    print_r($attribute);
}


Daugiau informacijos

   https://simplesamlphp.org/docs/stable/simplesamlphp-sp