Kerberos - Alptraum oder Zusammenspiel? SQL Server, SharePoint, ein Client und der Doppelhopp Mark A. Kuschel Organizer 13.06.2015 SQLSaturday Rheinland 2015 Bronze Sponsor 13.06.2015 SQLSaturday Rheinland 2015 Silver Sponsor 13.06.2015 SQLSaturday Rheinland 2015 Gold Sponsor 13.06.2015 SQLSaturday Rheinland 2015 You rock! 13.06.2015 SQLSaturday Rheinland 2015 Quelle: http://www.crunchyroll.com/group/Mythical_Creatures__Club Kerberos? 13.06.2015 SQLSaturday Rheinland 2015 Serveranmeldung: Klassisch GET Default.aspx HTTP 401 13.06.2015 SQLSaturday Rheinland 2015 Serveranmeldung: Klassisch Du kommst hier net rein! WWW-Authenticate HTTP 403 13.06.2015 SQLSaturday Rheinland 2015 Basic / NTLM Authentifizierung • • • • Direktes Versenden der Anmelde-informationen von Client und Server Häufig unverschlüsselte Übermittlung (Basic) • NTLM ist über einen Hash ein wenig sicherer Abgreifen / Fälschen der Informationen über Man-In-The-Middle Attacken ist einfach möglich Alle Dienste müssen auf dem selben Server Installiert sein 13.06.2015 SQLSaturday Rheinland 2015 Mit Kerberos geht es sicher • Server und Dienste misstrauen sich standardmäßig gegenseitig • Der Benutzer erhält bei der Anmeldung am Active Directory ein Kerberos Token und einen Sitzungsschlüssel für die Authentifizierung sowie Verschlüsselung des Datenverkehrs 13.06.2015 SQLSaturday Rheinland 2015 Kerberos ist nicht Microsoft spezifisch! Definiert in RFC 4120 (Version 5, July 2005) Ursprünglich RFC 1510 (September 1993) Active Directory ist am weitesten verbreitete Implementierung (Microsoft Security Support Provider Interface = SSPI) Weitere: MIT Kerberos (Unix / Linux) Heimdal Kerberos (Unix, Linux, Mac) GNU Shishi (Unix / Linux) 13.06.2015 SQLSaturday Rheinland 2015 Vertrauen und Delegierung Das Kerberos Token kann nur zwischen Servern und Diensten weitergereicht werden, welche sich explizit gegenseitig vertrauen Jeder Server und Dienst muss mit Server Prinzipal Namen (SPN) registriert werden Um das weiterreichen zu Erlauben muss eine Delegierung eingerichtet werden 13.06.2015 SQLSaturday Rheinland 2015 Kerberos im SSPI Kontext 13.06.2015 SQLSaturday Rheinland 2015 Kerberos Tickets 13.06.2015 SQLSaturday Rheinland 2015 WinLogon 13.06.2015 SQLSaturday Rheinland 2015 Beispiele für SPNs MSSQLSvc/MeinSQLServer ADVENTUREWORKS\SQLService http/MeinSharePointServer ADVENTUREWORKS\SPWebService Definiert die Dienste, diese vertrauen sich aber noch nicht SharePoint 13.06.2015 SQLSaturday Rheinland 2015 SQL-Server Delegierung definieren Kein KommandozeilenBefehl verfügbar Eigenschaften des Dienstkontos Delegierung auf Zielserver, Dienst und Protokoll definieren 13.06.2015 SQLSaturday Rheinland 2015 DEMO SPN im AD, SetSPN und Delegierungen 13.06.2015 SQLSaturday Rheinland 2015 Authentifizierung per Excel-Client (ROLAP) MDX SQL Analysis Services SQL-Server 13.06.2015 SQLSaturday Rheinland 2015 Das Zusammenspiel mit SharePoint HTTP ? HTTP SharePoint SQL Berichtsserver SQL-Server 13.06.2015 SQLSaturday Rheinland 2015 Und was ist mit diesen Geräten? • Können sich nicht am Active Directory anmelden Kein Kerberos 13.06.2015 SQLSaturday Rheinland 2015 Claims to Windows Token Service (C2WTS) Fragt ein Kerberos Token am Domänencontroller an, nach Anmeldung per Web Benötigt spezielle Servereinstellungen (lokale Sicherheitsrichtlinie) Einsetzen als Teil des Betriebssystems Als Dienst anmelden Annehmen der Clientidentität nach Authentifizierung Muss im SharePoint als Service Application eingerichtet werden 13.06.2015 SQLSaturday Rheinland 2015 Der Anmeldevorgang im Detail HTTP www Auth HTTP SharePoint SQL Berichtsserver SQL-Server C2WTS 13.06.2015 SQLSaturday Rheinland 2015 Demo C2WTS 13.06.2015 SQLSaturday Rheinland 2015 SPNs SQL Server MSSQLSvc/MeinSQLServer:1433 ADV\SQLService MSSQLSvc/MeinSQLServer.dev.local:1433 ADV\SQLService MSOLAPDisco.3/MeinSSASServer ADV\SSASService MSOLAPSvc.3/MeinSSAServer.adventureworks.local ADV\SSASService MSOLAPSvc.3/MeinSSASServer ADV\SSASService MSOLAPDisco.3/MeinSSASServer. adventureworks.local ADV\SSASService MSOLAPSvc.3/MeinSSASServer. adventureworks.local:1433 ADV\SSASService MSOLAPSvc.3/MeinSSASServer:1433 ADV\SSASService 13.06.2015 SQLSaturday Rheinland 2015 SPNs SQL Server seit 2012 R2 MSSQLSvc/MeinSQLServer:1433 ADV\SQLService MSSQLSvc/MeinSQLServer.dev.local:1433 ADV\SQLService MSOLAPDisco.3/MeinSSASServer ADV\SSASService MSOLAPSvc.3/MeinSSAServer.adventureworks.local ADV\SSASService MSOLAPSvc.3/MeinSSASServer ADV\SSASService MSOLAPDisco.3/MeinSSASServer. adventureworks.local ADV\SSASService MSOLAPSvc.3/MeinSSASServer. adventureworks.local:1433 ADV\SSASService MSOLAPSvc.3/MeinSSASServer:1433 ADV\SSASService FQDN ist ausreichend NEU 13.06.2015 SQLSaturday Rheinland 2015 SPNs SharePoint & SSRS SP/C2WTS ADV\C2WTS http/intranet ADV\SPService http/intranet.adventureworks.local ADV\SPService http/reporting ADV\SSRSService http/reporting.adventureworks.local ADV\SSRSService 13.06.2015 SQLSaturday Rheinland 2015 Alles klar? Oder eher nicht? 13.06.2015 SQLSaturday Rheinland 2015 Hilfe! Kerberos funktioniert nicht Registry & Eventlog Microsoft Message Analyzer 13.06.2015 SQLSaturday Rheinland 2015 Save the date! 13.06.2015 SQLSaturday Rheinland 2015