Fabian Moritz - SharePointCommunity

January 8, 2018 | Author: Anonymous | Category: Ingenieurwissenschaften, Informatik, Datenbank
Share Embed Donate


Short Description

Download Fabian Moritz - SharePointCommunity...

Description

7.-8. März 2013, Rosenheim

SharePoint Security

Das Sicherheitssystem von SharePoint 2013 Fabian Moritz | MVP SharePoint Server

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

Identitäten Farm App Pool System Benutzer Veranstalter:

SharePoint vs. Windows-Identität Worker Prozess

SharePoint-Objekte Listen, Bibliotheken, Dateien

SharePoint System App Pool Account Backend-Datenbanken SQL Server XML-Dateien und andere Ressourcen

Webserver Veranstalter:

Authentifizierung Classic

NT Token Windows Identität

Nur noch via PowerShell

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 Veranstalter:

Authentifizierungs-Prozess

Quelle: http://msdn.microsoft.com

Veranstalter:

SharePoint Claims Encoding i:0#.w|contoso\fabian Claim Identität c = andere Identitäten

Reserviert für zukünftige Claim Typen

0

i:/c:

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

Claim Wert Bei Forms mit weiteren | für den Namen des Herausgebers

w/s/m/r/t/c/f etc.

Veranstalter:

Login Name

Claims Encoding Beispiele Windows Account CONTOSO\fabianm Alle authentifizierten Windows-Nutzer

i:0#.w|contoso\fabianm

c:0!.s|windows

WindowsSicherheitsgruppe

c:0+.w|s-1-5-21…

Federated Location mit E-Mail als Login Namen

i:05.t|azure|[email protected]

Membership Provider

i:0#.f|membership|fabianm Veranstalter:

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;

Veranstalter:

Demo Formular-basierte Authentifzierung

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

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

Veranstalter:

Berechtigungslevel

Veranstalter:

SharePoint-Rechte

Veranstalter:

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;

Veranstalter:

SPWeb.EnsureUser • Der alte Weg SPUser theOldWay = SPContext.Current.Web.EnsureUser(@"contoso\fritzh");

• Der Weg mit Claims 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); }

Veranstalter:

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", "[email protected]", "Fabian Moritz", "SharePoint MVP"); //Teilnehmenrecht der Rolle zuweisen roleAssignment.RoleDefinitionBindings.Add(roleContribute); currentWeb.RoleAssignments.Add(roleAssignment);

Veranstalter:

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

Veranstalter:

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

Veranstalter:

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();

Veranstalter:

Demo Benutzer, Gruppen und Berechtigungen

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

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 });

Veranstalter:

Code impersonifizieren • Zugriff auf Backend-Systeme mit WindowsIdentitä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 } }

Veranstalter:

Demo Heraufstufung und Impersonifizierung

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

SharePoint 2013 Apps

Veranstalter:

App Architektur

REST, OAuth, OData, Remote Events

SharePoint & Exchange Server

Office 365

On-Premise Plattformen IIS Workflow SQL

Azure Runtime Azure Websites Azure Workflows SQL Azure

On Premises

Cloud

Veranstalter:

Apps Authentifizierung

OAuth Veranstalter:

Authentifizierungs-Prozess 1

SharePoint authentifiziert den Client mit CLAIMS

2

SharePoint erfragt den Kontext-Token beim STS

3

ACS (Access Control Service) gibt den (signierten) Kontext-Token zurück

4

SharePoint leitet den Token an den Nutzer weiter

5

Der Nutzer greift mit dem Token auf die App zu (wird als IFrame in der Seite gerendert)

6

Die App extrahiert den Kontext-Token und übergibt diesen dem ACS (Access Control Service)

7

Der ACS gibt einen Zugriffs-Token mit den Rechten des Nutzers an die App zurück

8

Die App greift via CSOM/REST auf die SharePointWebsite mit dem Access Token (OAuth) zu

9

SharePoint authentifiziert die App und verarbeitet die CSOM/REST-Abfrage

10

Quelle: http://msdn.microsoft.com

Die App sendet das HTML an den Client

Veranstalter:

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 Veranstalter:

Rechte definieren • Wird über das App-Manifest gesteuert



Veranstalter:

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

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 Veranstalter:

Fabian Moritz

ITaCS GmbH MVP SharePoint Server

[email protected] http://www.itacs.de http://sharepointcommunity.de/fabianm @FabianMoritz

Veranstalter:

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF