JNDI und JAAS am Beispiel des Moduls directoryservices. Adapter für Authentifizierungs- und Verzeichnisdienste der Fiducia

Ähnliche Dokumente
Server-Management mit JMX

Active Directory. Aufbau Funktion - Objekte

External Directory Service zum Authentifizieren von Benutzern

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

Verteilte Systeme. SoSe Universität Siegen. Tel.: 0271/ , Büro: H-B Stand: 14. Mai Verteilte Systeme. SoSe

Domänencontroller / Active Directory. Was ist eine Domäne?

Enterprise Web-SSO mit CAS und OpenSSO

Single Sign On mit ADITO Kerberos, LDAP und SSPI AID 032 DE

Data Management mit UNICORE 6

Identity & Access Management in Extranet Portal Projekten

Inhaltsverzeichnis Vorwort Konzepte des Active Directory

z/os LDAP ein zentraler Security Service Mit IBM System z in die Zukunft

OEM 12c Cloud Control - mal ohne "Superuser für Alle"

Best Practices - WatchGuard AuthPoint - Active Directory / LDAP Integration

LDAP verstehen, OpenLDAP einsetzen

WebLogic goes Security

WebLogic goes Security!

JavaSpaces. Markus Helbig, Christian Holder, Marco Jilg, Dominik Krautmann, Richard Waschhauser

quickterm Systemvoraussetzungen Dokumentversion 1.0

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Einführung: Verteilte Systeme - Remote Method Invocation -

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

Authentifizierung und Autorisierung in Kubernetes

Entwicklungstand der GUI

IDM: Identity Connector Framework (ICF) und SAP Connectors

Benennung und Identifizierung von Ressourcen im verteilten System. Abbildung der Namen auf die dahinter stehenden Objekte

Grundlagen der entfernten Authentifizierung und Autorisierung: Kerberos

Zentral verwaltete Netzwerke. Grundlage:

S.M. Hartmann GmbH IT Solutions

Kerberos Authentifizierung

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

BPE-/BRE-Integration in agree. Systemarchitektur, Technologien, Konzepte

Das Kerberos 5 Protokoll

11. Komponenten Grundlagen der Programmierung 1 (Java)

J2EE-Praktikum JNDI. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg

Anwendungsintegration an Hochschulen am Beispiel Identity Management. Münster, 7. Sept. 2006

Wegweiser durch die TU Berlin Verzeichnisse (Update)

Anschluss an CMS-Dienste

Single Sign On mit Active Directory

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

Best Practices WPA2 Enterprise und Radius-SSO

Unified-E Standard WebHttp Adapter

Konzepte von Betriebssystem-Komponenten Schwerpunkt Authentifizierung. Benutzerverwaltung mit Kerberos

Azure Active Directory Möglichkeiten

Die Magie von MBeans und JMX. DOAG 2014 Andreas Chatziantoniou - Foxglove-IT BV

DFB MEDIEN GMBH & CO. KG

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

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

OAuth 2.0. Ralf Hoffmann 03 /

NagVis: Aktuelle Entwicklungen

Von der Datenbank zum LDAP-Server schnell und einfach mit Oracle Virtual Directory. DOAG Konferenz Nürnberg

Wie sichert man APEX-Anwendungen gegen schädliche Manipulationen und unerwünschte Zugriffe ab?

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection

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

Umstellung der FH Aachen Domäne auf Windows Server 2008 R2

customweb Einleitende Informationen Multishop Erstmals Herzlichen Dank für den Kauf dieses Moduls und Ihr entgegengebrachtes Vertrauen.

- Installation. Ein Windows-Benutzer für den Service Postgres wird angelegt. Sie werden nach einem Passwort gefragt. Geben Sie eines ein.

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

WildFly Application Server Administration

VAADIN, SPRING BOOT & REST

LDAP verstehen, OpenLDAP einsetzen

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

Office 365 User Integration

quickterm 5.4 Systemvoraussetzungen

Frankfurt,

Active Directory Integration Mac OS X. René Meusel Betriebssystemadministration

Inhaltsverzeichnis XIII XIII XIV XIV XIV XIV XV XV XV XV XV XV XV XVI XVI

Directory Services für heterogene IT Landschaften. Basierend auf LDAP und OSS

Konfiguration Agenda Anywhere

Sitepark Information Enterprise Server - die Technologie-Plattform von Sitepark

HowTo - steadyprint - Softwareverteilung von steadyprint per Active Directory (AD) - German

HOBLink Mobile und HOBCOM Universal Server

LDAP over SSL. Das neue LDAPS-Server Zertifikat muss die x.509 Zertifikat Erweiterung erfüllen.

Mohammad Esad-Djou OPITZ CONSULTING Deutschland GmbH

IDL.KONSIS.FORECAST Start der Anwendung :18

Von der Datenbank zum LDAP-Server schnell und einfach mit Oracle Virtual Directory. DOAG Konferenz Nürnberg

Oracle Platform Security Service in Ihrer Umgebung. DOAG 2012 Andreas Chatziantoniou Foxglove-IT

Skriptbasierte Administration des WebLogic Servers mittels WLST

von Vladislava Nadova

Integration von UIS-Webdiensten

SMARTentry Notification

Konfiguration Agenda Anywhere

M117: Informatik- und Netzinfrastruktur für ein kleines Unternehmen realisieren. Modul 117. Unit 4 (V1.0) Benutzer und Berechtigungen

Zentrale Benutzerverwaltung für Linux im Active Directory

Verteilte Systeme - 2. Übung

Kerberos und das Oracle Die Nutzung von Kerberos in einer Solaris-Oracle-Umgebung

Active Directory. Agenda. Michael Flachsel. TU-Windows Konzept Vorhandene Umgebung. Allgemeiner Aufbau & Struktur an der TUB

LDAP-Server ganz einfach mit Oracle Virtual Directory. DOAG Konferenz Nürnberg

Securing SOAP e-services

LDAP Authentifizierung

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

11 Verzeichnisdienste

Seminararbeit. Konzept einer Schnittstelle zur Benutzerverwaltung in RiskShield-Server. Christoph Laufs INFORM GmbH INFORM GmbH 1

Spring & Hibernate HANSER. Eine praxisbezogene Einführung. Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr

Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr. Spring & Hibernate. Eine praxisbezogene Einführung HANSER

consulting Ventum Consulting Hadoop im Unternehmenseinsatz, aber sicher Nürnberg, November 2015 Results, no excuses.

Transkript:

JNDI und JAAS am Beispiel des Moduls directoryservices Adapter für Authentifizierungs- und Verzeichnisdienste der Fiducia

Ziel dieses Vortrags Kurzbeschreibung der Verzeichnisdienste, die die Fiducia betreibt Zugriff auf Verzeichnisdienste mit Java-JNDI Autorisierung mit JAAS Modul directoryservices als Adapter mit einheitlicher Schnittstelle für alle Anwendungen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 2

Agenda Kurzbeschreibung der von der Fiducia betriebenen Verzeichnisdienste Zugriff auf Verzeichnisdienste mit Java-JNDI Authentifizierung und Autorisierung mit JAAS Wie finde ich einen Verzeichnisdienst? Umsetzung im Modul directoryservices Feedback, Fragen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 3

Agenda Kurzbeschreibung der von der Fiducia betriebenen Verzeichnisdienste Zugriff auf Verzeichnisdienste mit Java-JNDI Authentifizierung und Autorisierung mit JAAS Wie finde ich einen Verzeichnisdienst? Umsetzung im Modul directoryservices Feedback, Fragen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 4

Verzeichnisdienste der Fiducia Zentrales LDAP der Fiducia IT AG Hierarchische Anordnung von Informationen zu Mandanten und deren Bedienern Pro Mandant ein Teilbaum mit Gruppen und Objekten für Benutzer Technische Architektur Mehrere zentrale LDAP-Systeme wegen Ausfallsicherheit Betrieb in DMZ zum Schutz vor unzulässigen Zugriffen à Löst RACF langfristig ab Windows Active Directory Pro Mandant ein System Zur Authentifizierung beim Login an Windows-Betriebssystem Autorisierung von Zugriffen auf LAN-Ressourcen Eigene Hierarchie mit Teilbäumen für Gruppen und Objekten für Bediener JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 5

Agenda Kurzbeschreibung der von der Fiducia betriebenen Verzeichnisdienste Zugriff auf Verzeichnisdienste mit Java-JNDI Authentifizierung und Autorisierung mit JAAS Wie finde ich einen Verzeichnisdienst? Umsetzung im Modul directoryservices Feedback, Fragen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 6

Zugriff auf Verzeichnisdienste mit Java-JNDI JNDI ist ein Java-API für Zugriffe auf Namens-und Verzeichnisdienste JNDI besitzt eine Service-Provider-Architektur Standard-Zugriff mit LDAP-Simple-Bind Wichtige Übergabeparameter sind: URL des LDAP-Servers mit Basis-Pfad im Verzeichnis Bind-DN: Voll-Qualifizierter Pfad zum Objekt des Benutzers (Distinguished Name) Credential: Passwort des Benutzers zur Authentifizierung Ergebnis: Instanz vom Typ DirContext, als Verbindung zum Verzeichnisdienst DirContext Erlaubt die Verwaltung der Daten im Verzeichnis Bediener anlegen, ändern, löschen, anzeigen Verwaltung der Credentials der Bediener Passwortwechsel, Passwort-Rücksetzung JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 7

Schaubild: Zugriff auf Mitarbeiterdaten durch Administrator LDAP-URL mit Basis-Pfad: <LDAP-Server> : 636 /ou=8844,ou=gruppen,ou=mitarbeiter zentraler LDAP-Server 8844 Gruppen BIND-DN: ou=8844,ou=gruppen,ou=admins,cn=maier Credential: <Passwort von Maier> à DirContext Admins Maier - Passwort = Start123 Mitarbeiter Müller - Vorname=Elmar - Nachname=König - JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 8

Agenda Kurzbeschreibung der von der Fiducia betriebenen Verzeichnisdienste Zugriff auf Verzeichnisdienste mit Java-JNDI Authentifizierung und Autorisierung mit JAAS Wie finde ich einen Verzeichnisdienst? Umsetzung im Modul directoryservices Feedback, Fragen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 9

Authentifizierung und Autorisierung mit JAAS Verzeichnisdienste können sensible Daten beinhalten, eine Authentifizierung und Autorisierung des Zugriffs ist also nötig Die Autorisierung übernehmen hierbei die Verzeichnisdienste selbst Unter LDAP werden dazu Access-Control-Items (ACI) verwendet Diese können zu Access-Control-Lists (ACL) gebündelt werden Für den Verzeichnisdienst ist also die zweifelsfreie Authentifizierung essentiell Jede Implementierung bietet natürlich eigene Authentifizierungs-Möglichkeiten, diese unterscheiden sich jedoch teilweise erheblich LDAP Simple Bind auf RACF-LDAP hat andere Syntax als im SUN-LDAP Eine einheitliche und sichere Authentifizierung wäre angemessener JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 10

Authentifizierung und Autorisierung mit JAAS Ein ideales System zur Authentifizierung ist Kerberos Entwickelt Ende der 1980er Jahre am MIT (Projekt Athena) Native Kerberos-Authentifizierung ist jedoch sehr kompliziert zu implementieren Hier hilft uns JAAS Java Authentication and Authorization Service JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 11

Authentifizierung und Autorisierung mit JAAS Kernkonzept in JAAS ist das Subject Ein Subject repräsentiert eine authentifizierte Identität und ermöglicht, Aktionen im Kontext dieser Identität auszuführen Dies ist der wichtigste Unterschied zu den klassischen Delegationslösungen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 12

Authentifizierung und Autorisierung mit JAAS Delegations-Lösung Client Server User-Context: YC8123AB 1 User-Context: tomcat 2 3 Directory Ressource Der Client weist sich mit der gewünschten Benutzerkennung am Server aus und fordert eine Transaktion an Der Server prüft diese Benutzerkennung, z. B. gegen ein Directory Bei Erfolg wird die gewünschte Transaktion durchgeführt JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 13

Authentifizierung und Autorisierung mit JAAS Nachteilig bei diesen Lösungen ist, dass der Ressourcenzugriff physikalisch unter dem Benutzer Account des Servers (in diesem Beispiel: Tomcat) erfolgt Die Ressource muss also immer einer Verbindung vom Server vertrauen Dieses Vertrauen wird üblicherweise durch künstliche Authentifizierungen hergestellt Technische User, Zertifikate des Servers Der eigentliche Auslöser der Transaktion ist für die Ressource nicht sichtbar JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 14

Authentifizierung und Autorisierung mit JAAS JAAS-Lösung mit Subject erst mal einfach Server Client User-Context: YC8123AB 1 Subject User-Context:YC8123AB User-Context: tomcat 2 3 Directory Ressource Der Client weist sich mit der gewünschten Benutzerkennung am Server aus und fordert eine Transaktion an Der Server prüft diese Benutzerkennung, z. B. gegen ein Directory und erzeugt das Subject Das Subject führt die Transaktion unter dem echten Kontext des Benutzers aus! JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 15

Authentifizierung und Autorisierung mit JAAS JAAS-Lösung mit Subject komplett Client Server Subject User-Context:YC8123AB User-Context: anonymous 2 Delegated Subject User-Context:YC8123AB User-Context: tomcat 1 3 Directory Ressource Der Client weist sich mit der gewünschten Benutzerkennung am Directory aus und erzeugt das Subject Das Subject wird auf geeignete Art und Weise an den Server übertragen Das Subject führt die Transaktion unter dem echten Kontext des Benutzers aus! JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 16

Authentifizierung und Autorisierung mit JAAS Beispiel: Krb5-gesicherte LDAP-Verbindung JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 17

Authentifizierung und Autorisierung mit JAAS Beispiel: Krb5-gesicherte LDAP-Verbindung Subject erzeugen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 18

Authentifizierung und Autorisierung mit JAAS Beispiel: Krb5-gesicherte LDAP-Verbindung Subject verwenden JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 19

Agenda Kurzbeschreibung der von der Fiducia betriebenen Verzeichnisdienste Zugriff auf Verzeichnisdienste mit Java-JNDI Authentifizierung und Autorisierung mit JAAS Wie finde ich einen Verzeichnisdienst? Umsetzung im Modul directoryservices Feedback, Fragen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 20

Wie finde ich einen Verzeichnisdienst? Navigieren durch die Strukturen eines Verzeichnisdiensts stellt kein Problem mehr dar Authentifizierung ist ebenfalls geklärt Aber: Woher kommt die URL für den Verzeichnisdienst? Property-Files? System-Properties? XML-Monster? Natürlich nicht, sondern wiederum aus einem Verzeichnis! JNDI stellt einen Provider für DNS bereit Und per DNS können Services im Netz abgefragt werden JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 21

Wie finde ich einen Verzeichnisdienst? Hierbei handelt es sich nicht um einfache Namensauflösungen Dazu müssten wir ja den Hostnamen kennen Wir wissen aber nur, dass wir einen LDAP-Server oder einen Kerberos-KDC benötigen Und wir kennen noch unsere eigene Netz-Domäne Wir befragen also DNS, welche Hosts in der Domäne den gewünschten Dienst bereitstellen Die Anfrage sieht dabei folgendermaßen aus _<service>._<transport>.my.domain.de Um also in der Fidudom alle LDAP-Server zu finden, setzen wir folgende Query ab _ldap._tcp.fidudom.fiducia.de Das JRE stellt zur Erzeugung des InitialDirContext eine DNSContextFactory bereit Der relevante Code mutiert dadurch zu einer Handvoll einfacher Anweisungen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 22

Wie finde ich einen Verzeichnisdienst? Beispiel JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 23

Agenda Kurzbeschreibung der von der Fiducia betriebenen Verzeichnisdienste Zugriff auf Verzeichnisdienste mit Java-JNDI Authentifizierung und Autorisierung mit JAAS Wie finde ich einen Verzeichnisdienst? Umsetzung im Modul directoryservices Feedback, Fragen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 24

Umsetzung im Modul directoryservices Die wesentlichen Komponenten beim Zugriff auf einen Verzeichnisdienst sind also Ermitteln der Ziel-URL Erzeugen einer Verbindung unter einem Subject Navigation durch den (implementierungsspezifischen) Verzeichnis-Baum Lösungen für all diese Themen wurden aufgezeigt Die Anzahl der vorhandenen Verzeichnisdienste erschwert Fachprojekten jedoch, die geeigneten Lösungsvarianten zu ermitteln Zudem haben die unterschiedlichen Dienste unterschiedliche Strukturen Um dies zu vereinfachen, wurde das Modul directoryservices geschaffen Um die Verwendung auch innerhalb des Frameworks zu ermöglichen, liegt das Modul logisch gesehen unterhalb von JBF Nach bewährter Manier besteht das Modul aus einem Kern und verschiedenen Plug-ins JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 25

Umsetzung im Modul directoryservices Der Kern definiert dabei Interfaces für die verschiedenen Plug-in-Typen und stellt Factories und Kompositoren zur Erzeugung eines für einen konkreten Verzeichnisdienst passenden DirectoryService-Objekts bereit Ein solches DirectoryService-Objekt übernimmt im wesentlichen die Ansteuerung der in ihm aggregierten Plug-ins Folgende Plug-in-Typen existieren ITargetHostProvider IConnectionCreator IDirectoryAdapter JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 26

Umsetzung im Modul directoryservices ITargetHostProvider Ermittelt die Netzadresse (Host und Port) für das gewünschte Backend Als Interface implementiert, da bei diversen Backends unterschiedliche Methoden verwendet werden müssen IConnectionCreator Erzeugt gesicherte und authentifizierte physikalische Verbindungen zum Backend IDirectoryAdapter Übersetzt die generischen Aufrufe aus Directory-Services in LDAP-Calls für den Ziel- Verzeichnisdienst Kapselt die Spezifika hinsichtlich Verzeichnisstruktur und Attribut-Typen Übersetzt Fehlercodes des Verzeichnisdiensts in definierte Exceptions JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 27

Umsetzung im Modul directoryservices Daneben existieren noch 3 Hilfs-Interfaces, die die aufrufende Komponente implementieren und dem DirectoryService bereit stellen muss: ICredentialProvider ILogger IConfigurationManager Diese Interfaces dienen jedoch nur der Integration in das aufrufende System und sind relativ uninteressant JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 28

Umsetzung im Modul directoryservices Das Zusammenspiel dieser Komponenten sieht aus wie folgt JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 29

Umsetzung im Modul directoryservices Vorhandene Implementierungen für ITargetHostProvider FCSITargetHostProvider RACFLdapTargetHostProvider ZLdapTargetHostProvider Vorhandene Implementierungen für IConnectionCreator KerberosBasedConnectionCreator ADLdapSimpleBindConnectionCreator RACFLdapSimpleBindConnectionCreator ZLdapSimpleBindConnectionCreator Vorhandene Implementierungen für IDirectoryAdapter ADDirectoryAdapter RACFDirectoryAdapter ZLDAPDirectoryAdapter JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 30

Agenda Kurzbeschreibung der von der Fiducia betriebenen Verzeichnisdienste Zugriff auf Verzeichnisdienste mit Java-JNDI Authentifizierung und Autorisierung mit JAAS Wie finde ich einen Verzeichnisdienst? Umsetzung im Modul directoryservices Feedback, Fragen JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 31

Fragen? Diskussion? Elmar König Anwendungsentwicklung Technische Architektur JBF-Team elmar.koenig@fiducia.de 0 89 / 99 43 31 17 Andreas Knoll Anwendungsentwicklung Technische Architektur JBF-Team andreas.knoll@fiducia.de 0 89 / 99 43 34 51 JNDI und JAAS am Beispiel des Moduls directoryservices Elmar König, Andreas Knoll JBFOne 2011 Seite 32