Fabian Moritz | MVP SharePoint Server

Slides:



Advertisements
Ähnliche Präsentationen
Was gibt´s neues im Bereich Sicherheit
Advertisements

ASP.NET Tips & Tricks Uwe Baumann
Zusammenarbeit in Office mit den SharePoint Technologien Michael Carpi
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Design- und Entwicklungswerkzeuge
Web-Entwicklung mit ASP.NET 2.0 und Visual Studio 2005 Uwe Baumann Marketing Manager Developer Tools Microsoft Deutschland GmbH Oliver Scheer Developer.
Bernd Oberknapp, UB Freiburg
Erweiterung B2B Usermanagement / LDAP-Anbindung
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Microsofts XML-Strategie aus Sicht des Endanwenders Klaus Rohe Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Identity für GSI Michael Dahlinger, GSI
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Workshop: Active Directory
Microsoft Project 2013 & Project Server 2013
Formatvorlage des Untertitelmasters durch Klicken bearbeiten Platin-Partner: Gold-Partner: Veranstaltungs-Partner: Medien-Partner: Web Content Management.
Web Content Management mit SharePoint Fabian Moritz SharePoint MVP
Fabian Moritz | ITaCS GmbH | SharePoint MVP
Oliver Schnider Peaches Industries GmbH Its time to be ready for May 12th.
Federated Identities und SSO mit Windows Azure
Sharepoint Workshop Markus Wehr
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Weltweite Kommunikation mit Exchange Server über das Internet
SharePoint 2010 for Information Architects
SQL Server 2005 CLR-Integration
Brand my SharePoint Grafische Gestaltung von SharePoint-Webseiten
RATEME 2.0 Pirmin Schürmann, Thomas Junghans, HSZ-T.
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure Windows Azure Mobile Services.
Erste Schritte zu Office 365
| Basel Developing apps for SharePoint 2013 using Visual Studio 2013 René Modery, Office 365 MVP, 1stQuad Solutions.
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
PresenterCompanyContact Windows Azure ASP.NET Web-Anwendungen schnell und zuverlässig bereitstellen.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 Styles (1) s.a.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 6 Folie 2 WCF Data Services (1) s.a.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 ASP.NET Zustandsverwaltung
G2C & G2E Kommunikation mit Website Content Management Alexander Szlezak & Georg Geczek Gentics Net.Solutions.
… und was man damit machen kann.
SharePoint FIS HandsOn – out of the Box.
Office Business Anwendungen mit SharePoint 2010 Fabian Moritz SharePoint MVP.
PHP Basic.
Office Business Anwendungen mit SharePoint Fabian Moritz | MVP Office SharePoint Server.
ICT – Modul Dokumentenverwaltung
Bereitstellen von PHP-Webanwendungen auf Windows Azure
Hacking InfoPoint Jörg Wüthrich Infopoint - Hacking - Jörg Wüthrich 2/26 Inhalte Rund um das Thema Hacking Angriffs-Techniken Session.
[Sprecher/Autor] [Titel] [Organisation][Kontaktinfos] Windows Azure Windows Azure SQL Databases.
MSDN TechTalk Anwendungen integrieren in Microsoft Dynamics CRM 4.0.
Real World Windows Azure Die Cloud richtig nutzen.
SharePoint 2013 Web Services
Kaseya Virtual System Administrator Produkt Update 7.0 Rocco van der Zwet Copyright ©2014 Kaseya 1.
7.-8. März 2013, Rosenheim SharePoint Security Das Sicherheitssystem von SharePoint 2013 Fabian Moritz | MVP SharePoint Server.
Swiss TechNet Events Herzlich Willkommen Microsoft Azure Advanced 2. Dezember 2014 Gerry Keune, Trivadis Stefan Geiger, Trivadis
Software Architektur für on-premise und die Cloud Lösungen
7.-8. März 2013, Rosenheim Brand my SharePoint grafische Gestaltung von SharePoint 2013-Webseiten Fabian Moritz | MVP SharePoint Server.
Cloud Entwicklung: Web Services
SysAdminDay2015 Benedict Berger. Über den Sprecher Benedict Berger.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
Übersicht und Neuerungen
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth.
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
Cubido business solutions gmbh Haidfeldstrasse 33 A-4060 Leonding di(fh) Wolfgang Straßer ° Rundumblick.
Identity Management.  Zentrale Begriffe und Probleme  Modellbildung  Methoden zur Authentisierung über HTTP  Technische Aspekte  Compliance  Hindernisse,
OAuth 2.0 Ralf Hoffmann 03 / 2017
Erweiterte Azure Dienste
Du kommst hier nicht rein!
SOFTWARE- UND WEB-LÖSUNGEN
 Präsentation transkript:

Fabian Moritz | MVP SharePoint Server SharePoint Security Das SharePoint 2013-Sicherheitssystem

Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth

Identitäten Farm App Pool System Benutzer

SharePoint vs. Windows-Identität SharePoint-Objekte Listen, Bibliotheken, Dateien Worker Prozess SharePoint System App Pool Account Backend-Datenbanken SQL Server XML-Dateien und andere Ressourcen Webserver

Nur noch via PowerShell Authentifizierung Classic Claims NT Token Windows Identität NT Token Windows Identität ASP.NET (FBA) LDAP, Custom, etc. SAML 1.1 ADFS, Live ID, etc. Nur noch via PowerShell SAML Token Claims Identität SPUser

Authentifizierungs-Prozess http://msdn.microsoft.com/en-us/library/hh394901(v=office.14).aspx Quelle: http://msdn.microsoft.com

SharePoint Claims Encoding i:0#.w|contoso\fabian Claim Identität c = andere Identitäten i:/c: Reserviert für zukünftige Claim Typen Claim Typ # = Logon, 5 = e-mail, - = role + = group % = farm ! = identity provider Herausgeber w = windows, s = local STS m = membership r = role t = trusted STS p = personal c = claim provider f = forms w/s/m/r/t/c/f etc. Claim Wert Bei Forms mit weiteren | für den Namen des Herausgebers Login Name #/./?/S etc.

Claims Encoding Beispiele Windows Account CONTOSO\fabianm Alle authentifizierten Windows-Nutzer Windows- Sicherheitsgruppe Federated Location mit E-Mail als Login Namen Membership Provider i:0#.w|contoso\fabianm c:0!.s|windows c:0+.w|s-1-5-21… i:05.t|azure|fm@itacs.de i:0#.f|membership|fabianm

Identität ermitteln Der alte Weg HttpContext.Current.Identity; Weiterhin möglich SPContext.Current.Web.CurrentUser; Der Claims Weg IClaimsIdentity identity = (ClaimsIdentity)Thread .CurrentPrincipal.Identity;

Demo Formular-basierte Authentifizierung mit Claims

Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth

Die Rolle der Site Collection Sicherheitsgrenze Hierarchie von Webs Gruppendefinition Höchste Einheit der Berechtigungs-vererbung Backup / Recovery Site Coll. Papierkorb

Berechtigungslevel

SharePoint-Rechte

Benutzerlisten in SharePoint Users - Benutzer, die explizit berechtigt wurden AllUsers - Authentifizierte Benutzer der Website SiteUsers - Alle Benutzer der Site Collection SPWeb currentWeb = SPContext.Current.Site.RootWeb; // Explizit berechtigte Nutzer SPUserCollection users = currentWeb.Users; // Authentifizierte Nutzer SPUserCollection allUsers = currentWeb.AllUsers; // Alle Nutzer SPUserCollection siteUsers = currentWeb.SiteUsers;

Nutzer explizit berechtigen Verwaltung über Role Assignments Rechtezuweisung über Role Definition //SPRoleDefinition für Teilnehmen SPRoleDefinition roleContribute = currentWeb.RoleDefinitions.GetByType(SPRoleType.Contributor) ; //Neues RoleAssignment erzeugen SPRoleAssignment roleAssignment = new SPRoleAssignment( "i:0#.f|ldapmember|fabianm", "fabian.moritz@itacs.de", "Fabian Moritz", "SharePoint MVP"); //Teilnehmenrecht der Rolle zuweisen roleAssignment.RoleDefinitionBindings.Add(roleContribute); currentWeb.RoleAssignments.Add(roleAssignment);

SharePoint-Gruppen Gruppierung von Benutzern Vergabe von Rechten für SP-Objekte Verwaltung auf Ebene der Site Collection SPWeb web = SPContext.Current.Web; web.SiteGroups.Add( "Demo Gruppe", web.SiteAdministrators[0], null, "Per Code generiert!"); SPGroup group = web.SiteGroups["Demo Gruppe"]; group.AddUser(SPContext.Current.Web.CurrentUser); web.AssociatedGroups.Add(group);

SPWeb.EnsureUser Der alte Weg Der Weg mit Claims SPUser theOldWay = SPContext.Current.Web.EnsureUser(@"contoso\fritzh"); SPClaimProviderManager claimProviderManager = SPClaimProviderManager.Local; if (claimProviderManager != null) { SPClaim claim = new SPClaim( SPClaimTypes.UserLogonName, "fritzh", "http://www.w3.org/2001/XMLSchema#string", SPOriginalIssuers.Format(SPOriginalIssuerType.Forms, "ldapmember")); string encodedClaimString = claimProviderManager.EncodeClaim(claim); SPUser user = SPContext.Current.Web.EnsureUser(encodedClaimString); }

SharePoint-Objekte absichern Jedes Objekt verfügt über eine ACL ACLs werden vererbt (der Parent wird genutzt) Aufbrechen möglich

Vererbung aufbrechen SPWeb web = SPContext.Current.Web; // get list SPList docs = web.GetListFromUrl( web.Url + "/Freigegebene Dokumente/Forms/AllItems.aspx"); // get members group and assignment SPGroup group = web.SiteGroups["Mitglieder"]; SPRoleAssignment groupAssignment = new SPRoleAssignment(group); SPRoleDefinition roleRead = web.RoleDefinitions.GetByType(SPRoleType.Reader); // break role inheritance docs.BreakRoleInheritance(false); groupAssignment.RoleDefinitionBindings.Add(roleRead); docs.RoleAssignments.Add(groupAssignment); // reset role inheritance docs.ResetRoleInheritance();

Auf Rechte prüfen SPSite site = SPContext.Current.Site; SPUser user = SPContext.Current.Web.EnsureUser("i:#0.f|pdapmember|fritzh"); using (SPSite impersonatedSite = new SPSite(site.ID, user.UserToken)) { using (SPWeb impersonatedWeb = impersonatedSite.OpenWeb()) foreach (SPList list in impersonatedWeb.Webs) if(list.DoesUserHavePermissions(SPBasePermissions.ManageLists)) // do sth. }

Demo Benutzer, Gruppen und Berechtigungen verwalten

Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth

Code-Heraufstufung Code wird mit dem Token des aktuell angemeldeten Nutzers ausgeführt In einigen Szenarien können höhere Rechte erforderlich sein (Heraufstufung) // Code wird mit Token des aktuellen Nutzers ausgeführt // i:#0.f|ldapmember|fabianm SPSecurity.RunWithElevatedPrivileges(()>= { // Code wird mit heraufgestuften Rechte ausgeführt // SHAREPOINT\SYSTEM });

Code impersonifizieren Zugriff auf Backend-Systeme mit Windows-Identität Claims to Windows Token Service // ist aktuelle Identität ein WinClaim if (SPSecurityContext.IsWindowsIdentityAvailable) { // nutze des c2WTS und hole die Windows identity WindowsIdentity wid = SPSecurityContext.GetWindowsIdentity(); // Impersonifizieren using (WindowsImpersonationContext ctxt = wid.Impersonate()) // Zugriff auf Backend / Windows Ressourcen }

Demo Heraufstufung und Impersonifizierung

Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth

SharePoint 2013 Apps Plattformen Apps Apps Store und Katalog Urlaubs- antrag Event Management Währungsrechner Risiko Help Desk Dienste und Daten

App Architektur SharePoint Client Code: HTML / CSS / JavaScript Plattform App Client Code: HTML / CSS / JavaScript Server Code: HTML, ASP.NET, PHP, etc. SharePoint (Online oder On-Premises) Services On Premises SharePoint & Exchange Server On-Premise Plattformen IIS Workflow SQL Cloud Office 365 Azure Runtime Azure Websites Azure Workflows SQL Azure REST, OAuth, OData, Remote Events 3rd Party Dienste Bing, SalesForce, SAP, Twitter, Facebook

Apps Authentifizierung SharePoint SharePoint App Web Cloud App OAuth SharePoint Sandbox

Authentifizierungs-Prozess 1 SharePoint authentifiziert den Client mit CLAIMS SharePoint erfragt den Kontext-Token beim STS 2 ACS (Access Control Service) gibt den (signierten) Kontext-Token zurück 3 SharePoint leitet den Token an den Nutzer weiter 4 Der Nutzer greift mit dem Token auf die App zu (wird als IFrame in der Seite gerendert) 5 Die App extrahiert den Kontext-Token und übergibt diesen dem ACS (Access Control Service) 6 http://msdn.microsoft.com/en-us/library/fp142382.aspx Der ACS gibt einen Zugriffs-Token mit den Rechten des Nutzers an die App zurück 7 Die App greift via CSOM/REST auf die SharePoint-Website mit dem Access Token (OAuth) zu 8 SharePoint authentifiziert die App und verarbeitet die CSOM/REST-Abfrage 9 Die App sendet das HTML an den Client 10 Quelle: http://msdn.microsoft.com

App-Berechtigungen App-Berechtigungen… sind anders als Nutzer-Berechtigungen gelten für sämtliche Nutzer haben keine Hierarchie Apps haben eine Standard-Berechtigung Limitierte Leserechte auf das Host Web Apps können weitere Rechte beantragen Der installierende Nutzer vergibt die Rechte

Rechte definieren Wird über das App-Manifest gesteuert <AppPermissionRequests> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="FullControl" /> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read" /> <AppPermissionRequest Scope="http://sharepoint/search" Right="QueryAsUserIgnoreAppPrincipal" /> <AppPermissionRequest Scope="http://sharepoint/taxonomy" Right="Write" /> </AppPermissionRequests>

Demo SharePoint Apps-Berechtigungen

Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth

Und nun? Laden Sie sich die Beispiele herunter http://sharepointcommunity.de/fabianm Registrieren Sie sich für eine Office 365 Developer Site http://msdn.microsoft.com/en-us/library/fp179924.aspx Nutzen Sie die MSDN Library http://msdn.microsoft.com/en-US/ Machen Sie sich mit Claims, OAuth und dem App Development vertraut

Fabian Moritz ITaCS GmbH MVP SharePoint Server Fabian.Moritz@itacs.de http://www.itacs.de http://sharepointcommunity.de/fabianm @FabianMoritz