Módosítások

SimpleSAMLphp

4 108 bájt hozzáadva, 2018. október 29., 16:30
Letöltés
** 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
Előkészületként telepíteni ====RHEL / CentOS 7 csomagok====A '''php-mcrypt''' csomaghoz engedélyezni kell a rendszerre a az "''epel-release''"-t.  sudo yum install epel-release sudo yum update sudo yum install php php-dom php-mcrypt php-xml php-mbstring php-common mod_ssl ====Composer==== A '''[https://getcomposer.org composertcomposer]'''. PHP csomagkezelőt is telepíteni kell (Akár akár forrásból, akár csomagból), hogy telepíteni lehessen a SimpleSAMLphp futásához szükséges PHP library-ket.)
===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.
{{NOTE|Jelenleg néhány saját modulunkat még nem igazítottuk az 1.15-ös kiadás változásaihoz, ezért átmenetileg az utolsó 1.14-es kiadást használjuk!}}
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
=====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; sudo chown www-data:www-data adm log; sudo chmod 775 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=====
==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.
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===
Az SP készen áll arra, hogy összekössük egy IDP-vel (ez jellemzően szintén egy SimpleSAMLphp alkalmazás). Ehhez szükséges, hogy SP oldalon beállítsuk az IDP metadata-t és IDP oldalon is beállítsuk az SP metadata-t.
Az SP készen áll arra, hogy összekössük egy IdP-vel (ez jellemzően szintén egy SimpleSAMLphp alkalmazás). Ehhez szükséges, hogy SP oldalon beállítsuk az IdP metadata-t és IdP oldalon is beállítsuk az SP metadata-t. ====Metadata========Metadata fájlok====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 metadata mappába. * '''SP''' oldalon lennie kell egy''' metadata/saml20-idp-remote.php''' fájlnak. Ez a 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/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 IDPIdP-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 IdP oldalon====
A metadata '''simplesaml''' kezdőlapon, az alá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.
 Amennyiben IdP is beállításra kerültA "''SimpleSAMLphp fájl formátumban - akkor használható, úgy ha a legcélszerűbb ezt összehangolni az SP-vel. Ehhez egyfelől másik oldalon SimpleSAMLphp van''" mezőből tegyük a <code>metadata/saml20-idp-remote.php</code> fájlban meg kell adni az IdP adatait, amely esetünkben vágólapra az alábbiak szerint fest.alábbi PHP kódot:
<source lang="php">
$metadata['https://example.org/simplesaml/saml2module.php/saml/idpsp/metadata.php/default-sp'] = array( 'nameSingleLogoutService' => array( 0 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', 'enLocation' => 'TestSPhttps://example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp', ), ), 'AssertionConsumerService' => array ( 0 => array ( 'index' => 0, 'SingleSignOnServiceBinding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', 'Location' => 'https://example.org/simplesaml/module.php/saml/sp/saml2-acs.php/idpdefault-sp', ), 1 => array ( 'index' => 1, 'Binding' => 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post', 'Location' => 'https://example.org/simplesaml/SSOServicemodule.php/saml/sp/saml1-acs.php/default-sp', ), 2 => array ( 'index' => 2, 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact', 'SingleLogoutServiceLocation' => 'https://example.org/simplesaml/module.php/saml/sp/saml2-acs.php/idpdefault-sp', ), 3 => array ( 'index' => 3, 'Binding' => 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01', 'Location' => 'https://example.org/SingleLogoutServicesimplesaml/module.php/saml/sp/saml1-acs.php/default-sp/artifact', ), ), 'certFingerprintcontacts' => array ( 0 => array ( 'afe71c28ef740bc87425be13a2263d37971da1f9emailAddress'=> 'admin@example.org', 'contactType' => 'technical', 'givenName' => 'Example Corp. IT Dept.', ), ), 'certData' => 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==', );
</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.
 
====IdP metadata beállítás SP oldalon====
 
A metadata '''simplesaml''' kezdőlapon, az alábbi helyen érhető el:
* Magyar nyelv esetén: "Föderáció" fül / "SAML 2.0 IdP 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 IdP Metadata" pont alatt a "Show metadata" linkre kattintva juthatunk el a fenti menüponthoz.
Ehhez hasonlóan A "''SimpleSAMLphp fájl formátumban - akkor használható, ha a <code>metadata/saml20-sp-remote.php</code> fájlban meg kell adnunk az SP adatait. Teszteléshez másik oldalon SimpleSAMLphp van''" mezőből tegyük a vágólapra az alábbiak elegendőkalábbi PHP kódot:
<source lang="php">
$metadata['https://idp.example.org/simplesaml/module.php/samlsaml2/spidp/metadata.php/default-sp'] = array ( 'AssertionConsumerServicemetadata-set' => 'saml20-idp-remote', 'entityid' => 'https://idp.example.org/simplesaml/modulesaml2/idp/metadata.php', 'SingleSignOnService' => array ( 0 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', 'Location' => 'https:/saml/spidp.example.org/simplesaml/saml2-acs/idp/SSOService.php/default-sp', ), ), 'SingleLogoutService' => array ( 0 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', 'Location' => 'https://idp.example.org/simplesaml/module.phpsaml2/samlidp/sp/saml2-logoutSingleLogoutService.php/default', ), ), 'certData' => 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==', 'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-spformat:transient', );
</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.
Ezek után az IdP tesztelésénél már említett oldalon a default-sp opciót kiválasztva, majd a legördülő menüben a TestSP-re kattintva be kell tudnunk jelentkezni az IdP-n keresztül. Ha működik, akkor az Az alapvető lépsekkel kész vagyunk, van egy működő SP-nk és egy működő IdP-nk.
==HREF-integráció==

Navigációs menü