Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Victor Richter Geändert vor über 8 Jahren
2
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
3
Identitäten App Pool Farm System Benutzer
4
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
5
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
6
Authentifizierungsprozess Quelle: http://msdn.microsoft.com
7
Was ist ein Claim? i:0#.w|itacs\daniel
8
Claims vs. Identity Think of a claim as a piece of identity information (for example, name, email 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 - http://msdn.microsoft.com/en-us/library/ee539091.aspx
9
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 = e-mail, - = 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
10
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
11
Claims vs. Identity IdentityClaims VS VS
12
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;
13
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
14
Demo Formular-basierte Authentifzierung
15
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
16
Die Rolle der Site Collection Sicherheitsgrenze Hierarchie von Webs Gruppendefinition Höchste Einheit der Berechtigungs-vererbung Backup / Recovery Site Coll. Papierkorb
17
Berechtigungslevel
18
SharePoint-Rechte
19
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;
20
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); }
21
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);
22
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);
23
SharePoint-Objekte absichern Jedes Objekt verfügt über eine ACL ACLs werden vererbt (der Parent wird genutzt) Aufbrechen möglich
24
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();
25
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. }
26
Demo Benutzer, Gruppen und Berechtigungen
27
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
28
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 });
29
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 }
30
Demo Heraufstufung und Impersonifizierung
31
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
32
SharePoint 2013 Apps
33
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
34
SharePoint App Web Cloud App SharePoint Apps Authentifizierung SharePoint Sandbox OAuth
35
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: http://msdn.microsoft.com
36
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
37
Rechte definieren Wird über das App-Manifest gesteuert
38
Demo SharePoint Apps berechtigen
39
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
40
Fabian Moritz ITaCS GmbH MVP SharePoint Server Fabian.Moritz@itacs.de http://www.itacs.de @FabianMoritz http://sharepointcommunity.de/fabianm Daniel Lindemann ITaCS GmbH Senior Entwickler Daniel.Lindemann@itacs. de http://www.itacs.de @DanielLindemann http://www.dlindemann.de/blog
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.