Symfony kurzus 2014/2015 I. félév. Security: authentication, authorization, user provider, role-ok, access control, FOS user bundle



Hasonló dokumentumok
Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET)

Symfony kurzus 2014/2015 I. félév. Controller, Routing

API tervezése mobil környezetbe. gyakorlat

Debreceni Egyetem Matematikai és Informatikai Intézet. 13. Védelem

Enterprise User Security

LINUX LDAP címtár. Mi a címtár?

SAMBA. Forrás: Lajber Zoltán: SAMBA alapok dia, SZIE

Biztonság java web alkalmazásokban

11. Gyakorlat: Certificate Authority (CA), FTP site-ok


KÜRT Zrt. Logelemzés heti riport Felhasználói fiók, illetve felhasználói csoportkezelési műveletek

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

Adatbázisok webalkalmazásokban

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

A gyakorlaton megoldandó feladat. Áttekintés. Probléma - Tervezés. 6. gyak 1. feladat. ASP.NET Alapozó. Authentikáció és Authorizáció

10. Gyakorlat: Alkalmazások publikálása Remote Desktop Szervízen keresztül

Bevezető. Servlet alapgondolatok

Hálózati operációs rendszerek II. OES biztonsági rendszere

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés

JNDI - alapok. Java Naming and Directory Interface

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 7. óra. Kocsis Gergely, Kelenföldi Szilárd

Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

JAVA webes alkalmazások

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

SQUID. Forrás:

NEPTUN ID BMENET ID. Címtár BME VPN. vcenter VPN SVN. Trac Wiki. Wifi

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

S z á m í t ó g é p e s a l a p i s m e r e t e k

C#, OOP. Osztályok tervezése C#-ban

Model View Controller alapú alkalmazásfejlesztés

Operációs Rendszerek I.

1. Forgalomirányítók konfigurálása

2. lépés: openssh szerver telepítés sudo apt-get install openssh-server

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

MVC. Model View Controller

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

JEE tutorial. Zsíros Levente, 2012

Hálózati architektúrák és Protokollok GI Kocsis Gergely

eseményvezérelt megoldások Vizuális programozás 5. előadás

A biztonsági fenyegetettségek száma és területe gyorsan változik. De nem csak a támadók dolgoznak ezen, a végfelhasználók is sokat tesznek ezért.

BackupPC. Az /etc/hosts fájlba betehetjük a hosztokat, ha nem a tejles (fqdn, DNS név) névvel hivatkozunk rájuk: # /etc/hosts #

Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban

r e l o a d. n o n p r o f i t f o r u m. e u Telepítési útmutató 3. RELOADED

Operációs rendszerek. A védelem célja. A fenyegetés forrásai. Védelmi tartományok. Belső biztonság. Tartalom

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 6. óra. Kocsis Gergely, Supák Zoltán

Miről lesz szó? Setup Project készítése. Tulajdonságok. 1. Készítsünk egy setup project alkalmazást egy már elkészített, lefordított programhoz.

Oracle Audit Vault and Database Firewall. Gecseg Gyula Oracle DBA

Modern unit és integrációs tesztelés

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

ANDROID ALKALMAZÁSFEJLESZTÉS

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

Powershell 2. gyakorlat

SQLServer. Védelmi struktúra

Java és web programozás

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Gyakorlati útmutató az online jogi továbbképzéshez

Operációs Rendszerek I. Jogosultságkezelés

10.óra CodeIgniter Framework #3. Gyimesi Ákos

Hová tűnt a sok kereszthivatkozás?

Szövetségi (föderatív) jogosultságkezelés

MDAC - Microsoft Data Access Components

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Ungváry Rudolf: Relex Relációkat és lexikai egységeket kezelő névtérszerkesztő a weben

Moodle 3.5 és egyéb újdonságok Vágvölgyi Csaba - Papp Gyula

JAVA PROGRAMOZÁS 3.ELŐADÁS

DRUPAL 7. újdonságai. Hojtsy Gábor Drupal Hétvége, Budapest november 14. Angela Byron fóliái alapján

Making security business-meaningful április 16.

Operációs rendszerek. A Windows NT felépítése

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Web-fejlesztés NGM_IN002_1

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

Eduroam Az NIIF tervei

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Választó lekérdezés létrehozása

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

IP alapú komunikáció. 2. Előadás - Switchek 2 Kovács Ákos

Webtárhely létrehozása a helyen. Lépések Teendő 1. Böngészőbe beírni: 2. Jobb oldalon regisztrálni (tárhelyigénylés).

Bevezetés Működési elv AJAX keretrendszerek AJAX

Nyilvántartási Rendszer

Számítógépes munkakörnyezet II. Szoftver

DCWatch fejlesztői HUB: dchub://4242.hu:1411 Elite Hub, ahol megnézheted működés közben a BOT-ot: dchub://elite.4242.hu:4242

Adatbázis rendszerek 7. előadás State of the art

Konfigurációkezelés (2B)

A hibrid DB cloud biztonsági eszköztára. Kóródi Ferenc Budapest,

Alkalmazások biztonsága

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

Mobil Informatikai Rendszerek

Powershell 1. gyakorlat

Java és web programozás

Megtanuljuk, hogyan lehet egy web-alkalmazással adatbázishoz csatlakozni Pontosan megnézzük a PHP lehetőségeit o MySQL-hez o Oracle-höz

Biztonságos PHP a gyakorlatban

Private Cloud architektúra keretrendszer

Átírás:

Symfony kurzus 2014/2015 I. félév Security: authentication, authorization, user provider, role-ok, access control, FOS user bundle

Authen'ca'on Ez még csak azt dönti el, hogy a rendszer által azonosítóható-e a felhasználó Feladata: meghatározni, hogy ki nézi az adott oldalt az azonosítás több módszerrel is történhet HTTP alapú form alapú Facebook, Google, Twitter, stb. (OAuth 2.0)

Authoriza'on Ellenőrzi, hogy az azonosított felhasználó rendelkezik-e az útvonalhoz szükséges jogosultságokkal. Szerepkör (ROLE) alapú minden felhasználó rendelkezik bizonyos szerepkörökkel egy adott erőforráshoz (útvonal, objektum) való hozzáférés szerepkörhöz köthető sima Stringként kezelhetők hierarchikus felépítés

Authoriza'on példa # app/config/security.yml security: #... access_control: - { path: ^/admin, roles: ROLE_USER_IP, ip: 127.0.0.1 - { path: ^/admin, roles: ROLE_USER_HOST, host: symfony\.com$ - { path: ^/admin, roles: ROLE_USER_METHOD, methods: [POST, PUT] - { path: ^/admin, roles: ROLE_USER

Authoriza'on példa - { path: ^/admin, roles: ROLE_USER_IP, ip: 127.0.0.1 - { path: ^/admin, roles: ROLE_USER_HOST, host: symfony\.com$ - { path: ^/admin, roles: ROLE_USER_METHOD, methods: [POST, PUT] - { path: ^/admin, roles: ROLE_USER URI IP HOST METHOD ROLE /admin/user 127.0.0.1 example.com GET ROLE_USER_IP /admin/user 127.0.0.1 symfony.com GET ROLE_USER_IP /admin/user 168.0.0.1 symfony.com GET ROLE_USER_HOST /admin/user 168.0.0.1 symfony.com POST ROLE_USER_HOST /admin/user 168.0.0.1 example.com POST ROLE_USER_METHOD /admin/user 168.0.0.1 example.com GET ROLE_USER

Authoriza'on controllerben public function helloaction($name) { $securitycontext = $this->get('security.context'); if (false === $securitycontext->isgranted('role_admin')) { throw new AccessDeniedException(); /** * @Secure(roles="ROLE_ADMIN") */ public function helloaction($name) { //...

Authoriza'on objektumokra (ACL) objektumokra egyessével tudunk jogosultságot ellenőrizni pl. saját Actor adatlap szerkesztése adatbázis alapú ehhez szükséges táblák előkészítése: php app/console init:acl

Authoriza'on objektumokra (ACL) public function addactoraction(actor $actor) { // retrieving the security identity of the currently logged-in user $securitycontext = $this->get('security.context'); $user = $securitycontext->gettoken()->getuser(); $securityidentity = UserSecurityIdentity::fromAccount($user); // creating the ACL $aclprovider = $this->get('security.acl.provider'); $objectidentity = ObjectIdentity::fromDomainObject($actor); $acl = $aclprovider->createacl($objectidentity); // grant owner access $acl->insertobjectace($securityidentity, MaskBuilder::MASK_OWNER); $aclprovider->updateacl($acl);

Authoriza'on objektumokra (ACL) public function editactoraction(actor $actor) { $securitycontext = $this->get('security.context'); if (false === $securitycontext->isgranted('edit', $actor)) { throw new AccessDeniedException(); /** * @SecureParam(name="actor", permissions="edit") */ public function editactoraction(actor $actor) { //...

Access Control kifejezések - { path: ^/foo, access: "hasrole(role_foo') and hasrole(role_bar')" - { path: ^/foo, access: "isanonymus()" - { path: ^/foo, access: "isauthenticated()" /** * @Secure(roles="ROLE_FOO") * @SecureParam(name="actor", permissions="edit") * @PreAuthorize("isGranted('actor', 'EDIT')") * @PreAuthorize("hasRole('ROLE_FOO') and hasrole('b')") * @PreAuthorize("isAnonymus()") */ public function editactoraction(actor $actor) { //...

User Provider a felhasználókat szolgáltatja jöhetnek sok helyről config fájl, adatbázis, Facebook api, stb. beépítve 2 van conflig fáj, adatbázis providers: chain_provider: chain: providers: [in_memory, user_db] memory_provider: memory: users: ryan: { password: ryanpass, roles: 'ROLE_USER' admin: { password: kitten, roles: 'ROLE_ADMIN' database_provider: entity: { class: Acme\UserBundle\Entity\User, property: username

FOSUserBundle https://github.com/friendsofsymfony/fosuserbundle adatbázisbeli tárolásban segít, jellemzők: alapvető adatbázis séma regisztráció háttérműködése, formja email megerősítés jelszó emlékeztető unit tesztek telepítésről leírás: https://github.com/friendsofsymfony/ FOSUserBundle/blob/master/Resources/doc/ index.md

FOSUserBundle commandok php app/console fos:user: create testuser test@example.com password deactivate testuser activate testuser promote testuser ROLE_ADMIN demote testuser ROLE_ADMIN change-password testuser newpassword

FOSUserBundle UserManager $usermanager = $container ->get('fos_user.user_manager'); $user = $usermanager->createuser(); $user->setusername('john'); $user->setemail('john.doe@example.com'); $user->addrole("role_admin"); $usermanager->updateuser($user); $user = $usermanager->finduserbyusername('john'); $usermanager->deleteuser($user);