Single-Sign-On mit Java und Kerberos. Michael Wiesner, SOFTCON IT-Service GmbH



Ähnliche Dokumente
Mike Wiesner Mike Wiesner 1

Single Sign-On mit Kerberos V5

Windows Integration. von Tino Truppel

Das Kerberos-Protokoll

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

Frankfurt,

Authentifizierung. Benutzerverwaltung mit Kerberos. Referent: Jochen Merhof

How-to: HTTP Proxy mit Radius Authentifizierung an einem Windows 2003 Server. Securepoint Security System Version 2007nx

Nachnutzung des Windows Login in einer SAML-basierten. Föderation mittels Shibboleth Kerberos Login Handler

Konzepte von Betriebssystem-Komponenten Schwerpunkt Authentifizierung. Das Kerberos-Protokoll

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Einführung SSO bei Hero. Marc Wagener, Hero / Carsten Olt, SECUDE June 12, 2013

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Kerberos: Prinzip und Umsetzung. Sascha Klopp

Kerberos. Kerberos. Folien unter. 1 Stefan Schnieber

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Radius Server. Bericht im Studiengang Computerengineering an der HS-Furtwangen. Student: Alphonse Nana Hoessi Martikelnr.:227106

Modul 8 Kerberos. Prof. Dr. Martin Leischner Netzwerksysteme und TK. Fachhochschule Bonn-Rhein-Sieg

IEEE 802.1x Authentifizierung. IEEE 802.1x Authentifizierung IACBOX.COM. Version Deutsch

Collax PPTP-VPN. Howto

Modul 8 Kerberos. Fachhochschule Bonn-Rhein-Sieg. Prof. Dr. Martin Leischner Fachbereich Informatik

Cnlab / CSI 2013 Social Business endlich produktiv! Demo. Identity Federation in der Praxis

iphone 4 - Einrichtung des VPN Clients (Cisco VPN Client) / Verbinden des iphones mit einem Exchange

Anlegen eines virtuellen http Server unter Exchange 2003 mittels HOSTNAME

Diese Anleitung erläutert die Einrichtung des Active Directory Modus im DNS-343.

Veröffentlichung und Absicherung von SharePoint Extranets

Kerberos. Markus Schade

How to: VPN mit L2TP und dem Windows VPN-Client Version 2007nx Release 3

Single Sign On mit Forms direkt gegen ein Active Directory

SSH-Authentifizierung über eine ADS mittels Kerberos 5. Roland Mohl 19. Juli 2007

Identity & Access Management in der Cloud

B E N U T Z E R D O K U M E N TA T I O N ( A L E P H I N O

Kerberos - Alptraum oder Zusammenspiel?

Authentication Policy. Konfigurationsbeispiel ZyXEL ZyWALL USG-Serie. Juni 2010 / HAL

ISA Server Exchange RPC over HTTPS mit NTLM-Authentifizierung

Powermanager Server- Client- Installation

OP-LOG

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

Kerberos Geheimnisse in der Oracle Datenbank Welt

1. Zugriff auf das Lonza Netzwerk von ihrem privaten PC oder von einem Internet Café

estos UCServer Multiline TAPI Driver

START - SYSTEMSTEUERUNG - SYSTEM - REMOTE

Browser mit SSL und Java, welcher auf praktisch jedem Rechner ebenso wie auf vielen mobilen Geräten bereits vorhanden ist

How-to: VPN mit PPTP und dem Windows VPN-Client. Securepoint Security System Version 2007nx

Clientless SSL VPN (WebVPN)

INSTALLATIONSANLEITUNG der Version 2.1 (Jänner 2014)

B E N U T Z E R D O K U M E N TA T I O N ( A L E P H I N O

Installationsbeschreibung Flottenmanager 7.1

Identity Propagation in Fusion Middleware

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

Step by Step VPN unter Windows Server von Christian Bartl

Die Installation eines MS SQL Server 2000 mit SP3a wird in diesem Artikel nicht beschrieben und vorausgesetzt.

Aufgabenstellung. Kunden sollen in Zukunft Onlinezugriff auf die Feri-Datenbank erhalten. über eine direkte Einwahlmöglichkeit über das Internet

1 Konfigurationsanleitung Hosted Exchange

Stecken Sie Ihren USB Stick oder Ihre externe USB Festplatte in den USB Steckplatz des Sinus 154 DSL SE.

Anbindung des eibport an das Internet

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

HOSTED EXCHANGE 2013 IN OUTLOOK EINRICHTE N

Single Sign-On Step 1

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Kerberos - Single Sign On ganz einfach

2 Konfiguration von SharePoint

SSH Authentifizierung über Public Key

DIRECTINFO 5.7 SICHERHEITSKONZEPTE FÜR BENUTZER, INFORMATIONEN UND FUNKTIONEN

Externe Authentifizierung. Externe Authentifizierung IACBOX.COM. Version Deutsch

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Benutzerkonto unter Windows 2000

quickterm Systemvoraussetzungen Version: 1.0

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Intrexx unter Windows Server 2008

Horstbox VoIP. Stefan Dahler. 1. HorstBox Konfiguration. 1.1 Einleitung

Umstieg auf Microsoft Exchange in der Fakultät 02

Einrichtung von VPN-Verbindungen unter Windows NT


Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)

we run IT! ArGO Mail Inhaltsverzeichnis Services zurzeit in ArGO Mail aktiv: Mail

SSO mit Forms direkt gegen ein Active Directory. Wolf G. Beckmann TEAM GmbH Paderborn

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

Infinigate (Schweiz) AG. Secure Guest Access. - Handout -

<Insert Picture Here> Kerberos Geheimnisse in der Oracle Datenbank Welt

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

1 Office 365 an der HTL Wien 10: Einstellungen 2 Inhalt:

Aufbau eines virtuellen privaten Netzes mit Peer-to-Peer-Technologie

Dokumentation für Windows

Single Sign-on im SAP environment. SAGA Arbeitsgruppe SAP Basis Linz, Günther Berger

Modul 8 Kerberos. Prof. Dr. Martin Leischner Netzwerksysteme und TK. Hochschule Bonn-Rhein-Sieg

Weitere Infos findet man auch in einem Artikel von Frank Geisler und mir im Sharepoint Magazin (Ausgabe Januar 2011)

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Dieser Artikel beschreibt die Veröffentlichung eines Microsoft SQL Server 2000 über einen ISA Server 2004.

BusinessMail X.400 Webinterface Gruppenadministrator V2.6

Anleitungen zur Konfiguration verschiedener Mailclients und Informationen zu der -Infrastruktur von Hostpoint.

Installation der SAS Foundation Software auf Windows

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003


Verwendung des Terminalservers der MUG

Thema: Web Services. Was ist ein Web Service?

Apache HTTP-Server Teil 2

Transkript:

Single-Sign-On mit Java und Kerberos Michael Wiesner, SOFTCON IT-Service GmbH

Über mich Softwareentwickler und Sicherheitsexperte bei der Firma SOFTCON Projekte: Enterprise Software, Webportale, Sicherheitslösungen,... Trainings und Vorträge über Security michael.wiesner@softcon.de 2

Agenda Single Sign-On Kerberos Grundlagen Kerberos und Java Beispiele Ausblick 3

Single Sign-On Was bedeutet Single Sign-On? Wieso brauchen wir das? Lösungsansätze Kerberos Grundlagen Kerberos und Java Beispiele Ausblick 4

Identitätsmanagement Begriffe Authentifizierung (Authentication) Identitätsfeststellung z.b. Personalausweis, Pass,... Autorisierung (Authorization) Zuweisung von Rechten z.b. Mitgliedsausweis, Access Control Lists 5

Was bedeutet Single Sign-On? Benutzerauthentifizierung nur einmal Anschließend Zugriff auf (alle) Systeme Führt i.d.r. keine Autorisierung durch Eine Stufe darunter: Single Credential Ein Benutzername/Kennwort für alle Systeme 6

Wieso brauchen wir das? Produktivitätssteigerung Arbeitsfluss wird nicht gestört Einfachere Administration Erhöhte Sicherheit, denn ohne SSO... wird oft das gleiche Kennwort benutzt wird das Kennwort auf mehreren Systemen gespeichert geht das Kennwort mehrmals über das Netzwerk 7

Nachteile Wieso brauchen wir das? Bei einer Kompromittierung erhält der Angreifer Vollzugriff. Die Anwendung ist an das SSO-System gebunden und läuft nicht standalone 8

Lokale Lösungen Lösungsansätze Benutzername/Kennwort wird lokal gespeichert (z.b. durch Browser, Outlook,...) Portale Einloggen bei einem zentralen Portal Portal steuert weitere Zugriffe 9

Ticket Systeme Lösungsansätze Zentraler Authentifizierungsserver Ticket mit Identitätsnachweis wird bei der ersten Anmeldung erstellt Authentifizierung anschließend über dieses Ticket 10

Single Sign-On Kerberos Grundlagen Was ist Kerberos? Funktionsweise Vor-/Nachteile Kerberos und Java Beispiele Ausblick 11

Kerberos... Was ist Kerberos?... ist ein verteilter Authentifizierungsdienst.... ist konzipiert für offene und unsichere Netze.... ermöglicht Single Sign-On.... ist Plattform- und Systemunabhängig.... verwendet symmetrische Verschlüsselung.... ist in RFC 1510 beschrieben. 12

Principals & Realms Kerberos Principals bestehen aus: component[/component]...@realm z.b.: mike@secpod.de Der Realm gibt die Authentifizierungs-Domäne an. Component kann aber auch einen Service sein: z.b.: java/server.secpod.de@secpod.de 13

KDC KDC = Key Distribution Center Besteht aus: Principal Database (z.b. Active Directory) Speichert Principals und Keys Authentication Server (AS) Erstellt das Ticket Granting Ticket (TGT) Ticket Granting Server (TGS) Erstellt Service Tickets für ein TGT 14

Authentication Server Client Client Principal Client timestamp krbgt principal name Requested lifetime TGT AS session key krbtgt principal name Ticket lifetime AS session key Client principal Ticket lifetime KDC timestamp Client IP address User's key TGS key Authentication Server 15

Ticket Granting Server Client TGT Authenticator Service principal AS session key Client principal Ticket lifetime KDC timestamp Client IP address Client principal Client timestamp TGS key AS Session key Requested lifetime TGS 16

Ticket Granting Server TGS session key Service principal name Ticket lifetime AS Session key Client Service Ticket TGS session key Client principal Ticket lifetime KDC timestamp Client IP address Service key TG S 17

Service Service Specific Information TGS session key Client principal Ticket lifetime KDC timestamp Client IP address Client Service Ticket Service key Client principal Client timestamp Service Authenticator TGS Session key 18

weitere Protokolle Generic Security Services API (GSSAPI): generisches Interface zur Unterstützung von strong Authentication, wie z.b. Kerberos Security Support Provider Interface (SSPI): Microsoft Pendant zu GSSAPI Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO): Übermittlung eines Kerberos-Tickets zwischen Browser und Webserver 19

Vorteile von Kerberos Sichere, gegenseitige Authentifizierung aller Beteiligten Geringe Belastung des KDCs Autorisierung wird dem Service überlassen Plattform- und Systemunabhängig 20

Nachteile von Kerberos Keys müssen zu den Services verteilt werden Uhrzeiten müssen synchronisiert sein nicht ohne weiteres mit Firewalls einsetzbar (NAT) mangelnde Unterstützung bei den Clients (derzeit) verschiedene APIs bei Unix und Windows 21

Agenda Single Sign-On Kerberos Grundlagen Kerberos und Java JAAS Java GSS-API Beispiele Ausblick 22

JAAS JAAS = Java Authentication and Authorization Service Java Standard API zur Authentifizierung und Autorisierung (seit JDK1.4) Konfiguration und Providerauswahl über eine Konfigurationsdatei Enthält diverse Login-Module (JNDI, Keystore, Kerberos,...), ist aber erweiterbar. 23

JAAS und Kerberos Einfachste Möglichkeit Kerberos zu benutzen Ermöglicht Single-Sign-On auf dem Client (TGT holen/prüfen) Anwendungscode ist frei von Kerberos/GSSAPI Native Ticket-Caches können ausgelesen werden Kann kein Service Ticket holen und delegieren Konfiguration über Umgebungsvariablen und Konfigurationsdateien 24

Java GSS-API Java Binding zu GSSAPI (RFC 2853) Ermöglicht Zugriff auf Authentifizierungssysteme (z.b. Kerberos) Aufwendiger als reines JAAS Benutzt intern das JAAS Kerberos Login Module Konfiguration über Umgebungsvariablen und optional JAAS-Konfigurationsdateien Kann TGT und Service Ticket holen und delegieren 25

Single Sign-On Kerberos Grundlagen Kerberos und Java Beispiele JAAS Login Client/Server-AW mit Java GSS-API Pitfalls Ausblick 26

JAAS Login winxp.secpod.de (Windows XP) winkdc.secpod.de (Windows 2003 Server) 27

Aufruf: JAAS Login lc = new LoginContext("SampleClient", new TextCallbackHandler()); lc.login(); Konfigurationsdatei (jax.conf): SampleClient { com.sun.security.auth.module.krb5loginmodule required useticketcache=true; }; 28

VM-Parameter: JAAS Login -Djava.security.krb5.realm=SECPOD.DE -Djava.security.krb5.kdc=winkdc.secpod.de -Djava.security.auth.login.config=jax.conf Benutzername: lc.getsubject().getprincipals() 29

Client/Server-AW mit GSS-API winxp.secpod.de (Windows XP) winkdc.secpod.de (Windows 2003 Server) server.secpod.de (Java TCP/IP) 30

Client/Server-AW mit GSS-API Service-Principle im KDC anlegen: Benutzer java/server.secpod.de im Active Directory anlegen Key(s) aus dem Active Directory exportieren: ktpass -out java.keytab -princ java/server.secpod.de@secpod.de -pass * -mapuser java/server.secpod.de Keytab auf den Server kopieren 31

Client mit GSS-API String server = java/server.secpod.de GSSManager manager = GSSManager.getInstance(); GSSName servername = manager.createname(server, null); GSSContext context = manager.createcontext( servername, "1.2.840.113554.1.2.2", null, GSSContext.DEFAULT_LIFETIME); context.requestmutualauth(true); context.requestconf(true); context.requestinteg(true); 32

Client mit GSS-API byte[] token = new byte[0]; while (!context.isestablished()) { token = context.initseccontext(token, 0, token.length); if (token!= null) { // token zum Server schicken } if (!context.isestablished()) { // token vom Server abholen } } 33

Client mit GSS-API Konfigurationsdatei (jax_c.conf): com.sun.security.jgss.initiate { com.sun.security.auth.module.krb5loginmodule required useticketcache=true;}; VM-Paramter: -Djava.security.krb5.realm=SECPOD.DE -Djava.security.krb5.kdc=winkdc.secpod.de -Djava.security.auth.login.config=jax_c.conf -Djavax.security.auth.useSubjectCredsOnly=false 34

Benutzername: Client mit GSS-API context.getsrcname() Servername (Rückantwort): context.gettargname() Ver-/Entschlüsselung: context.wrap() / context.unwrap() 35

Server mit GSS-API GSSManager manager = GSSManager.getInstance(); GSSContext context = manager.createcontext((gsscredential) null); while (!context.isestablished()) { // token vom Client lesen token = context.acceptseccontext(token, 0, token.length); if (token!= null) { //token zum Client schicken } } 36

Server mit GSS-API Konfigurationsdatei (jax_s.conf): com.sun.security.jgss.accept { com.sun.security.auth.module.krb5loginmodule required usekeytab=true keytab=java.keytab storekey=true principal="java/winkdc.secpod.de" donotprompt=true; }; 37

Pitfalls Neuere Windowsversionen verhindern das auslesen des Session-Keys aus dem Ticketcache Registry-Eintrag anpassen Sun unterstützt derzeit nicht die RC4- Verschlüsselung. DES beim KDC einstellen Mehr Informationen dazu unter: http://java.sun.com/j2se/1.5.0/docs/guide/security /jgss/tutorials/troubleshooting.html 38

Agenda Single Sign-On Kerberos Grundlagen Kerberos und Java Beispiele Ausblick 39

Java 6 Native platform GSS/Kerberos integration SPNEGO HTTP authentication 40

Buchempfehlung Kerberos The Definitive Guide Jason Garmen ISBN: 0596004036 41