OAuth2
Standa Jaša
▷ Přihlášení přes 3. stranu (OpenID, Facebook, Google)
o ideální v backendu pro zaměstance firmy, kteří jsou spojení
emailovou adresou na jedné doméně
▷ vs. uživatelské jméno + heslo
o někteří lidé nechtějí SSO používat
http://www.zdrojak.cz/clanky/nezatezujte-uzivatele/
Nezatěžujte uživatele (a sebe)
vytvářením účtů
▷ Open Standard for Authorization
▷ začal to Twitter svým OpenID
▷ dvě verze 1 a 2
▷ 1 je protokol, 2 je framework (totální rozdíl)
▷ Google (2), Twitter (1a, 2), Tumblr (1a), Facebook
(2), Amazon (2), Github (2)
▷ Většina providerů implementuje verzi 2
▷ Alternativy: BSD Auth, JAAS, PAM, SASL, ...
OAuth2 vs OAuth1 vs OpenID
▷ Proč tedy OAuth? - Podporuje ho Google, Microsoft,
Facebook, Github a LinkedIn...
▷ “Pro přístup k našemu systému se prosím
zaregistrujte na gmailu a pošlete nám svou
emailovou adresu.”
▷ => Intranety
▷ OK: invalidace účtu, reset hesla
OAuth2
▷ ukázka:
http://test.jasa.name/oauth2-client
▷ github knihovny:
https://github.com/thephpleague/oauth2-client
▷ zdroják:
https://gist.github.com/standa/6c46dbb0a184a6218a
63
1.composer require league/oauth2-client
▷ https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-
oauth2/src/main/java/org/springframework/security/oauth2/client/DefaultOAuth2RequestAu
thenticator.java
1.Spring Security
$provider = new
LeagueOAuth2ClientProviderGoogle(['clientId'
=> 'blabla',
'clientSecret' => 'heslo',
'redirectUri' => 'http://test.jasa.name/oauth2-
client/index.php?oauth2callback=1',
// 'scope' => 'email'
]);
2. Construct Provider
$token = $provider-
>getAccessToken('authorization_code', ['code' =>
$_GET['code']]);
$userDetails = $provider->getUserDetails($token);
printf('Hello %s!', $userDetails->email);
2. Get Access Token
▷ "SELECT * FROM bla
WHERE a = '" + spatnyKod + "';"
▷ yrdiyrtf
▷ uotfhbiykuy
▷ yitf ížtd ýo ufíif
▷ uyf gituy ytk
Nadpus 2
Díky za pozornost!
Otázky?

O auth2