107
szerkesztés
Módosítások
→Letöltés
==Telepítés==
A leírás a forrásból történő telepítés lépéseit írja le. Az itt részletezetten kívül a SimpleSAMLphp telepíthető Debian (vagy más) operációs rendszer csomagjából, de ebben az esetben ne telepítsunk composerrel third-party (pl. általunk készített) modulokat! }}
===Előkészületek===
Ahhoz, hogy problémamentesen telepíthessük SSP alkalmazásunkat, az alábbi szoftverkomponenseknek kell működniük szerverünkön.
** HEXAA integrációhoz (SP): <code>soap</code>
====PHP csomagok Debian 9 / Ubuntu 16.04 LTS eseténcsomagok====
sudo apt install php php-dom mcrypt php-xml php-mbstring
===Letöltés===
A GitHubról történő telepítés előnye, hogy a simplesamlphp könnyen frissíthető marad, csak a third party modulokat kell újratelepíteni. Az utolsó stabil verzió számát a https://simplesamlphp.org/download oldalról tudhatjuk meg.
cd /var
git clone https://github.com/simplesamlphp/simplesamlphp.git
cd simplesamlphp
git checkout tags/v1.1416.172 -b v1.16.2
composer install --no-dev
</Directory>
===Alapbeállítások===
====Konfigurációs fájlok másolása====
Mielőtt aktiváljuk valamelyik főszolgáltatását (IdP,SP...) a telepített alkalmazásnak, néhány beállítást meg kell adnunk a <code>config/config.php</code> és <code>config/authsources.php</code> konfigurációs fájlokban.
* '''authsources.php''' másolása a '''config-templates''' mappából
cp config-templates/authsources.php config/
<span style="color:green">A '''config.php''' és '''authsources.php''' fájlok másolása utána ellenőrizzük, hogy a SimpleSAMLphp működik-e, a https://example.org/simplesaml oldalon.</span>
====Konfigurációs fájlok szerkesztése====
=====Adminisztrációs adatok beállítása=====
Amennyiben az SimpleSAMLphp kezdőlapja hiba nélkül megjelent, akkor nyissuk meg a '''config/config.php''' fájl szerkesztésre és végezzük el az alábbi beállításokat.
* '''Az "admin" felhasználó jelszavát, mellyel webes felületen keresztül be tud lépni a települő SSP-be.'''
'timezone' => 'Europe/Budapest',
Az alapadatok megadása után mentsük és zárjuk be a '''config.php'''-t. =====Naplózás beállítása===== Alapértelmezetten a SimpleSAMLphp a '''syslog'''-ba irányítja a naplózást. Ha fájlba akarunk naplózni, akkor a megfelelő könyvtárhoz biztosítsunk írás jogot a webszerver felhasználónak, és ne felejtsünk el gondoskodni a naplófájlok rotálásáról gondoskodni! * '''log''' mappa létrehozása és jogosultság beállítása sudo mkdir log && chgrp ; sudo chown www-data :adm log && ; sudo chmod g+w 755 log * Naplózási szint beállítása a '''config/config.php'''-ban 'debug' => array( 'saml' => true, 'backtraces' => true, 'validatexml' => false, ), 'logging.level' => SimpleSAML\Logger::DEBUG, 'logging.handler' => 'file', <span style="color:red">A "SimpleSAML\Logger::DEBUG" a legrészletesebb naplózási beállítás, éles rendszernél nem ajánlott csak hiba keresés esetén.</span> =====Tanúsítvány készítése=====
<span style="color:red">Nem ajánlott a SimpleSAMLphp-hoz és webszerverhez ugyanazt a tanúsítvány használni!</span>
mkdir cert
* Az alábbi paranccsal egy 10 éves tanúsítványt hozunk létre [[FedCerts | self-signed tanúsítvány]] generálunk a SimpleSMALphp számára.
openssl req -new -newkey rsa:2048 -x509 -days 3652 -nodes -out cert/saml-example-org.crt -keyout cert/saml-example-org.key
==Identity Provider (IdP) beállítás==
===IdP funkció engedélyezéseAlapbeállítások===A <code>'''IdP''' engedélyezése: a '''config/config.php</code> fájlt ''' fájlban kell szerkesztenünk, s engedélyezni a saml20 idp lehetőséget-t "true"-re állítani.
'enable.saml20-idp' => true,
===Alapbeállítások=== ===Autentikáció LDAP alaponautentikáció===
Meg kell adni, hogy az IdP milyen módon azonosítsa a felhasználót, amennyiben alapértelmezés szerint nem engedélyezett modult szeretnénk használni, úgy a megfelelő modult a <code>modules</code> könyvtár alatt engedélyezni kell. Az alábbi példában az LDAP alapú azonosítást mutatjuk be, amely külön modult nem igényel, alapértelmezés szerint része a telepített alkalmazásnak.
* These are stored in the cert-directory.
*/
'privatekey' => 'idp.saml-example.-org.key', 'certificate' => 'idp.saml-example.-org.crt',
/*
===Alapbeállítások===
A SimpleSAMLphp a tanúsítvány fájlokat a korábban létrehozott '''cert''' mappában fogja keresni, a fájlokat elég relatív elérési úttal megadni.
<source lang="php">
'default-sp' => array(
'discoURL' => NULL,
'privatekey' => 'saml-example-org.pemkey', 'certificate' => 'saml-example-org.crt',
),
</source>
A fenti beállítások alapján az SP entityID-ja megegyezik a metadata elérési útvonalával (szokásos megoldás SSP-nél), nem adunk meg alapértelmezett idp-t, ezáltal az SSP választási lehetőséget kínál fel számunkra, mikor az SP-re szeretnénk bejelentkezni, ill. most még Discovery Service URL-t sem adunk meg, hanem a beépítettet használjuk. Ez utóbbit majd a HREF-be történő integrációkor meg kell változtatni - lásd lejjebb.
===Tesztelés=Metadata========Metadata fájlok====Amennyiben IdP is beállításra került, úgy A különböző metadata template fájlok a '''metadata-templates''' mappában találhatóak. A nekünk szükséges template fájlt másoljuk át a legcélszerűbb ezt összehangolni az metadata mappába. * '''SP''' oldalon lennie kell egy''' metadata/saml20-velidp-remote.php''' fájlnak. Ehhez egyfelől Ez a <code>fájl tartalmazza az IdP eléréséhez szükséges adatokat. cp metadata-templates/saml20-idp-remote.php<metadata * '''IdP''' oldalon lennie kell egy '''metadata/code> fájlban meg kell adni saml20-sp-remote.php''' fájlnak. Ez a fájl tartalmazza az SP eléréséhez szükséges adatokat. cp metadata-templates/saml20-sp-remote.php metadata ====Metadata letöltés==== Ezen az oldalon megtaláljuk az SP vagy IdP adatait-re vonatkozó '''metadata'''-t, '''XML''' és '''PHP''' formátumban: https://example.org/simplesaml/module.php/saml/sp/metadata.php/default-sp?output=xhtml ====SP metadata beállítás IdP oldalon==== A metadata '''simplesaml''' kezdőlapon, amely esetünkben az alábbiak szerint festalábbi helyen érhető el:* Magyar nyelv esetén: "Föderáció" fül / "SAML 2.0 SP Metaadatok" pont alatt a "Mutasd a metaadatokat" linkre kattintva juthatunk el a fenti menüponthoz.* Angol nyelv esetén: "Federation" fül / "SAML 2.0 SP Metadata" pont alatt a "Show metadata" linkre kattintva juthatunk el a fenti menüponthoz. A "''SimpleSAMLphp fájl formátumban - akkor használható, ha a másik oldalon SimpleSAMLphp van''" mezőből tegyük a vágólapra az alábbi PHP kódot:
<source lang="php">
</source>
A vágólapra másolt kódot IdP oldalon, a '''metadata/saml20-sp-remote.php''' fájl végére illesszük be.
<source lang="php">
</source>
A vágólapra másolt kódot SP oldalon, a '''metadata/saml20-idp-remote.php''' fájl végére illesszük be.
===Tesztelés===
A fent elvégzett alapbeállítások után már tudjuk tesztelni a, hogy a felépített IdP - SP kapcsolat működik-e.
SP oldalon nyissuk meg a '''simplesaml''' kezdőlapot:
* Magyar nyelv esetén: "Azonosítás (autentikáció)" fül / "Azonosítási (autentikációs) beállítások tesztelése" link / "default-sp" link-re kattintva tudjuk tesztelni az IdP - SP kapcsolatot.
* Angol nyelv esetén: "Authentication" fül / "Test configured authentication sources" link / "default-sp" link-re kattintva tudjuk tesztelni az IdP - SP kapcsolatot.
A legördülő menüben az IdP-nk "nevére" kattintva, be kell tudnunk jelentkezni (az IdP-n keresztül). Ha működik, akkor az IdP visszairányít az SP-re, kiírja az azonosított felhasználó attribútumait.
==HREF-integráció==