## 2. Új alkalmazás regisztrációja meglévő SimpleSAMLphp telepítésben
Éles alkalmazást csak https protokollal telepítsünk!
### 2.0 SimpleSAMLphp elérési út
Amennyiben a webszerver nem úgy van globálisan konfigurálva, hogy a /simplesaml prefixre a SimpleSAMLphp jöjjön be,
akkor hozzunk létre az alkalmazás www könyvtárban egy symlink-et, mely a ...simplesamlphp/public mappára mutat.
### 2.1 Az alkalmazás manuális regisztrációja (alternatíva)
Erre a lépésre csak akkor van szükség, ha nem telepítettük a szerveren a `refreshAuthsources` modult.
A szerveren lévő SimpleSAMLphp konfigurációban a `$config` tömbben hozzunk létre egy új bejegyzést:
'alkalmazásnév' => array(
'saml:SP',
'idp' => 'https://idp.pte.hu/saml2/idp/metadata.php',
'privatekey' => 'szervernév.pem',
'certificate' => 'szervernév.crt',
),
Megjegyzés: 1.x verzió esetén ne állítsunk be explicit entity-id-t. A RR az automatikusan generált entitásazonosítókkal számol.
### 2.2 Az alkalmazás regisztrációja a PTE Resource Registryben
A SAML menüpont alatt, a megfelelő szerverkörnyzet kiválasztása után [Új szolgáltatás] űrlap kitöltésével.
Használjuk az online dokumentációt. Normális nevet adjunk az alkalmazásnak, mert a felhasználó azt fogja látni, amikor
az adatainak átadását kérjük jóváhagyni.
Ne felejtsük el igényelni azokat az attributumokat, melyek szerver szinten nem lettek megjelölve.
### 2.3 (opcionális) Az alkalmazás regisztrációja az EduID szövetségben
Erre a lépésre akkor van szükség, ha az alkalmazás a saját IdP-ken kívül szövetségi IdP-ktől is szeretne elfogadni felhasználókat.
Lásd: [SP csatlakoztatása EduID-hez](href)
## 3. Alkalmazás felkészítése (API)
Használjuk a keretrendszer SAMl modulját, ha van. A modult biztosan konfigurálni kell, és körülbelül az alábbi adatokat kell megadni:
// Configuration for SAML module
'saml' => array(
'authsource' => 'default-sp', // A default-sp helyére az alkalmazás nevét írjuk, lásd RR authsource mező. Egyes rendszerekben 'config' néven fut.
'dir' => dirname(dirname(__DIR__)).'/simplesamlphp-1.14.8/', // SimpleSAMLphp elérési útvonala
'uidfield' => 'eduPersonPrincipalName', // Mely mezővel azonosítjuk egyedileg a felhasználót (érdemes olyat használni, melyben van scope is)
'scope' => 'pte.hu', // Alapértelmezett scope új felhasználókhoz
),
Ha nincs modul, vagy nem használunk keretrendszert, akkor itt egy minimál alkalmazási példa (egy modul sem tartalmaz sokkal többet):
- [https://iig-gitlab.pte.hu/UHPOAAP.PTE/samlsample1](https://iig-gitlab.pte.hu/UHPOAAP.PTE/samlsample1)
- [https://bitbucket.org/uhi67/samlsamlple1](https://bitbucket.org/uhi67/samlsamlple1)
Minden oldal elején fusson le:
$saml_dir = dirname(dirname(__DIR__)).'/simplesamlphp-1.14.8/'; // Ezt konfig fájlból érdemes venni
require_once($saml_dir.'lib/_autoload.php');
$as = new SimpleSAML\Auth\Simple('default-sp');
if (array_key_exists('logout', $_REQUEST)) {
$as->logout(SimpleSAML\Utils\HTTP::getSelfURLNoQuery());
}
if (array_key_exists('login', $_REQUEST)) {
$as->requireAuth();
}
Ezek után az alkalmazásban bárhol lekérdezhető:
- `$as->isAuthenticated()`: be van-e lépve
- `$as->getAttributes()`: felhasználó attributumai
A belépéshez `?login`, a kilépéshez a `?logout` címre kell irányítani a felhasználót.