Vorgurakendused 2 prax 2 2016: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
PriitJ (arutelu | kaastöö)
Resümee puudub
PriitJ (arutelu | kaastöö)
 
(ei näidata sama kasutaja 12 vahepealset redaktsiooni)
20. rida: 20. rida:


* amazoni AWS-s (soovitav, olemas tasuta variant)
* amazoni AWS-s (soovitav, olemas tasuta variant)
* Googles (keerukam)
* Microsofti pilveteenus (umbes analoogne Amazoniga)
* Mõni muu, mis on siis (a) mittetriviaalne (b) eelnevalt õppejõuga kokku lepitud
* Mõni muu, mis on siis (a) mittetriviaalne (b) eelnevalt õppejõuga kokku lepitud


28. rida: 28. rida:


* oma domeeni regamine ja kasutuselevõtt, vt ka tasuta dünaamilise dnsi teemat
* oma domeeni regamine ja kasutuselevõtt, vt ka tasuta dünaamilise dnsi teemat


== Sisuline funktsionaalsus ==
== Sisuline funktsionaalsus ==
50. rida: 49. rida:
* fb auth 4p
* fb auth 4p
* API 9p
* API 9p
Ülalmainitud autentimismeetodite asemel (või lisaks neile) saab kasutada ka [http://id.ee/index.php?id=30303 mobiil-IDd] ja [https://identity.microsoft.com/docs/web Microsofti autentimisplatvormi]. Kui teed neli autentimismeetodit, siis võib saada ka üle 25 punkti.


=== Variant B: vaba teema ===
=== Variant B: vaba teema ===
65. rida: 66. rida:
* [[AWS instance genereerimine]]
* [[AWS instance genereerimine]]
* [[AWS instancega ühenduse saamine]]
* [[AWS instancega ühenduse saamine]]
* [[Muid hostingu-tähelepanekuid]]
* [[Muid hostingu-tähelepanekuid]] (Kui Amazoni platvormi kasutaja saamine ei õnnestu, on järgmine eelistus siit digitaloceani kupongi kasutada)


=== https töölepanek ===
=== https töölepanek ===
76. rida: 77. rida:
* edit existing security groups: click on them, in the panel below add rule for https (tcp and port 443)
* edit existing security groups: click on them, in the panel below add rule for https (tcp and port 443)
* then follow https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
* then follow https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
* Tasuta CA sertifikaat (alternatiiv eelmisele): https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-14-04 (Amazon AWS jaoks ei toimi)
* you may need to additionally do  
* you may need to additionally do  
/etc/apache2$ sudo cp mods-available/socache_shmcb.load mods-enabled/
/etc/apache2$ sudo cp mods-available/socache_shmcb.load mods-enabled/
85. rida: 87. rida:


* [http://eid.eesti.ee/index.php/Kasutaja_tuvastamine_veebis id-kaardi kasutamise juhend] siin võid crl-i värgi esialgu üldse ära jätta, st ka apache konfis võid esialgu jätta muutujad SSLCARevocationPath ja SSLCARevocationFile välja kommenteerituks.
* [http://eid.eesti.ee/index.php/Kasutaja_tuvastamine_veebis id-kaardi kasutamise juhend] siin võid crl-i värgi esialgu üldse ära jätta, st ka apache konfis võid esialgu jätta muutujad SSLCARevocationPath ja SSLCARevocationFile välja kommenteerituks.
* Uusim juursertifikaat on juhendist puudu, 2015 või uuemate idkaartide jaoks on vaja
https://sk.ee/upload/files/ESTEID-SK_2015.pem.crt lisaks
* [[Fiksitud php kood id-kaardi juhendist]] kasuta seda!
* [[Fiksitud php kood id-kaardi juhendist]] kasuta seda!


99. rida: 103. rida:
Kõigepealt on sul vaja teha facebooki app:
Kõigepealt on sul vaja teha facebooki app:


* go to https://developers.facebook.com/ and use "my apps" tab and select "Add a new app" from dropdown.
* Mine https://developers.facebook.com/ vajuta "my apps" nuppu ja vali "Add a new app" menüüst.
* select "web" from the main choices "ioS", "Android" and "Web" and "Canvas".   
<!-- * select "web" from the main choices "ioS", "Android" and "Web" and "Canvas".  -->
*  Give the app a name a la "Example" and category a la "Other". get through captcha. Copy and save the  
*  Pane mingi nime "Example" ja kategooria, näit. "Education". Lahenda captcha.
<!-- * Select "Sandbox mode" enabled -->
* Nüüd saad lisada "toote" (product). Kui klikkida "Facebook login" juures "Get started", läheb käima wizardilaadne asi
* Vali "Web" (teised valikud "ioS", "Android", "Canvas")
* Sisesta site Url, näit "ec2-52-59-46-144.eu-central-1.compute.amazonaws.com"
* Näidatakse valmis genereeritud javascripti juppe, aga neid on testimiseks hiljem mugavam dokumentatsiooni alt võtta


  App ID: XXXXXX..
Kui protsess alates captchast kuidagi erinev on, siis igatahes peab lõpptulemusena vasakul menüüs "Products" all olema "Facebook Login". Kui ei ole, siis kliki "+Add Product".
  App Secret: XXXXX..
  values
 
* Select "Sandbox mode" enabled 
* Select "Website with Facebook login"
* Save URL: http://localhost or http://yourmachine.com/yourpage etc 
* ...
* Go to "App details" and fill some stuff and press the "submit for review"


A concrete app console can be accessed like  https://developers.facebook.com/apps/1428005727423768?app_id=1428005727423768
"Dashboard" või "settings" alt saab vaadata oma App ID-d. See on kasulik kusagile edaspidiseks salvestada. Hiljem saab seadetele ligi https://developers.facebook.com/apps kaudu.


==== Veebileht ====
==== Veebileht ====
121. rida: 122. rida:
[https://developers.facebook.com/docs/facebook-login/web ametlik FB sisselogimisõpetus]: töötab väga ok, olulise asjana pane sinna sisse oma FB appi id (eeldatavalt pikk number), mille saad, kui teed FB appi lehe https://developers.facebook.com/apps kaudu.
[https://developers.facebook.com/docs/facebook-login/web ametlik FB sisselogimisõpetus]: töötab väga ok, olulise asjana pane sinna sisse oma FB appi id (eeldatavalt pikk number), mille saad, kui teed FB appi lehe https://developers.facebook.com/apps kaudu.


Leht http://ec2-52-28-43-138.eu-central-1.compute.amazonaws.com/a.html ongi tehtud täpselt viidatud näite koopiana + pandud sisse õige app id
Testimiseks saab kopeerida kogu näidiskoodi (tegu on terve html lehega), salvesta see näiteks <code>fb.html</code> nime all ning kopeeri <code>/var/www/html</code> kataloogi oma VPS-is. Kui App ID õige on, siis login nupp ka toimib ja avab login dialoogi. Vt dokumentatsioonist, kuidas tõlgendada sisselogimise staatust ja lugeda välja isiku userid-d.
https://developers.facebook.com/apps/996569770365422/settings/
 
=== Google autentimine ===
 
vt http://lambda.ee/wiki/Autentimise_m%C3%A4rkmed:_facebook_ja_google#Google
 
=== mobiil-ID ===
 
vt http://lambda.ee/wiki/Autentimise_m%C3%A4rkmed:_mobiil-ID

Viimane redaktsioon: 28. november 2016, kell 20:31

Ülesanne

Teise praktikumi teema on mitmekesist autentimist vajava https kaudu töötava rakenduse loomine nö suurel mainstream hostinguplatvormil.

Põhiülesanne on tehnoloogiastacki kasutamine, reaalne funktsionaalsus on vähem oluline: kuid mitte tähtusetu.

Tehnoloogiastack

Siin on kolm kohustuslikku osa: autentimine, suur hostinguplatvorm ja https koos serditegemisega.

Väga soovitavad, aga mittekohustuslikud on oma domeeni regamine ja kasutuselevõtt.

Kindlasti pead realiseerima neist mõne autentimisviisi, täispunktide jaoks kõik:

  • facebookiga autentimine
  • googlega autentimine
  • id kaardiga autentimine

Kindlasti pead realiseerima süsteemi suurel hostinguplatvormil, valides ühe neist:

  • amazoni AWS-s (soovitav, olemas tasuta variant)
  • Microsofti pilveteenus (umbes analoogne Amazoniga)
  • Mõni muu, mis on siis (a) mittetriviaalne (b) eelnevalt õppejõuga kokku lepitud

Kindlasti pead realiseerima https ühenduse, tehes selleks mh vajalikud serdid.

Lisaks võiks olla soovitavad asjad, mis ei ole siiski kohustuslikud:

  • oma domeeni regamine ja kasutuselevõtt, vt ka tasuta dünaamilise dnsi teemat

Sisuline funktsionaalsus

Sisulise funktsionaalsuse osas on väljapakkumisel mitu varianti, kusjuures ei ole keelatud ka pakkuda ise mingit erifunktsionaalsust, aga viimasel juhul tuleb see õppejõuga enne kokku leppida.


valige grupiga üks kahest:

Variant A: autentimisinfo integraator

Realiseeri andmebaas, kuhu saab sisse autentida nii id-kaardiga kui sotsiaalmeediaga (soovitav nii fb kui google) ja mis seostab sellega fakti, et selle isikukoodi ja nimega inimene on sama, mis selle sotsiaalmeedia konto omanik.

Andmebaasile realiseeri külge avalik api, millega saab küsida nii isikukoodi kaudu nime kui fb ja google kasutajanimesid kui vastupidi, fb või google kasutajanime järgi saad isikukoodi ja nime.

Punktid (kokku 25):

  • andmebaas 4p
  • google auth 4p
  • idkaart auth 4p
  • fb auth 4p
  • API 9p

Ülalmainitud autentimismeetodite asemel (või lisaks neile) saab kasutada ka mobiil-IDd ja Microsofti autentimisplatvormi. Kui teed neli autentimismeetodit, siis võib saada ka üle 25 punkti.

Variant B: vaba teema

Vali ise mingi teema ja kooskõlasta see õppejõuga. Tehnoloogiastacki elemendid (vt ülalpool) peavad kasutusel olema. See variant on mõeldud neile, kellele A liiga lihtsaks jääb ning eeldab ise uurimist ja pusimist, ehkki õppejõud on harjutustundides olemas konsulteerimiseks. Hea oleks (aga ei ole kohustuslik) realiseerida selline funktsionaalsus, millest võiks tegelikult kasu olla, ehk millest saaks edasi arendada praktilise süsteemi või toote.

Näide: autenditud veebiwidget

Algelised widgetid: http://alexmarandon.com/articles/web_widget_jquery/ http://www.codeproject.com/Articles/81355/Chapter-Creating-Web-Widget-with-HTML-CSS-and-Ja ; Autentimise problemaatika: http://stackoverflow.com/questions/13219308/how-to-implement-a-web-widget-with-oauth-2-0 ; näide rakendusest: https://satoshipay.io/ ; ka Facebooki "Like" button käib sellise widgeti alla.

Tehnilised juhendid

AWS kasutamine

https töölepanek

Enne ära hakka id-kaardi autentimist tegema, kui lihtsalt https veel ei tööta. NB! Kui sulle tuleb ette "untrusted" vms, siis kinnita erand ja jätka rahulikult.


Creating https connection:

/etc/apache2$ sudo cp mods-available/socache_shmcb.load mods-enabled/

  • then test https

Kui https töötab, siis jätka:

ID kaardi kasutamine https-s

  • id-kaardi kasutamise juhend siin võid crl-i värgi esialgu üldse ära jätta, st ka apache konfis võid esialgu jätta muutujad SSLCARevocationPath ja SSLCARevocationFile välja kommenteerituks.
  • Uusim juursertifikaat on juhendist puudu, 2015 või uuemate idkaartide jaoks on vaja

https://sk.ee/upload/files/ESTEID-SK_2015.pem.crt lisaks

IT-maja arvutiklassis firefox vaikimisi ei suuda id-kaarti kasutada, küll aga chrome.

Katsemasinas töötab: https://ec2-52-28-43-138.eu-central-1.compute.amazonaws.com/a.php

https id-kaardiga ja harilikult: kuidas teha

Facebooki autentimine

Facebooki app

Kõigepealt on sul vaja teha facebooki app:

  • Mine https://developers.facebook.com/ vajuta "my apps" nuppu ja vali "Add a new app" menüüst.
  • Pane mingi nime "Example" ja kategooria, näit. "Education". Lahenda captcha.
  • Nüüd saad lisada "toote" (product). Kui klikkida "Facebook login" juures "Get started", läheb käima wizardilaadne asi
  • Vali "Web" (teised valikud "ioS", "Android", "Canvas")
  • Sisesta site Url, näit "ec2-52-59-46-144.eu-central-1.compute.amazonaws.com"
  • Näidatakse valmis genereeritud javascripti juppe, aga neid on testimiseks hiljem mugavam dokumentatsiooni alt võtta

Kui protsess alates captchast kuidagi erinev on, siis igatahes peab lõpptulemusena vasakul menüüs "Products" all olema "Facebook Login". Kui ei ole, siis kliki "+Add Product".

"Dashboard" või "settings" alt saab vaadata oma App ID-d. See on kasulik kusagile edaspidiseks salvestada. Hiljem saab seadetele ligi https://developers.facebook.com/apps kaudu.

Veebileht

Järgmisena tee veebileht:

ametlik FB sisselogimisõpetus: töötab väga ok, olulise asjana pane sinna sisse oma FB appi id (eeldatavalt pikk number), mille saad, kui teed FB appi lehe https://developers.facebook.com/apps kaudu.

Testimiseks saab kopeerida kogu näidiskoodi (tegu on terve html lehega), salvesta see näiteks fb.html nime all ning kopeeri /var/www/html kataloogi oma VPS-is. Kui App ID õige on, siis login nupp ka toimib ja avab login dialoogi. Vt dokumentatsioonist, kuidas tõlgendada sisselogimise staatust ja lugeda välja isiku userid-d.

Google autentimine

vt http://lambda.ee/wiki/Autentimise_m%C3%A4rkmed:_facebook_ja_google#Google

mobiil-ID

vt http://lambda.ee/wiki/Autentimise_m%C3%A4rkmed:_mobiil-ID