![Page 1: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/1.jpg)
Technologie fördert Kommunikation
© 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019
OpenID Connect (OIDC) OAuth 2.0, JWT, JWK
Frank Hönisch
![Page 2: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/2.jpg)
© 2019 | tyclipso.net | Denis Bartelt 2
OpenID Connect, OAuth 2.0, JWT, JWK
![Page 3: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/3.jpg)
© 2019 | tyclipso.net | Denis Bartelt
Motivation für OAuth und OIDC
3
häufige Architektur
Quelle: https://www.heise.de/developer/artikel/Flexible-und-sichere-Internetdienste-mit-OAuth-2-0-2068404.html
Authentifizierung
& Autorisierung
![Page 4: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/4.jpg)
© 2019 | tyclipso.net | Denis Bartelt
Motivation für OAuth und OIDC
4
häufige Architektur
Quelle: https://www.heise.de/developer/artikel/Flexible-und-sichere-Internetdienste-mit-OAuth-2-0-2068404.html
![Page 5: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/5.jpg)
© 2019 | tyclipso.net | Denis Bartelt
Motivation für OAuth und OIDC
5
Quelle: https://www.heise.de/developer/artikel/Flexible-und-sichere-Internetdienste-mit-OAuth-2-0-2068404.html
![Page 6: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/6.jpg)
© 2019 | tyclipso.net | Denis Bartelt 6
OAuth 2.0
Open Authorization 2.0
• Autorisierungsprotokoll
• API-Autorisierung für Apps
• verwendet Access Tokens
• zur Zugriffskontrolle auf geschützte Ressourcen
• aber keine Nutzerinformationen
![Page 7: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/7.jpg)
© 2019 | tyclipso.net | Denis Bartelt 7
OAuth 2.0
Open Authorization 2.0
Liefert keine Informationen:
• Art der Authentifizierung
• Zugangsdaten
• keine Benutzerdaten !!!
![Page 8: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/8.jpg)
© 2019 | tyclipso.net | Denis Bartelt 8
Open ID Connect
OpenID Connect
• Authentifizierungsprotokoll
basierend auf OAuth 2.0
Ermöglicht Anwendungen
• Authentifizierung: Identität eines Nutzers überprüfen
• Liefert grundlegende Nutzerinformationen
![Page 9: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/9.jpg)
© 2019 | tyclipso.net | Denis Bartelt 9
Technische Basis
• HTTP Schnittstelle mit REST-Mechanismen
• Datenformat: JSON
Open ID Connect
![Page 10: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/10.jpg)
© 2019 | tyclipso.net | Denis Bartelt 10
Open ID Connect
Wie erweitert Open ID Connect OAuth 2.0?
• Open Authorization 2.0 + Identitätsschicht
• Informationen zum Benutzer
• ermöglicht Clients die Einrichtung von Anmeldesitzungen
Open Authorization 2.0 + (Identität, Authentifizierung)
= OpenID Connect
![Page 11: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/11.jpg)
© 2019 | tyclipso.net | Denis Bartelt 11
Open ID Connect
![Page 12: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/12.jpg)
© 2019 | tyclipso.net | Denis Bartelt 12
Open ID Connect
Quelle: https://www.heise.de/developer/artikel/OpenID-Connect-Login-mit-OAuth-Teil-1-Grundlagen-2218446.html?seite=all
![Page 13: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/13.jpg)
© 2019 | tyclipso.net | Denis Bartelt 13
Open ID Connect
Authorization Code Flow
Quelle: https://backstage.forgerock.com/docs/am/5/oidc1-guide/
![Page 14: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/14.jpg)
© 2019 | tyclipso.net | Denis Bartelt 14
Open ID Connect
ID Token = JSON Web Token (JWT)
Aufbau: Header, Payload, Signatur
Codierung
jwt = base64UrlEncode(header) + "." +
base64UrlEncode(payload) + "." + base64UrlEncode(hash)
![Page 15: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/15.jpg)
© 2019 | tyclipso.net | Denis Bartelt 15
Open ID Connect
ID Token = JSON Web Token (JWT)
![Page 16: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/16.jpg)
© 2019 | tyclipso.net | Denis Bartelt 16
Open ID Connect
ID Token = JSON Web Token (JWT)
Signatur
var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload);
var hash = RS256(encodedString, secret);
![Page 17: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/17.jpg)
© 2019 | tyclipso.net | Denis Bartelt 17
Open ID Connect
OIDC Discovery
Metadaten des OpenID-Servers
https://server.com/.well-known/openid-configuration
![Page 18: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/18.jpg)
© 2019 | tyclipso.net | Denis Bartelt 18
Open ID Connect
OIDC Discovery: Signaturprüfung mit JWK
![Page 19: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/19.jpg)
© 2019 | tyclipso.net | Denis Bartelt 19
Open ID Connect
PHP Implementierungen
OpenID Connect-Client https://bitbucket.org/PEOFIAMP/phpoidc https://github.com/jumbojett/OpenID-Connect-PHP
OAuth-Client
http://oauth2-client.thephpleague.com/
JWT https://github.com/fproject/php-jwt erweitert https://github.com/firebase/php-jwt
![Page 20: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/20.jpg)
© 2019 | tyclipso.net | Denis Bartelt 20
Open ID Connect
Referenzen / Artikel
OpenID Connect
• https://openid.net/connect/
• https://www.heise.de/developer/artikel/OpenID-Connect-Login-
mit-OAuth-Teil-1-Grundlagen-2218446.html
• https://www.heise.de/developer/artikel/OpenID-Connect-Login-
mit-OAuth-Teil-2-Identity-Federation-und-fortgeschrittene-
Themen-2266017.html
OAuth
• https://www.heise.de/developer/artikel/Flexible-und-sichere-
Internetdienste-mit-OAuth-2-0-2068404.html
![Page 21: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/21.jpg)
© 2019 | tyclipso.net | Denis Bartelt 21
Open ID Connect
Tools
OpenID Connect
• OpenID Connect Playground: https://openidconnect.net/
• OpenID Connect <debugger/>: https://oidcdebugger.com/
OAuth
• OAuth 2.0 <debugger/> : https://oauthdebugger.com/
JWT
• Online JWT decoder / generator: https://jwt.io
![Page 22: OpenID Connect (OIDC) - phpug-dresden.org · Technologie fördert Kommunikation © 2019 | tyclipso.net | Denis Bartelt 26. Februar 2019 OpenID Connect (OIDC) OAuth 2.0, JWT, JWK Frank](https://reader030.vdocument.in/reader030/viewer/2022041209/5d67829c88c9931a568b9046/html5/thumbnails/22.jpg)
© 2019 | tyclipso.net | Denis Bartelt Motiviert, effizient, dynamisch und erfolgreich.
Grundstraße 1
01326 Dresden
+49 351 3122303
Vielen Dank für eure Zeit!