Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) Ap...
Identitäten     Farm    App Pool    System    Benutzer
SharePoint vs. Windows-Identität     Worker Prozess            SharePoint-Objekte                           Listen, Biblio...
Authentifizierungsarten   Classic                           Claims NT Token      NT Token        ASP.NET (FBA)     SAML 1....
AuthentifizierungsprozessQuelle: http://msdn.microsoft.com
Was ist ein Claim?i:0#.w|itacsdaniel
SharePoint Claims Encoding                    i:0#.w|itacsfabianClaim Identität   Reserviert für   Claim Typ      Herausge...
Claims Encoding BeispieleWindows Account          i:0#.w|contosofabianmCONTOSOfabianmAlle authentifizierten               ...
Claims vs. Identity                  VS      Identity         Claims
Identität ermitteln•   Der alte Weg    HttpContext.Current.Identity;•   Weiterhin möglich    SPContext.Current.Web.Current...
Wichtige Begriffezusammengefasst…•   Identity     Attribute die einen Benutzer oder eine Gruppe     beschreiben•   Securi...
DemoFormular-basierte Authentifzierung
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) Ap...
Die Rolle der Site Collection•   Sicherheitsgrenze•   Hierarchie von Webs•   Gruppendefinition•   Höchste Einheit der Bere...
Berechtigungslevel
SharePoint-Rechte
Benutzerlisten in SharePoint•   Users - Benutzer, die explizit berechtigt wurden•   AllUsers - Authentifizierte Benutzer d...
SPWeb.EnsureUser•   Der alte Weg    SPUser theOldWay = SPContext.Current.Web.EnsureUser(@"contosofritzh");•   Der Weg mit ...
Nutzer explizit berechtigen•   Verwaltung über Role Assignments•   Rechtezuweisung über Role Definition      //SPRoleDefin...
SharePoint-Gruppen•   Gruppierung von Benutzern•   Vergabe von Rechten für SP-Objekte•   Verwaltung auf Ebene der Site Col...
SharePoint-Objekte absichern•   Jedes Objekt verfügt    über eine ACL•   ACLs werden vererbt    (der Parent wird genutzt)•...
Vererbung aufbrechen SPWeb web = SPContext.Current.Web; // get list SPList docs = web.GetListFromUrl(          web.Url + "...
DemoBenutzer, Gruppen und Berechtigungen
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) Ap...
Code-Heraufstufung•   Code wird mit dem Token des aktuell angemeldeten    Nutzers ausgeführt•   In einigen Szenarien könne...
Code impersonifizieren•   Zugriff auf Backend-Systeme mit Windows-Identität•   Claims to Windows Token Service     // ist ...
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) Ap...
SharePoint 2013 Apps
App Architektur                        REST, OAuth, OData, Remote Events          SharePoint & Exchange Server            ...
Apps Authentifizierung                         OAuth
Authentifizierungs-Prozess                                    1    SharePoint authentifiziert den Client mit CLAIMS       ...
App-Berechtigungen•   App-Berechtigungen…     sind anders als Nutzer-Berechtigungen     gelten für sämtliche Nutzer    ...
Rechte definieren•   Wird über das App-Manifest gesteuert<AppPermissionRequests>    <AppPermissionRequest Scope="http://sh...
Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) Ap...
Fabian Moritz                           Daniel         ITaCS GmbH                              Lindemann         MVP Share...
SharePoint 2013 Security
SharePoint 2013 Security
SharePoint 2013 Security
Nächste SlideShare
Wird geladen in …5
×

SharePoint 2013 Security

1.316 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.316
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1
Aktionen
Geteilt
0
Downloads
24
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • http://msdn.microsoft.com/en-us/library/hh394901(v=office.14).aspx
  • http://msdn.microsoft.com/en-us/library/fp142382.aspx
  • SharePoint 2013 Security

    1. 1. Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
    2. 2. Identitäten Farm App Pool System Benutzer
    3. 3. 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
    4. 4. Authentifizierungsarten Classic Claims NT Token NT Token ASP.NET (FBA) SAML 1.1 Windows Windows LDAP, Custom, ADFS, Live ID, Identität Identität etc. etc.Nur noch viaPowerShell SAML Token Claims Identität SPUser
    5. 5. AuthentifizierungsprozessQuelle: http://msdn.microsoft.com
    6. 6. Was ist ein Claim?i:0#.w|itacsdaniel
    7. 7. SharePoint Claims Encoding i:0#.w|itacsfabianClaim Identität Reserviert für Claim Typ Herausgeber Claim Wert zukünftige # = Logon, w = windows, Bei Forms mitc = andere Claim Typen 5 = e-mail, s = local STS weiteren | fürIdentitäten - = role m = membership den Namen des + = group Herausgebers r = role 0 % = farm t = trusted STS i:/c: ! = identity p = personal Login Name provider c = claim provider f = forms #/./?/S etc. w/s/m/r/t/c/f etc.
    8. 8. Claims Encoding BeispieleWindows Account i:0#.w|contosofabianmCONTOSOfabianmAlle authentifizierten c:0!.s|windowsWindows-NutzerWindows-Sicherheitsgruppe c:0+.w|s-1-5-21…Federated Location mitE-Mail als Login Namen i:05.t|azure|fm@itacs.deMembership Provider i:0#.f|membership|fabianm
    9. 9. Claims vs. Identity VS Identity Claims
    10. 10. 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;
    11. 11. Wichtige Begriffezusammengefasst…• 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
    12. 12. DemoFormular-basierte Authentifzierung
    13. 13. Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
    14. 14. Die Rolle der Site Collection• Sicherheitsgrenze• Hierarchie von Webs• Gruppendefinition• Höchste Einheit der Berechtigungs-vererbung• Backup / Recovery• Site Coll. Papierkorb
    15. 15. Berechtigungslevel
    16. 16. SharePoint-Rechte
    17. 17. 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;
    18. 18. SPWeb.EnsureUser• Der alte Weg SPUser theOldWay = SPContext.Current.Web.EnsureUser(@"contosofritzh");• 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); }
    19. 19. 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);
    20. 20. 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);
    21. 21. SharePoint-Objekte absichern• Jedes Objekt verfügt über eine ACL• ACLs werden vererbt (der Parent wird genutzt)• Aufbrechen möglich
    22. 22. 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();
    23. 23. DemoBenutzer, Gruppen und Berechtigungen
    24. 24. Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
    25. 25. 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 // SHAREPOINTSYSTEM });
    26. 26. 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 } }
    27. 27. Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
    28. 28. SharePoint 2013 Apps
    29. 29. App Architektur REST, OAuth, OData, Remote Events SharePoint & Exchange Server Office 365 On-Premise Plattformen Azure Runtime IIS Azure Websites Workflow Azure Workflows SQL SQL Azure On Premises Cloud
    30. 30. Apps Authentifizierung OAuth
    31. 31. Authentifizierungs-Prozess 1 SharePoint authentifiziert den Client mit CLAIMS 2 SharePoint erfragt den Kontext-Token beim STS ACS (Access Control Service) 3 gibt den (signierten) Kontext-Token zurück 4 SharePoint leitet den Token an den Nutzer weiter Der Nutzer greift mit dem Token auf die App zu 5 (wird als IFrame in der Seite gerendert) Die App extrahiert den Kontext-Token und übergibt 6 diesen dem ACS (Access Control Service) Der ACS gibt einen Zugriffs-Token mit den Rechten 7 des Nutzers an die App zurück Die App greift via CSOM/REST auf die SharePoint- 8 Website mit dem Access Token (OAuth) zu SharePoint authentifiziert die App und verarbeitet 9 die CSOM/REST-Abfrage 10 Die App sendet das HTML an den ClientQuelle: http://msdn.microsoft.com
    32. 32. 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
    33. 33. 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>
    34. 34. Agenda Identitäten und Authentifizierung Rollen, Rechte und Berechtigungen Heraufstufung und Impersonifizierung (Cloud) App Security mit OAuth
    35. 35. Fabian Moritz Daniel ITaCS GmbH Lindemann MVP SharePoint ITaCS GmbH Server Senior EntwicklerFabian.Moritz@itacs.de Daniel.Lindemann@itacs. dehttp://www.itacs.de http://www.itacs.dehttp://sharepointcommunity.de/fabianm http://www.dlindemann.de/blog@FabianMoritz @DanielLindemann

    ×