© 2016 InterSystems Corporation. All rights reserved. Integrace OAuth 2.0 a OpenID Connect
© 2016 InterSystems Corporation. All rights reserved. 2 Co je OAuth?
© 2016 InterSystems Corporation. All rights reserved. OAuth je otevřený standard pro udělení oprávnění, obecně používaný pro přístup uživatelů internetu k přihlášení k webům třetích stran s využitím účtů u Microsoftu, Google, Facebooku, Twitteru, One Network atd. bez sdílení (zveřejnění) svých hesel. Obecně, OAuth poskytuje klientům „bezpečný delegovaný přístup" ke zdrojům serveru jménem a vlastníka zdrojů (dat). Definuje proces, kterým vlastníci zdrojů opravňují třetí stranu k přístupu k jejich zdrojům, aniž by museli sdílet své přihlašovací údaje. Navržen primárně pro práci s protokolem Hypertext Transfer Protocol (HTTP), OAuth v zásadě umožňuje vydávání přístupových (access) tokenů klientům třetích stran authorizačním serverem, se souhlasem vlastníka zdrojů. Třetí strana používá access token k přístupu ke chráněným zdrojům spravovaným jejich domovským serverem. Co je OAuth? 3
© 2016 InterSystems Corporation. All rights reserved. User Osoba pracující s klientskou aplikací Client Aplikace žádající data či službu ze zdrojového serveru Authorization Server Registruje aplikace klientů a zdrojových serverů Poskytuje koncový bod k přihlášení uživatele za účelem získání oprávnění k přístupu k datům (službě) Uděluje rozsah oprávnění Resource Server Poskytuje data klientské aplikaci prostřednictvím volání API rozhraní Resource Owner Uživatel udělující klientovi oprávnění k přístupu Kdo je kdo OAuth 4
© 2016 InterSystems Corporation. All rights reserved. Typy oprávnění definují způsob, jakým klientské aplikace získávají oprávnění od uživatel k přístupu k jejich datům jménem uživatel. Authorization code – Používaný nejčastěji – Uživatel je přesměrován na autorizační server k udělení oprávnění přístupu ke svým datům Implicit grant – Zjednodušená varianta předchozího, přístupový token je vydán rovnou Resource Owner grant – Vlastník dat (zdrojů) musí poskytnout své přístupové údaje přímo klientské aplikaci Client Credentials grant – Používá se tehdy, když aplikace žádá o přístup k uživatelovým datům svým jménem, namísto jménem uživatele, typicky k datovému uložišti nebo databázové službě Typy oprávnění 5
© 2016 InterSystems Corporation. All rights reserved. Sada tříd v názvovém prostoru %SYS - framework Třídy frameworku dle svého účelu (a balíčku) %OAuth2 API classes, provide user customization to authorization page API třídy, poskytují uživateli rozhraní k úpravám stránky s oprávněními OAuth Interní třídy užívané frameworkem k: Ukládání konfigurací Ukládání přístupových tokenů %SYS.OAuth2 – API třídy, užívané vývojáři k: Navázání toku OAuth zpráv Vytvoření objektu HTTP dotazu Ověření tokenů Jak OAuth 2.0 implementujeme my 6
© 2016 InterSystems Corporation. All rights reserved. 7 Ukázka
© 2016 InterSystems Corporation. All rights reserved. The show 8
© 2016 InterSystems Corporation. All rights reserved. 9 Kam dál?
© 2016 InterSystems Corporation. All rights reserved. Co třeba zkusit portál vývojářské komunity? 10