Shibboleth paslaugos (SP) diegimas ir konfigūravimas

Iš LITNET WIKI.
18:26, 5 balandžio 2017 versija, sukurta JTadmin (Aptarimas | indėlis) (Naujas puslapis: Kategorija:SSO == Shibboleth paslaugos (SP) diegimas ir konfigūravimas == Shibboleth puikiai tinka paslaugoms, kurios palaiko Web serverio autentifikacijos mechanizmą per a...)
(skirt) ← Ankstesnė versija | Dabartinė versija (skirt) | Vėlesnė versija→ (skirt)
Peršokti į: navigacija, paiešką

Shibboleth paslaugos (SP) diegimas ir konfigūravimas

Shibboleth puikiai tinka paslaugoms, kurios palaiko Web serverio autentifikacijos mechanizmą per aplinkos kintamajį REMOTE_USER. Autentifikacijos procesą vykdo pats Web serveris, todėl tik sėkmingai autentifikavusis galima pasiekti apsaugotą turinį. Norint naudoti Shibboleth reikia atlikti nurodytus diegimo ir konfigūravimo žingsnius. Diegimo ir konfigūravimo žingsniai aprašyti Apache2 web serveriui. Reikalingos bazinės XML duomenų formato žinios.

  • Įdiegiame Shibboleth Apache2 modulį ir jo priklausomybes, bei įjungiame modulį:
apt-get install libapache-mod-shib2
a2enmod shib2
service apache2 restart

Shibboleth konfigūraciniai failai patalpinti:

/etc/shibboleth

Kaip pavyzdį sukonfigūruosime paslaugą https://paslauga.test.litnet.lt, kuri kreipsis į https://login.ktu.lt tapatybės tiekėją (IdP).

  • Sukuriame katalogą metaduomenims ir ten patalpiname tapatybės tiekėjo (IdP) metaduomenis:
cd /etc/shibboleth
mkdir metadata

wget https://login.ktu.lt/simplesaml/saml2/idp/metadata.php -o metadata/login.ktu.lt-metadata.xml
  • Sukuriame katalogą raktų porai, kurie bus naudojami SAML užklausų pasirašymui, ir patalpiname "self-signed" arba trečiosios šalies išduotus privatų raktą ir sertifikatą:
mkdir cert
...
// cp <key_file> cert/sp-key.pem
// cp <cert_file> cert/sp-cert.crt
  • Nusikopijuojame modulio konfigūracijos šabloną:
mv shibboleth2.xml shibboleth2.xml.orig
cp example-shibboleth2.xml shibboleth2.xml
  • Atliekame Shibboleth modulio konfigūracijos pakeitimus faile shibboleth2.xml:
    • <ApplicationDefaults> nurodome savo paslaugos entityID, taip pat atributą, kuriuo turi būti užpildyta kintamojo REMOTE_USER reikšmė
    • <SessionInitiator> nurodome tapatybės tiekėją, kuris bus naudojamas autentifikacijai, suteikiame jam id=KTU_LOGIN
    • <MetadataProvider> nurodome tapatybės tiekėjo metaduomenų failą
    • <CredentialResolver> nurodome raktų porą, kuris bus naudojama
94     <ApplicationDefaults entityID="https://paslauga.test.litnet.lt/shibboleth"
95             REMOTE_USER="uid" signing="true" encryption="false">
97 

127    <SessionInitiator type="SAML2" Location="/Login" isDefault="true" id="KTU_LOGIN"
128            entityID="https://login.ktu.lt/simplesaml/saml2/idp/metadata.php">
129 

239    <MetadataProvider type="XML" file="metadata/login.ktu.lt-metadata.xml"/>
257    <CredentialResolver type="File" key="cert/sp-key.pem" certificate="cert/sp-cert.pem"/>


  • Atliekame Apache VirtualHost konfigūraciją paslaugai. requireSessionWith nurodo kokį sesijos iniciatorių naudoti (pagal <SessionInitiator> id atributą):
<VirtualHost *:433>
...
    <Location /apsaugotas_turinys>
        AuthType shibboleth
        ShibRequestSetting requireSession On
        ShibRequestSetting requireSessionWith "KTU_LOGIN"
        Require valid-user
    </Location>
...
</VirtualHost>

Perkrovus Web serverį ir aplankius https://paslauga.test.litnet.lt/Shibboleth.sso/Metadata bus parsiųstas sugeneruotas paslaugos metaduomenų failas, kurį reikia pateikti tapatybės tiekėjui.

Jei nenorite naudoti autentifikacijos kokiai nors nuorodai, nurodykite VirtualHost'o konfigūracijoje:

<VirtualHost *:443>
...
    <Location /public>
        AuthType shibboleth
        ShibRequestSetting requireSession Off
        Require Shibboleth
    </Location>
...
</VirtualHost>
  • Visi naudojami atributai turi būti išvardinti attribute-map.xml faile, atkreipiant dėmesį į nameFormat:
    <Attribute name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" id="eduPersonPrincipalName" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" />

Daugiau informacijos:

   https://wiki.shibboleth.net/confluence/display/SHIB2/Installation
   https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPConfiguration
   https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig