OpenID Connect. Martin Kuba

Podobné dokumenty
OAuth 2. Martin Kuba, ÚVT MU

Digitální identita Moderní přístup k identifikaci klienta. Pavel Šiška, Štěpán Húsek, Deloitte Digital - Technology Services

STORK Secure Identity Across Borders Linked

eidas odstartuje Německo Jaromír Talíř

eidas - zkušenosti s implementací řízení přístupu a federací identit ISSS 2016 Hradec Králové

Multichannel Entry Point. Technologický pohled na nové přístupy k autentizaci v přímých bankovních kanálech

Nasazení OAuth 2.0 pro systém Perun

Vývoj Internetových Aplikací

Technická dokumentace pro implementaci mojeid

Integrace ORCID se systémem identit VŠB-TUO

CREDITAS API A OTEVŘENÉ BANKOVNICTVÍ - DOKUMENTACE

PEPS, NIA a mojeid. Budoucnost elektronické identity. Jaromír Talíř

ZADÁNÍ BAKALÁŘSKÉ PRÁCE

Datum Poznámka Autor Základní dokument verze 1.0 Petr Michalík (ČS)

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Změnový list. Datum Poznámka Autor. Český standard pro Open Banking

Google Apps. Administrace

Návrh a implementace bezpečnosti v podnikových aplikacích. Pavel Horal

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

MOBILNÍ ZAŘÍZENÍ JAKO AUTENTIZAČNÍ NÁSTROJ A JEHO INTEGRACE DO SYSTÉMŮ MILAN HRDLIČKA MONET+ BŘEZEN 2015

Národní Identitní Prostor ČR

Příručka pro potvrzování zůstatku vydavatelům karetních platebních prostředků

Projekt JetConf REST API pro vzdálenou správu

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

DATOVÉ STANDARDY PRO WEB 2.0. OpenID, OpenAuth, XFN, mikroformáty a další...

AUTENTIZAČNÍ SERVER CASE BEZPEČNÁ A OVĚŘENÁ IDENTITA

CASE MOBILE MOBIL JAKO AUTENTIZAČNÍ TOKEN

AARC 2 a knihovny. Doporučení AARC pro knihovny a poskytovatele služeb knihovnám, postup implementace. Ing. Jiří Pavlík CESNET / Project AARC 2

Otevřené bankovnictví PSD2 API Sandbox uživatelská specifikace

Administrace služby - GTS Network Storage

Shibboleth v systému DSpace

WINDOWS 8 APLIKACE PRO PREZENTACI DAT Z WEBOVÉHO API

PSD2. Hrozba nebo příležitost?

Bezpečná autentizace přístupu do firemní sítě

1. Vyhlašovatel. 2. Vymezení pojmů. mojeid pravidla motivačního programu pro poskytovatele služeb

Instalační manuál aplikace

Administrace služby IP komplet premium

Administrace služby IP komplet premium

API pro volání služby kurzovního lístku KB

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

Pokročilé Webové služby a Caché security. Š. Havlíček

Průvodce nastavením. Google Apps for Work

Extrémně silné zabezpečení mobilního přístupu do sítě.

Zabezpečení organizace v pohybu

SAML a XACML jako nová cesta pro Identity management. SAML and XACML as a New Way of Identity Management

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Autentizace uživatele připojeného přes 802.1X k přepínači Cisco Catalyst 2900/3550 pomocí služby RADIUS

Co je (staro)nového v DSpace

Mobile application developent

Spring framework 2.0. Roman Pichlík CZJUG

Jednorázová hesla pro zvýšení bezpečnosti vzdáleného přístupu mobilních uživatelů

Perun. Identity and Access Management System (IAM) Michal Procházka, Slávek Licehammer

Nasazení jednotné správy identit a řízení přístupu na Masarykově univerzitě s využitím systému Perun. Slávek Licehammer

Domino 10 nové komponenty a související témata (node.js, ES )

Úvod do tvorby internetových aplikací

Zabezpečení platformy SOA. Michal Opatřil Corinex Group

JSEM ELEKTRONICKÁ IDENTITA. VĚŘÍTE MI? Jiří Bořík CESNET Olomouc

Technická dokumentace pro implementaci mojeid

Digitální identita. zlý pán nebo dobrý sluha? Martin Jelínek, ASKON INTERNATIONAL s.r.o.

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Microsoft System Center Configuration Manager Jan Lukele

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

ATS Global B.V. ATS Bus.

Autentizace webových aplikací z pohledu NEbezpečnosti. Oldřich Válka Security

Řešení integrace Profinit ESB. Michal Bureš

ZADÁNÍ BAKALÁŘSKÉ PRÁCE

Sledování výkonu aplikací?

MĚSTSKÝ ROK INFORMATIKY KLADNO

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Novinky v mojeid. Zdeněk Brůna zdenek.bruna@nic.cz

Moderní přístupy a nástroje GIS v ochraně přírody a krajiny ČR

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Business Edition, ESET Remote Administrator

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. v mobilních aplikacích

MQTT

PDS. Obsah. protokol LDAP. LDAP protokol obecně. Modely LDAP a jejich funkce LDIF. Software pro LDAP. Autor : Petr Štaif razzor_at

SIMATIC S GPRS. Micro Automation. Promoters Meeting October Aplikace pro GPRS. Vzdálená stanice. Server SINAUT MICRO SC.

Zákon o elektronickém zdravotnictví. Řízení identitních prostředků zdravotnických pracovníků a důsledky pro práci se zdravotnickou dokumentací

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Z internetu do nemocnice bezpečně a snadno

Active Directory organizační jednotky, uživatelé a skupiny

Databázové a informační systémy

Nasazení mobilního GIS

Compatibility List. GORDIC spol. s r. o. Verze

Jakub Šesták. ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY

Web Services na SOAP

Požadavky pro výběrová řízení TerraBus ESB/G2x

Úvod do aplikací internetu a přehled možností při tvorbě webu

TECHNICKÉ PODMÍNKY. Tyto podmínky stanoví technické požadavky pro poskytování vybraných Bankovních služeb. Vaše případné dotazy rádi zodpovíme.

SUTOL Symposium 2014

BI-VWS. Vybrané partie z administrace Webového Serveru Autetizace, autorizace a kontrola přístupu Apache httpd

Technické podmínky provozu

GeoHosting. Martin Vlk. (vypusťte svoje data do světa) Help forest s.r.o. člen skupiny WirelessInfo 2008

Představení společnosti a produktů ESET ESET software, spol. s r.o. Petr Heřman

Databáze II. 1. přednáška. Helena Palovská

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale

SOAP & REST služby. Rozdíly, architektury, použití

Důvěřujte JEN PROVĚŘENÝM Personal Identity Verification

Desktop systémy Microsoft Windows

Transkript:

OpenID Connect Martin Kuba makub@cesnet.cz

Obsah co jsou OpenID Connect a OAuth 2 principy OAuth 2 4 zúčastněné strany scope, access token různé typy authorization grant flow rozšíření OpenID Connect nad OAuth2 vyzkoušené implementace OpenID Provider - MitreID Connect server-side client - Apache mod_auth_openidc JavaScript client - oidc-client-js Resource Server - Apache mod_auth_openidc

OpenID Connect a OAuth2 OpenID Connect (dále OIDC) je rozšíření autorizačního protokolu OAuth 2 o autentizaci a API pro získávání informací o uživateli OAuth 2 je autorizační protokol, jímž uživatel, vlastnící zdroje na resource serveru, zplnomocňuje cizí aplikaci, aby jeho jménem se zdroji zacházela z hlediska aplikací je OIDC obdoba SAML2, ale není nutná výměna metadat mezi IdP a SP uživatel si sám volí, která osobní data aplikaci zpřístupní aplikace nejsou omezené na web (i mobilní, desktopové, command-line, SmartTV)

OAuth 2 definován v RFC 6749 z roku 2012 používán firmami Google, Facebook, Microsoft, Twitter, LinkedIn, GitHub atd. je určen pro bezpečné delegování přístupu, ale byl od počátku používán i pro federované přihlášení

OAuth2 - zúčastněné strany resource owner - uživatel resource server - server spravující uživatelova data, umožňuje určité operace nad nimi, právo k určitým operacím se nazývá scope client - aplikace, která chce přístup k operacím s uživatelovými daty (čtení, změny, mazání) authorization server - server, který autentizuje uživatele, ptá se jich které scopes chtějí povolit určitému clientovi, vydává access token

OAuth 2 - příklad resource owner - já resource server - Google Calendar API na https://www.googleapis.com/calendar/v3 scopes čtení i zápis - https://www.googleapis.com/auth/calendar jen čtení - https://www.googleapis.com/auth/calendar.readonly client - aplikace Business Calendar pro Android od firmy Appgenix Software authorization server - https://accounts.google.com/

OAuth 2 - registrace clienta před prvním použitím je nutné aplikaci (client) zaregistrovat u Authorization Server součástí registrace je typ aplikace (web, user-agent-based, native) seznam povolených URL s aplikací seznam požadovaných scopes client získá client_id a client_secret pro autentizaci vůči Authorization Server

OAuth 2 - schéma komunikace browser 1 2 client_id + desired scopes access_code 5 authenticate 3 4 select scopes client 6 access_code + client_secret access_token 7 Authorization Server authorization endpoint token endpoint introspection endpoint client_id client_secret access_token validity + scopes 9 10 8 API request + access_token API response 11 Resource Server API endpoint

OAuth 2 access token access token (odznak přístupu) reprezentuje autorizaci udělenou uživatelem clientovi podle RFC 6749 je opaque (neprůhledný) obvykle je ve formátu JWT (JSON Web Token) - digitálně podepsaný JSON Resource Server může buď rozparsovat token a ověřit podpis, nebo se na tzv. introspection endpoint autorizačního serveru zeptat na jeho platnost a význam, tj. seznam scopes uživatel může vydaný token zneplatnit

OAuth 2 refresh token access token má krátkou dobu platnosti (například 60 minut) pokud client potřebuje delší přístup, může požádat o refresh token s dlouhou dobou platnosti refresh token může client vyměnit voláním token endpointu autorizačního serveru za nový access token

Authorization Grant Flows OAuth 2 rozlišuje tři typy aplikací: web - na serveru, může bezpečně uchovávat client_secret user-agent-based - JavaScript, nemůže bezpečně uchovávat client_secret ani access token native - mobilní nebo desktopová, nemůže chránit client_secret, ale access token může proto existují různé způsoby získání tokenu authorization code grant - viz předchozí schéma implicit code grant - AS vydá token clientovi přímo resource owner password credentials grant client credentials grant device flow grant - pro SmartTV bez klávesnice

OAuth 2 - shrnutí OAuth 2 umožňuje aplikaci požádat uživatele o oprávnění k operacím s jeho daty uživatel po přihlášení na autorizačním serveru schválí buď všechna požadovaná, nebo jen některá oprávnění aplikace získá časově omezený access token představující povolená oprávnění jednat za uživatele voláním Resource Serveru

OpenID Connect OAuth 2 zajišťuje přihlášení, ale nedefinuje, jak získat údaje o uživateli, každá služba poskytovala jiné API OpenID Connect definuje userinfo endpoint - API pro získání údajů o uživateli scopes - openid, profile, email, address, phone claims - sub, name, family_name, given_name, middle_name, nickname, preferred_username, profile, picture, website, gender, birthdate, zoneinfo, locale, updated_at, email, email_verified, address, phone_number, phone_number_verified mapování scopes na claims id_token který může (ale nemusí) obsahovat claims metadata v JSON na /.well-known/openid-configuration

OpenID Connect - schéma browser 1 2 client_id + desired scopes access_code 5 authenticate 3 4 select scopes Relying Party (OAuth 2 client) 6 access_code + client_secret access_token 7 OAuth 2 Authorization Server authorization endpoint token endpoint introspection endpoint client_id client_secret access_token scopes 9 10 OIDC Provider 8 access_token user claims 11 OAuth 2 Resource Server userinfo endpoint

Příklad claims z userinfo { "sub": "3e65bd2aa4c818bd3579023939b546b69e1@einfra.cesnet.cz", "name": "Josef Novák", "preferred_username": "pepa", "given_name": "Josef", "family_name": "Novák", "nickname": "Pepan", "profile": "https://www.muni.cz/en/people/3988", "picture": "https://secure.gravatar.com/avatar/f320c89e39d15da1608c8fc31210b8ca", "website": "http://pepovo.wordpress.com/", "gender": "male", "zoneinfo": "Europe/Prague", "locale": "cs-cz", "updated_at": "1508428216", "birthdate": "1975-01-01", "email": "pepa@gmail.com", "email_verified": true, "phone_number": "+420 603123456", "phone_number_verified": true, "address": { "street_address": "Severní 1", "locality": "Dolní Lhota", "postal_code": "111 00", "country": "Czech Republic" } }

Příklad obsahu access tokenu { "kid": "rsa1", "alg": "RS256" } { "sub": "3e65bd2aa4c818bd3579023939b546b69e1@einfra.cesnet.cz", "azp": "7652ad4c-4ee6-4ad1-b571-3576574f383e", "iss": "https://login.cesnet.cz/oidc/", "exp": 1508431816, "iat": 1508428216, "jti": "5b4f8eb8-3688-4588-8f31-ecb78ba48a76" }

Příklad odpovědi z Introspection { } "active":true, "scope":"address phone openid profile email", "expires_at":"2017-10-19t18:50:16+0200", "exp":1508431816, "sub":"makub", "user_id":"makub", "client_id":"7652ad4c-4ee6-4ad1-b571-3576574f383e", "token_type":"bearer" specifikace na https://tools.ietf.org/html/rfc7662#section-2.2

Příklad metadat OIDC serveru

OIDC terminologie místo client používá výraz Relying Party Authorization Server + Resource Server s userinfo endpointem se nazývá OpenID Provider (OP) RP odpovídá funkcí SAML2 SP OP odpovídá funkcí SAML2 IdP

Vyzkoušené implementace OpenID Provider - MITREid Connect webová aplikace v Javě, založená na Spring Security https://github.com/mitreid-connect/openid-connect-jav a-spring-server JavaScriptový client - oidc-client-js JavaScriptová knihovna s certifikací kompatibility https://github.com/identitymodel/oidc-client-js/ autentizační modul do Apache - mod_auth_openidc dvě role - Relying Party nebo OAuth2 Resource Server https://github.com/zmartzone/mod_auth_openidc

MITREid Connect Maven webapp overlay s vlastními modifikacemi používá Hibernate pro práci s databází, podporuje PostgreSQL, MySQL, Oracle, HSQL umíme napojit na libovolný zdroj dat o uživatelích (Perun) přebírat autentizaci uživatele z Apache přidávat vlastní scopes a claims modifikovat odpověď z introspection endpointu modifikovat vydávaný access token

MITREid - profil uživatele

MITREid - schválené aplikace

MITREid - správa aplikací

OpenID Connect Děkuji za pozornost makub@cesnet.cz