API tervezése mobil környezetbe. gyakorlat

Hasonló dokumentumok
RBLDNS DNS-based blocklists management felhasználói kézikönyv

RBLDNS DNS-based blocklists management felhasználói kézikönyv

Valimed API. REST API a magyarországi orvos pecsétszámok validálására

Alapfogalmak, WWW, HTTP

Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András

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

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

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

S, mint secure. Nagy Attila Gábor Wildom Kft.

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

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

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

NGFW + IPS + anti-apt + BYOD = Sophos UTM 9.2

A Java EE 5 plattform

Webszolgáltatások (WS)

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

Elektronikus szolgáltatás igénylés megvalósítása a NIIFI-ben. 2011/11/10 HBONE Workshop. Kiss Zoltán

WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS

<Insert Picture Here> Migráció MS Access-ről Oracle Application Express-re


Moodle-integrálás intézményi környezetben

Példa webáruház kialakítás rendszerdokumentáció

Adatkezelési nyilatkozat

Web programoz as

WLAN router telepítési segédlete

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

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

SIP. Jelzés a telefóniában. Session Initiation Protocol

ÜGYFÉLKAPU AZONOSÍTÁSI SZOLGÁLTATÁS

Szolgáltatói Adminisztrátori leírás

Vodafone HomeNet Használati útmutató

Webalkalmazás-biztonság. Hitelesítés, jelszókezelés, hozzáféréskontroll

Leolvasói rendszer kialakításának koncepciója ipari mobil eszközökkel (ipari PDA-val)

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

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

ELEKTRONIKUS MUNKABÉRJEGYZÉK MODUL

Web-fejlesztés NGM_IN002_1


Intelligens biztonsági megoldások. Távfelügyelet

SZOLGÁLTATÓI NYILVÁNTARTÁSI RENDSZER FELHASZNÁLÓI KÉZIKÖNYV

Mobile network offloading. Ratkóczy Péter Konvergens hálózatok és szolgáltatások (VITMM156) 2014 tavasz

Vonalkód olvasó rendszer. Specifikáció Vonalkód olvasó rendszer SoftMaster Kft. [1]

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Webleltár rendszer. Készítette: ABACOM Kft november. Abacom Kft.

INFORMATIKA EGYRE NAGYOBB SZEREPE A KÖNYVELÉSBEN

Nyilvántartási Rendszer

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 5.ELŐADÁS. Sütik és munkamenetek kezelése

Budapest Főváros Kormányhivatala. Földmérési, Távérzékelési és Földhivatali Főosztály. Általános Szerződési Feltételek.

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

2F Iskola fejlesztői dokumentáció

Taninform KIR kapcsolat

MOBILBIZTONSÁG AUTENTIKÁCIÓ. Készítette: Czuper László & Bagosi Antal

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

Adatbányászat és Perszonalizáció architektúra

WLAN router telepítési segédlete

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

Bevezető. Servlet alapgondolatok

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

Jogában áll belépni?!

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Egyetemi könyvtári nyilvántartó rendszer

Adatkezelési nyilatkozat, szabályzat

beállítása Outlook kliensen. Magyar verzió 1.0

Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban. A CryptTalk fejlesztése során alkalmazott módszerek. Dr. Barabás Péter Arenim Technologies

Web-fejlesztés NGM_IN002_1

Netis vezeték nélküli, N típusú, router

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

OOP és UML Áttekintés

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

AAI & Shibboleth HBONE Workshop

web works hungary Rövid technikai tájékoztató Mars (mars.intelliweb.hu) szerverünkkel kapcsolatban meglévő és új ügyfeleink számára.

OZW V7.0 firmware frissítés, Remote Tool Access részletes ismertető

Hogy miért akarnak lehallgatni minket az lehallgatónként változik.

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

SZÓBELI ÉRETTSÉGI TÉMAKÖRÖK

Titkosítás NetWare környezetben

Gyors üzembe helyezési kézikönyv

WLAN router telepítési segédlete

Földmérési és Távérzékelési Intézet

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

Végfelhasználói Applet kézikönyv

Biztonság a glite-ban

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

Titkosítás mesterfokon. Tíz évvel a titkosítás után. Előadó: Tóthi Dóra Kovárczi Béla András

OJOTE - Soron kívüli beutalhatóság vizsgálat

Egyetemi könyvtári nyilvántartó rendszer

1. GYIK (Gyakran Ismételt Kérdések) ÉV rajzok ellenőrzésének lépései Jelszó problémák Kapcsolattartók fájlfeltöltése...

A rendszer különféle információs, kulturális és oktatási célokat szolgálhat:

HÁLÓZATI HASZNÁLATI ÚTMUTATÓ

Adatbázisok webalkalmazásokban

Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

Felhasználói útmutató CVR mobil kliens, ios rendszerhez.

A PAKSI ATOMERŐMŰ KÖRNYEZETELLENŐRZŐ LABORATÓRIUMA MINTAVÉTELI ADATBÁZISÁNAK KORSZERŰSÍTÉSE

Web service fenyegetések e- közigazgatási. IT biztonsági tanácsadó

Félreértések elkerülése érdekében kérdezze meg rendszergazdáját, üzemeltetőjét!

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

Átírás:

API tervezése mobil környezetbe gyakorlat

Feladat Szenzoradatokat gyűjtő rendszer Mobil klienssel Webes adminisztrációs felület

API felhasználói Szenzor node Egyirányú adatküldés Kis számítási kapacitás Feltételezzük, hogy HTTPS-képes Nincs humán interfész Telefonos kliens Bizonytalan kapcsolat, esetleg drága is Nagy számítási kapcsolat Webes felület Web böngésző! Lehet webes vékony-kliens Akkumulátoros táplálás (+napelem) Nehezen megközelíthető, távoli helyszín Vezeték nélküli (bizonytalan) kapcsolat

Megvalósítandó rész-funkciók A felhasználók azonosítása: Nem akarjuk, hogy illetéktelenek adatokat olvassanak, illetve küldjenek be Adatok fogadása Adatok megjelenítése, törlése Az adatokat szolgáltató szenzorok nyilvántartása Felhasználók kezelése

Ismétlés REST API Egy API akkor lesz REST, ha teljesíti a következő megszorításokat: Kliens-szerver architektúra Állapotmentesség Gyorsítótárazhatóság Réteges felépítés (proxy szerverek támogatása) Igényelt kód Egységes interfész

Átvitel: HTTPS HTTPS: Használjuk a HTTP hibakódokat Használjuk a titkosítást Használjuk a hitelesítést

Bejelentkezés A szenzor node-ok esetén nincs lehetőség felhasználónév, jelszó bekérésére minden adatküldéskor: API key Szenzor azonosító Az API key és a szenzor azonosító védelme elvileg megoldható: Flash titkosítás, kiolvasás megakadályozása stb. A mobil, illetve webes interfész esetén felhasználónév-jelszó alapú bejelentkezés

Adatok küldése Lehet valósidejű, és nem valósidejű adatküldés Utóbbi esetben időbélyeg is tartozik az adathoz. Hálózati kimaradások esetén kötegelt beküldés lehetséges Overhead csökkentése érdekében Gyorsabb beküldés használjuk ki, ha van hálózat Mit tartalmaz egy mérés? Időbélyeg explicit, vagy implicit (aktuális adat) Mért érték Mérő eszköz azonosítója Esetleg metaadatok (például mértékegység, a mérési körülményekre vonatkozó adatok stb.) nem foglalkozunk vele

Szenzorok, mérések, felhasználók nyilvántartása Művelet Create Read Update Delete RESTful Web Services HTTP művelet (method) POST* GET PUT* DELETE * Nem csak így jó, az [URL, HTTP művelet] [resource, művelet] összerendelés nem triviális.

Adatok átvitele általánosan Strukturált adat Könnyebb feldolgozás Bővíthetőség Újabb metaadatok Visszafele kompatibilitás biztosítása újabb verziók esetén (adatbázis kialakítása: szeretjük az új attribútumok megjelenését)

Egy API? Két API-t tervezünk Egy egyszerű adatfogadó API a szenzor node-okhoz Egy CRUD műveleteket tartalmazó API a humán felhasználású felületekhez

Művelet RESTful Web Services HTTP művelet (method) API URL-ek Szenzor node API /sensor_api/ Adatfogadó végpont: /sensor_api/measurement/new [POST] /sensor_api/bulk/measurements [POST] Create Read Update Delete POST* Web és mobil API /api Autentikáció, token-generálás /api/login Adatműveletek: /api/<adat típusa>/new [POST] /api/<adat típusa>/<id> [GET] /api/<adat típusa>/<id> [DELETE] /api/<adat típusa>/<id> [PUT] /api/<adat típusa többesszám> [GET] GET PUT* DELETE

Szenzor felület /sensor_api/measurement/new A szenzor node-ok küldenek pontosan egy darab adatot { } "sensor_node_id": "00:11:22:33:44:55", "api_key": "Y2lybW9zY2ljYWhhaixob3ZhbGV0dGF2YWo", "measurement": { "sensor_node_id": "00:11:22:33:44:55", "value": 15, "meta": { "unit": " C" } } Ez jobb helyen lehet egy request headerben

Kitérő: API key küldése URL: GET /new?api_key=y2lybw9zy2ljywhhaixob3zhbgv0dgf2ywo HTTPS használata esetén a TCPpayload-ban SSL titkosított URL:....a].b.. Szerver logban: /new?api_key=y2lybw9zy2ljywhhaixob3zhbgv0dgf2ywo (browser history, referer request header: kép, js, analytics) Request header: GET /new HTTP/1.1 X-API-Key: Y2lybW9zY2ljYWhhaixob3ZhbGV0dGF2YWo Cookie: GET /new HTTP/1.1 Cookie: X-API-KEY=Y2lybW9zY2ljYWhhaixob3ZhbGV0dGF2YWo

Szenzor felület /sensor_api/measurement/new Mi legyen a válasz? Ki kell, hogy derüljön a művelet sikeressége. Kis sávszélesség, nem küldünk fölöslegesen adatot. { result": "ok" }

Szenzor felület /sensor_api/bulk/measurements/ { } "sensor_node_id": "00:11:22:33:44:55", "api_key": "Y2lybW9zY2ljYWhhaixob3ZhbGV0dGF2YWo ", "measurement": [ { "sensor_node_id": "00:11:22:33:44:55", timestamp": 2018-09-12T12:14:00Z", "value": 15, "meta": { "unit": " C" } } ]

Web (és mobil) felület bejelentkezés /api/login { "username": "sandor", "password": "piros7es" } { "token": "xzbyw7xsdcbtaw5kzw4gzswxc3rdowwu" }

Webes felület CRUD műveletek Create /api/<adat típusa>/new [POST] A szenzor felület beküldő interfészéhez teljesen hasonlóan, az autentikációs tokennek szerepelnie kell: betesszük egy HTTP kérés fejlécbe. A hozzáférési jogosultság ellenőrzése az alapján történik Mivel itt a sávszélesség megengedi, és haszna lehet, új elem esetén visszaküldhető az új létrehozott objektum, vagy annak egyedi azonosítója (később ezzel hivatkozhatunk rá)

Webes felület CRUD műveletek Read, Update /api/<adat típusa>/<id> [GET, PUT] Kellhet a token, az adatra az egyedi azonosítójával hivatkozunk GET esetén nincs beküldött adat, ezért is praktikus a fejlécbe tenni a tokent.

Webes felület tételek listázása Semmi különös, tömbbel térünk vissza Mi történik, ha sok az adat? Lapozás paging, adatok szűrése Ha nem érvényes a szűrő kifejezés, visszatérés hibával GET paraméterekkel /api/measurements?from=2017-12-12t10:00:00z&until=2018-01- 12T10:00:00Z

Webes felület tételek listázása, másként Gyakori lekérdezések entitásokhoz kapcsolódóan /api/sensor/5/measurements /api/measurements?sensor=5 Nem egy jó megoldás létezik

Az API hívások eredménye hibák HTTP hibakódokkal kezelhetők 200 OK 201 Created 401 Unauthorized 403 Forbidden 404 Not Found 418 I'm a teapot 500 Internal Server Error