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

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
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
Einführung in den Identity Provider
Erweiterung B2B Usermanagement / LDAP-Anbindung
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Identity für GSI Michael Dahlinger, GSI
SOMA Service-Oriented Mobile learning Architecture.
Templates. © beas2009 / Page 2 This documentation and training is provided to you by beas group AG. The documents are neither approved nor in any way.
Workshop: Active Directory
Microsoft Project 2013 & Project Server 2013
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
GRAU DataSpace 2.0 – DIE SICHERE KOMMUNIKATIONS- PLATTFORM FÜR UNTERNEHMEN UND ORGANISATIONEN YOUR DATA. YOUR CONTROL.
SharePoint 2010 for Information Architects
.Net Security. Motivation Rad nicht neu erfinden -> Nutzung der Sicherheitsfunktionen des Betriebssystems (zB Encryption, Authentifizierung,...) Zusätzlich.
1 Teil 2 Einblicke in Exchange 2003 (Basis Beta 2)
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.
| 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.
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
As of 03-Jun and post address are mandatory for new "End Customer" accounts on Unifys Central License Server End Customer Accounts Mandatory.
Top Features kurz vorgestellt: Workplace Join
ICT – Modul Dokumentenverwaltung
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.
Thomas Schissler – artiso solutions GmbH Artur Speth – Microsoft Deutschland GmbH.
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
Fabian Moritz | MVP SharePoint Server
Sprachneuerungen des .NET Frameworks 3.5
Potentiale für den Channel Server-Software aktualisieren Server-Hardware erneuern Migration von Anwendungen Diese Produkte stehen vor dem Ende des Support.
7.-8. März 2013, Rosenheim Brand my SharePoint grafische Gestaltung von SharePoint 2013-Webseiten Fabian Moritz | MVP SharePoint Server.
ZeitThemaReferent – 09.05BegrüssungOlaf Feldkamp 09:15 – 10.30Entwickeln von SharePoint Apps und deren Spezialitäten Martin Loitzl, Trivadis AG.
Weak pushover verbs..... lieben kaufen spielen suchen....are verbs that do exactly as they are told. They stick to a regular pattern that does not change!
SiPass standalone.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
FTS usage at GridKa Forschungszentrum Karlsruhe GmbH
Arbeiten in einem agilen Team mit VS & TFS 11
How does the Summer Party of the LMU work? - Organizations and Networks -
Cloud Entwicklung: Web Services
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
SysAdminDay2015 Benedict Berger. Über den Sprecher Benedict Berger.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
Gregor Graf Oracle Portal (Part of the Oracle Application Server 9i) Gregor Graf (2001,2002)
Memorisation techniques
Gernot Kühn Technologieberater Office System Mittelstandsbetreuung Microsoft Deutschland GmbH Niederlassung Berlin.
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
On the case of German has 4 cases NOMINATIVE ACCUSATIVE GENITIVE DATIVE.
Indico Meeting Dennis Klein 4. August Übersicht  Korrespondenz CERN  Trouble Ticket Queue  Integration GSI-Accounts  Subversion & Wiki  Todo.
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,
Azure Backup, Azure Backup Server und Azure Site Recovery
Arbeiten mit virtuellen Maschinen in Microsoft Azure
Azure Active Directory und Azure Active Directory Domain Services
Premiere Conferencing GmbH
OAuth 2.0 Ralf Hoffmann 03 / 2017
Erweiterte Azure Dienste
Microsoft Azure Optionen zur Verbindung mit OnPremises Netzwerken
Du kommst hier nicht rein!
OFFICE 365 FOCUS SESSION SHAREPOINT ONLINE 101:LERNE DIE BASICS 19. März 2018 Höhr-Grenzhausen.
SOFTWARE- UND WEB-LÖSUNGEN
 Präsentation transkript:

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

Identitäten App Pool Farm System Benutzer

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

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

Authentifizierungsprozess Quelle:

Was ist ein Claim? i:0#.w|itacs\daniel

Claims vs. Identity Think of a claim as a piece of identity information (for example, name, address, age, or membership in the Sales role). The more claims your application receives, the more you know about your user. These are called "claims" rather than "attributes," as is commonly used in describing enterprise directories, because of the delivery method. In this model, your application does not look up user attributes in a directory. Instead, the user delivers claims to your application, and your application examines them. Each claim is made by an issuer, and you trust the claim only as much as you trust the issuer. For example, you trust a claim made by your company's domain controller more than you trust a claim made by the user. MSDN -

SharePoint Claims Encoding i:0#.w|itacs\fabian Claim Identität c = andere Identitäten i:/c: Reserviert für zukünftige Claim Typen 0 Claim Typ # = Logon, 5 = , - = role + = group % = farm ! = identity provider #/./?/S etc. 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

Claims Encoding Beispiele Windows Account CONTOSO\fabianm Alle authentifizierten Windows-Nutzer Windows- Sicherheitsgruppe Federated Location mit als Login Namen Membership Provider i:0#.w|contoso\fabianm c:0!.s|windows c:0+.w|s … i:0#.f|membership|fabianm

Claims vs. Identity IdentityClaims VS VS

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;

Wichtige Begriffe zusammengefasst… Identity  Attribute die einen Benutzer oder eine Gruppe beschreiben Security Token  Verschlüsselte und signierte Liste an Claims Security Token Service (STS)  Erstellt und signiert (Claim-)Tokens Identity Provider (z. B. Active Directory)  Überprüft Tokens auf ihre Gültigkeit Relaying Party  Autorisiert Identitäten anhand von Claims  SharePoint 2013

Demo Formular-basierte Authentifzierung

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;

SPWeb.EnsureUser Der alte Weg Der Weg mit Claims SPUser theOldWay = SPClaimProviderManager claimProviderManager = SPClaimProviderManager.Local; if (claimProviderManager != null) { SPClaim claim = new SPClaim( SPClaimTypes.UserLogonName, "fritzh", " SPOriginalIssuers.Format(SPOriginalIssuerType.Forms, "ldapmember")); string encodedClaimString = claimProviderManager.EncodeClaim(claim); SPUser user = SPContext.Current.Web.EnsureUser(encodedClaimString); }

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", "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);

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

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

App Architektur On Premises SharePoint & Exchange Server On-Premise Plattformen IIS Workflow SQL On-Premise Plattformen IIS Workflow SQL Cloud Office 365 Azure Runtime Azure Websites Azure Workflows SQL Azure Azure Runtime Azure Websites Azure Workflows SQL Azure REST, OAuth, OData, Remote Events

SharePoint App Web Cloud App SharePoint Apps Authentifizierung SharePoint Sandbox OAuth

Authentifizierungs-Prozess 1 SharePoint authentifiziert den Client mit CLAIMS 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 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 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 Client10 Quelle:

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

Demo SharePoint Apps berechtigen

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

Fabian Moritz ITaCS GmbH MVP SharePoint Server Daniel Lindemann ITaCS GmbH Senior Entwickler de