Plug & Play Benutzerverwaltung mit JBoss Keycloak



Ähnliche Dokumente
Die Cloud im Griff mit Consul

OAuth 2.0. Ralf Hoffmann 03 /

1. Angular-User Group Meetup, Nürnberg. Authentifizierung mit Angular JS und Microservices

Build- und Delivery-Pipelines als Code mit Jenkins

Zwei-Faktor-Authentifizierung

Single Sign-On Step 1

Identity & Access Management in Extranet Portal Projekten

Persistenz unter Kontrolle mit JDBI für Java

AZURE ACTIVE DIRECTORY

Authentication as a Service (AaaS)

Single Sign On mit Active Directory

Humboldt-Universität zu Berlin Wintersemester 2012/2013. OpenID

Dr. Johannes C. Schneider Zentrale Authentifizierung mit OAuth2 in einem technologisch heterogenen App-Ökosystem Über mich

REST-Services mit Dropwizard ruck-zuck erstellt, dokumentiert und getestet

Social Login mit Facebook, Google und Co.

Group Retail Portal Training

VAADIN, SPRING BOOT & REST

Best Practices - WatchGuard AuthPoint - Active Directory / LDAP Integration

FreeIPA. Eine Einführung. Robert M. Albrecht. Presented by. Fedora Ambassador CC-BY-SA. Freitag, 20. Juli 12

!"#$"%&'()*$+()',!-+.'/',

WebLogic goes Security!

Überblick über die Windows Azure Platform

Inhalt. Einführung RFC-Funktionsbausteine in ABAP Funktionsbausteine zum Lesen Aufruf per srfc 108

Group Retail Portal Training

Authentifizierung und Autorisierung in Kubernetes

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

NCP Secure Enterprise Management (für Windows-Betriebssysteme) Neue Features Version 1.03 bis 2.04

I-Portal Training. Dezember 2016

Best Practices WatchGuard Accessportal - Grundlagen und Konfiguration

Entwicklung einer REST-API zur Erstellung und Konfiguration von Microsoft Teams. Jan Kruse, utilitas GmbH

Identity and Access Management. Die Eingangstür in sichere digitale Geschäftsprozesse

Roadtrip Plugin. Dokumentation

Provider-hosted Add-Ins mit Azure. Carsten Büttemeier

ORACLE CLOUD VERLEIHT ADF ANWENDUNGEN FLÜGEL. Andreas Koop CEO & Consultant Oracle Technologies

SAML2 und OAuth in der Cloud

Windows Azure für Java Architekten. Holger Sirtl Microsoft Deutschland GmbH

Die Cargo Plattform bietet einen sicheren und einfachen Datentransfer mit einem modernen Web- Interface.

API-Gateway bringt Ordnung in Microservices-Wildwuchs. Frank Pientka, Dortmund

Benutzerdokumentation 2-Faktor-Authentisierung

Digicomp Microsoft Evolution Day ADFS Oliver Ryf. Partner:

Oracle Real Application Security (RAS) in APEX5

Dies ist ein Titel für die Präsentation

RESTful API Grundlagen mit PHP und Payrexx

Rich-Internet-Applications mit jquery und dem APEX-Listener. Klaus Friemelt MT AG, Ratingen

TÜV Rheinland. Ihr Partner für Informationssicherheit.

Agenda. Einführung. Trainingsdokumente Endnutzer. Trainingsdokumente Administrator III. Registrierung. Anmeldung. Startseite.

PDF-AS 4.0 Hands-On Workshop

go:identity Identity Management Lösung als IDM-Appliance ITConcepts Professional GmbH Marcus Westen

Hacker-Tool Browser von der Webanwendung zu den Kronjuwelen

HOBLink Mobile und HOBCOM Universal Server

Linux-Camp: Linux als Server am Beispiel LAMP

Frankfurt,

Mail: Web: juergen-schuster-it.de

Relution. Files App. Version

Office 365 User Integration

Schnittstellenspezifikation: ZEUS-Upload per Clientsoftware

ILIAS SINGLE-SIGN-ON MIT APACHE UND KERBEROS

IRRISS THE ENTERPRISE

WebLogic goes Security

In diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann.

Wegweiser durch die TU Berlin Verzeichnisse (Update)

!"#$"%&'()*$+()',!-+.'/',

4. RADAR-WORKSHOP RADAR APPLICATION PROGRAMMING INTERFACE KARLSRUHE, 25./26. JUNI Matthias Razum, FIZ Karlsruhe

Zentrale Datenbank-Nutzerverwaltung

Microsoft Azure für Java Entwickler

APEX und Workflows: Spaghetticode oder Integration. Sven Böttcher. Consultant, Apps Associates GmbH

NCP Exclusive Remote Access Client (ios) Release Notes

Topal Payroll braucht mindestens SQL Server (Express) Version 2014

i-net HelpDesk Erste Schritte

1. Allgemein. Verschlüsselte für IPhone IOS Geräte Schritt für Schritt Anleitung

SMARTentry Notification

WERDEGANG BENJAMIN STELLJES FULL STACK WEB DEVELOPER

1. Integration von Liferay & Alfresco 2. Single Sign On mit CAS

Herzlich Willkommen zum Webinar!

2. Bereits registrierte Geräte in Afaria

WALL&KOLLEGEN RECHTSANWÄLTE AVVOCATI BARRISTER-AT-LAW MÜNCHEN INNSBRUCK BOZEN

Office 365 User Integration

IDL.KONSIS.FORECAST Start der Anwendung :18

BIT IT Cloudio. Konfigurationsanleitung

Whitepaper. ginlo & Sicherheit

1. Allgemein. Verschlüsselte für Android Smartphone Schritt für Schritt Anleitung

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

(c) 2014, Peter Sturm, Universität Trier

Demo: Sicherheitsmechanismen von Collaboration- und Community-Diensten

TRIAS-AMOS Handbuch Band 3 Benutzerverwaltung Seite: 1

APEX OOS TOOLS & HELFER

Sicherung der Kommunikation zwischen OAM und WebGate

Inhalt. TEIL I Grundlagen TEIL II Single-Sign-on für Benutzerschnittstellen. Vorwort 13 Einleitung 15

APEX Datenverwaltung Wo sind die Daten gerade?

OPTIGEM.Web. Technische Hinweise Version 18

Authentication im Web

Thomas Claudius Huber Trivadis Services AG. Daten aus Office 365 in die eigene App integrieren

Veröffentlichung und Absicherung von SharePoint Extranets

Stefan Zörner. Portlets. Portalkomponenten in Java. ntwickier

Transkript:

.consulting.solutions.partnership Plug & Play Benutzerverwaltung mit JBoss Keycloak Alexander Schwartz, Principal IT Consultant Entwicklertag Frankfurt, 10.03.2016

Plug & Play Benutzerverwaltung mit JBoss Keycloak 1 2 3 4 5 6 7 8 Die Killerapplikation Vorstellung von JBoss Keycloak Absicherung einer JEE Webanwendung Integration externer Authentifizierungsquellen Absicherung einer JavaScript Single Page Application Absicherung von REST Services Ausblick Secure all the things! msg März 2016 JBoss Keycloak Alexander Schwartz 2

Mein Sponsor und Arbeitgeber msg systems ag 1980 gegründet in 13 Städten in Deutschland präsent 23 Länder mehr als 5.000 Kollegen 653 Mio Umsatz 2014 msg März 2016 JBoss Keycloak Alexander Schwartz 3

Wer ich bin Alexander Schwartz 443 gefundene Geocaches 2 Kinder 12 Jahre Java 1 Frau 7 Jahre PL/SQL 3,5 Jahre Direktbank 7 Jahre Absatzfinanzierung @ahus1de msg März 2016 JBoss Keycloak Alexander Schwartz 4

Plug & Play Benutzerverwaltung mit JBoss Keycloak 1 2 3 4 5 6 7 8 Die Killerapplikation Vorstellung von JBoss Keycloak Absicherung einer JEE Webanwendung Integration externer Authentifizierungsquellen Absicherung einer JavaScript Single Page Application Absicherung von REST Services Ausblick Secure all the things! msg März 2016 JBoss Keycloak Alexander Schwartz 5

Die Killerapplikation Mit meiner Lotto-Nummern-Vorhersage mache ich ein Vermögen! 1. CC0 / https://pixabay.com/de/lotto-lottoschein-schein-gewinn-484782/ CC0 / https://pixabay.com/de/geldschwemme-500-euro-euro-stapel-432688/ msg März 2016 JBoss Keycloak Alexander Schwartz 6

Killerapplikation Aber: Je mehr Leute zugreifen, desto geringer ist mein Losgewinn! Absicherung ist notwendig: Anmeldeseite Datenbank für Benutzernamen und Passwörter Verschlüsselte Speicherung von Passwörtern Zurücksetzen von Passwörtern Ändern von Passwörtern 1. CC BY-SA 3.0 "Work life balance rat race" by KVDP, Shokunin, Aungkarns https://commons.wikimedia.org/wiki/file:work_life_balance_rat_race.png msg März 2016 JBoss Keycloak Alexander Schwartz 7

Killerapplikation Benutzerverwaltungen haben doch auch schon andere gebaut? Es gibt Best Practices für Benutzerverwaltungen: Open Web Application Security Project (OWASP) hält Cheat Sheets zur Implementierung bereit (Anmeldung, Passwort ändern, Passwort zurücksetzen) Fertige Benutzerverwaltungen als Framework oder Teil der Anwendung (z. B. Apache Shiro, integriert in z. B. in Grails) Fertige Benutzerverwaltungen, die über eine Schnittstelle eingebunden werden (z. B. JBoss Keycloak) Links: https://www.owasp.org/index.php/authentication_cheat_sheet http://shiro.apache.org/ http://keycloak.jboss.org/ msg März 2016 JBoss Keycloak Alexander Schwartz 8

Plug & Play Benutzerverwaltung mit JBoss Keycloak 1 2 3 4 5 6 7 8 Die Killerapplikation Vorstellung von JBoss Keycloak Absicherung einer JEE Webanwendung Integration externer Authentifizierungsquellen Absicherung einer JavaScript Single Page Application Absicherung von REST Services Ausblick Secure all the things! msg März 2016 JBoss Keycloak Alexander Schwartz 9

Vorstellung JBoss Keycloak JBoss Keycloak ist eine Benutzerverwaltung als Service Single Sign On und Single Sign Out für Browser-Anwendungen Benutzer- und Rollenverwaltung Account-Management und Admin-GUI Grafische Anpassung des Account Managements über Themes Optionale Integration von LDAP/Active Directory und Social Login Event-Listener für alle Aktionen September 2014: Version 1.0 November 2015: Version 1.6 Link: http://keycloak.org/ msg März 2016 JBoss Keycloak Alexander Schwartz 10

Vorstellung JBoss Keycloak JBoss Keycloak läuft neben der Anwendung Keycloak Login: Passwort: 3. 2. Lotto Datum: Zahlen: $?! 1. Aufruf der Anwendung 2. Weiterleitung zu Keycloak zur Anmeldung 3. Rückleitung zur Anwendung 4. Eingabe des Datums und Berechnen der Zahlen (Pfeile zeigen die Navigation des Browsers) 1. 4. msg März 2016 JBoss Keycloak Alexander Schwartz 11

Vorstellung JBoss Keycloak OAuth 2.0 für Single-Sign-On, OpenID Connect als Erweiterung Lotto Keycloak Anfrage (nicht angemeldet) Redirect zu Keycloak (mit Client-Informationen) Anfrage (nicht angemeldet) Anmeldemaske Anmeldung Redirect ausführen Redirect zum Client (mit Authentication Code) Authentication Code, Client-ID & Secret Antwort Antwort mit Access Token Refresh Token und und ID Token msg März 2016 JBoss Keycloak Alexander Schwartz 12

Vorstellung JBoss Keycloak Access Token als JSON Web Token Access Token (+/- 1500 Bytes): ey###j9.ey####n0.pd###ua Inhalt: { "alg": "RS256" } { "jti": "cd2461###e695c", "exp": 1436725029, "allowed-origins": [], "realm_access": { "roles": [ "create-realm", "admin" ] }, "resource_access": { my-realm": { "roles": [ "view-realm", "manage-events", "manage-realm", "view-events", "manage-users", "view-users", "view-clients", "manage-clients",... ] }, }, } "name": "Administrator", "preferred_username": "admin" RSASHA256( base64urlencode(header) + "." + base64urlencode(payload), "-----BEGIN RSA PRIVATE KEY----- MII###Yw== -----END RSA PRIVATE KEY-----" ) Link: http://jwt.io/ msg März 2016 JBoss Keycloak Alexander Schwartz 13

Plug & Play Benutzerverwaltung mit JBoss Keycloak 1 2 3 4 5 6 7 8 Die Killerapplikation Vorstellung von JBoss Keycloak Absicherung einer JEE Webanwendung Integration externer Authentifizierungsquellen Absicherung einer JavaScript Single Page Application Absicherung von REST Services Ausblick Secure all the things! msg März 2016 JBoss Keycloak Alexander Schwartz 14

Absicherung einer JEE Webanwendung Keycloak einrichten Keycloak Login: Passwort: Lotto Datum: Zahlen: $?! Demo Time Realm anlegen oder bestehenden Realm benutzen Anwendung registrieren Keycloak-Bibliothek einbinden Keycloak Konfigurationsdatei einbinden web.xml Konfiguration anpassen msg März 2016 JBoss Keycloak Alexander Schwartz 15

Absicherung einer JEE Webanwendung Funktionen der Benutzerverwaltung Über Konfiguration können folgende Funktionen aktiviert werden: Verwaltung von Nutzern und Rollen Passwort-Policy Zurücksetzen des Passworts für Administratoren Zurücksetzen des Passworts durch Nutzer Passwort vergessen msg März 2016 JBoss Keycloak Alexander Schwartz 16

Plug & Play Benutzerverwaltung mit JBoss Keycloak 1 2 3 4 5 6 7 8 Die Killerapplikation Vorstellung von JBoss Keycloak Absicherung einer JEE Webanwendung Integration externer Authentifizierungsquellen Absicherung einer JavaScript Single Page Application Absicherung von REST Services Ausblick Secure all the things! msg März 2016 JBoss Keycloak Alexander Schwartz 17

Integration externer Authentifizierungsquellen Funktionen der Benutzerverwaltung Über Konfiguration können folgende Funktionen aktiviert werden: One Time Passwords (OTPs) Social Login via Facebook, Twitter, etc. Integration mit LDAP... und viele mehr Demo Time msg März 2016 JBoss Keycloak Alexander Schwartz 18

Plug & Play Benutzerverwaltung mit JBoss Keycloak 1 2 3 4 5 6 7 8 Die Killerapplikation Vorstellung von JBoss Keycloak Absicherung einer JEE Webanwendung Integration externer Authentifizierungsquellen Absicherung einer JavaScript Single Page Application Absicherung von REST Services Ausblick Secure all the things! msg März 2016 JBoss Keycloak Alexander Schwartz 19

Absicherung einer JavaScript Single Page Application Registrierung der Single Page Application als separate Anwendung Keycloak Login: Passwort: Lotto SPA Datum: Zahlen: $?! Demo Time Anwendung registrieren mit Access Type public JavaScript-Bibliothek einbinden Bei asynchronen Aufrufen Token mitschicken msg März 2016 JBoss Keycloak Alexander Schwartz 20

Plug & Play Benutzerverwaltung mit JBoss Keycloak 1 2 3 4 5 6 7 8 Die Killerapplikation Vorstellung von JBoss Keycloak Absicherung einer JEE Webanwendung Integration externer Authentifizierungsquellen Absicherung einer JavaScript Single Page Application Absicherung von REST Services Ausblick Secure all the things! msg März 2016 JBoss Keycloak Alexander Schwartz 21

Absicherung von REST Services Bearer Tokens werden bei jedem Aufruf mitgeschickt Lotto SPA Datum: Zahlen: $?! REST Aufruf mit Bearer Token Lotto REST Server Schickt Bearer-Token bei jedem Aufruf mit Server ist stateless, da alle Informationen im Token in signierter Form vorhanden sind msg März 2016 JBoss Keycloak Alexander Schwartz 22

Absicherung von REST Services Ablauf Bearer Token Lotto SPA Keycloak Lotto REST Anfrage (nicht angemeldet) Redirect zu Keycloak (mit Client-Informationen) Anfrage (nicht angemeldet) Demo Time Redirect ausführen Antwort Anmeldemaske Anmeldung Redirect zum Client (mit Access, Refresh und ID Token) Asynchroner JavaScript-Aufruf (mit Bearer-Token) msg März 2016 JBoss Keycloak Alexander Schwartz 23

Plug & Play Benutzerverwaltung mit JBoss Keycloak 1 2 3 4 5 6 7 8 Die Killerapplikation Vorstellung von JBoss Keycloak Absicherung einer JEE Webanwendung Integration externer Authentifizierungsquellen Absicherung einer JavaScript Single Page Application Absicherung von REST Services Ausblick Secure all the things! msg März 2016 JBoss Keycloak Alexander Schwartz 24

Ausblick Sicherheitsmaßnahmen im Hintergrund Aktualisierung von Tokens bei Bedarf Rückruf von bereits ausgegebenen Token über not valid before Single-Sign-Out (Serverseitig über Aufruf des Backends von Keycloak aus, beim Single Page Application Frontend über iframe) Erkennung von Brute-Force-Attacken auf dem Keycloak-Server msg März 2016 JBoss Keycloak Alexander Schwartz 25

Plug & Play Benutzerverwaltung mit JBoss Keycloak 1 2 3 4 5 6 7 8 Die Killerapplikation Vorstellung von JBoss Keycloak Absicherung einer JEE Webanwendung Integration externer Authentifizierungsquellen Absicherung einer JavaScript Single Page Application Absicherung von REST Services Ausblick Secure all the things! msg März 2016 JBoss Keycloak Alexander Schwartz 26

Fazit Secure all the things! Keycloak bietet alle Funktionen einer Benutzerverwaltung Schnittstelle zur Anwendung ist über OAuth 2.0 und Open ID Connect standardisiert Verschiedene Integrationen sind vorhanden, eigene Integrationen sind möglich Funktionalität der Benutzerverwaltung wird unabhängig von der Anwendung konfiguriert Einsatz von Keycloak lohnt sich bereits bei einer Anwendung Designziel von Keycloak ist, dass es einfach einzusetzen ist http://keycloak.org/ ahus1/keycloak-dropwizard-integration @ahus1de msg März 2016 JBoss Keycloak Alexander Schwartz 27

Alexander Schwartz Principal IT Consultant +49 171 5625767 alexander.schwartz@msg-systems.com @ahus1de msg systems ag Mergenthalerallee 73-75 65760 Eschborn Deutschland www.msg-systems.com.consulting.solutions.partnership