Implementierung einer hochverfügbaren, sicheren SharePoint 2007 Infrastruktur Denis Holtkamp Fabian Moritz Senior Consultant ITaCS GmbH Senior Consultant, MVP ITaCS GmbH Themen SharePoint 2007 Grundlagen Sicherheitsmodell Topologien Hochverfügbarkeits-Setup im Detail Kapazitätsplanung Disaster Recovery Kundenwünsche und Pain Points Inkonsistentes Setup zwischen den Produkten Zentrale Administration mehrerer Server Topologie Restriktionen Skalierung: Farmen verschiedener Größen Flexibilität: Umbenennung und Neuzuweisung von Res. Netzwerk Support Mehrere Authentifizierungsprovider Reverse Proxies, SSL Termination IP-bound IIS virtual servers Bessere Ressourcen-Ausnutzung und –Isolation Upgrademöglichkeiten SharePoint 2007 – Grundlagen 1. Architektur Farm Physical Server Web Application(s) aka Virtual Server aka IIS Web Site Top Level Site(s) Central Admin Site(s) Site(s) Site Collection Central Admin SharePoint 2007 – Grundlagen 2. Services vs. Server Windows SharePoint Services 2007 Dokumente/Aufgaben/Termine, Blogs, Wikis, E-Mail-Integration, Project Management “lite”, Outlook Integration, Offline Dokumente und Listen Zusammenarbeit Plattform Services Arbeitsbereiche, Mgmt, Sicherheit, Speicher, Topologie, Site Model SharePoint 2007 – Grundlagen 2. Services vs. Server Office SharePoint Server 2007 Server-basierte ExcelSpreadsheets und Datenvisualisierung, Report Center, BI Webparts, KPIs/Dashboards Dokumente/Aufgaben/Termine, Blogs, Wikis, E-Mail-Integration, Project Management “lite”, Outlook Integration, Offline Dokumente und Listen Business Intelligence Client und Web Formulare, LOB Aktionen, Pluggable SSO Geschäftsformulare Integriertes Dokumentenmanagement, Records Management und Web Content Management mit Policies und Workflow Zusammenarbeit Plattform Services Arbeitsbereiche, Mgmt, Sicherheit, Speicher, Topologie, Site Model Content Management Portal Enterprise Portal Vorlage, WebsiteVerzeichnis, My Sites, Social Networking Suche Enterprise-Skalierbarkeit, Kontextuelle Relevanz, Umfassende Personen und Geschäftsdaten-Suche SharePoint 2007 – Grundlagen 3. Shared Services Shared Services Office Server Search Directory import User profile sync Audiences Targeting Business Data Catalog Excel calculation service Usage Reporting MySite Web App 1 Site A Web App 2 Site B Site C Site D SharePoint 2007 – Grundlagen 4. Was ist aus “Portalen” geworden? MOSS Single Server Web Application(s) Portal Template SSP Admin Central Admin Portal Template Ein SharePoint Portal ist jetzt: SharePoint 2007 – Grundlagen 5. Logischer und physikalischer Aufbau Keine Topologie-Restriktionen mehr! Server haben Rollen Web Front End (WFE) Application Server Datenbank Server Farmen jeder Größe können erstellt werden und alle Serverrollen abbilden Es gibt allerdings ein paar Empfehlungen, Richtlinien und Best Practices z.B. Mind. ein Index Server pro Farm Nicht mehr als 8 WFEs pro SQL Server Sharepoint Search – Begriffe Crawl Durchsucht bestimmte Ziele (Content Sources) Übergibt Daten (Content + Properties) an Index Index Erstellt Full-Text-Index (File) und Properties-DB Kopiert Full-Text-Index an alle Query-Server Query Beantwortet Suchanfragen von Benutzern Content Sources SharePoint Sites, WebSites, Fileserver, Exchange Public Folder, Business Data Catalog SharePoint 2007 – Grundlagen Datenbanken Config DB Farm Physical Server Content DB SSP Site Collection A SSP DB Central Admin Search DB Central Admin Site Collection A CA Content DB Datenbank Namen (Best Practices) SharePoint_Config_FarmName Existiert nur einmal pro Farm SharePoint_ContentAdmin_FarmName Existiert einmal pro Farm, manuell umbenennen SharePoint_Content_WebApplicationName# Existiert ein- oder mehrmal pro WebApplication SharePoint_SSPName Existiert einmal pro SSP SharePoint_SSPName_Search Existiert einmal pro SSP SharePoint_Search_AppServer Existiert einmal pro WSS Service Help Search Sicherheitsmodell Was waren die Schwachstellen? Keine Berechtigungen auf einzelne Verzeichnisse oder Elemente Fehlende Wiederherstellungs-Möglichkeiten für einzelne Elemente (kein Papierkorb) Nur Authentifizierung gegen WindowsBenutzerdatenbanken Berechtigungen des Benutzers werden nicht bei der Darstellung berücksichtigt Keine (echte) Backup & Recovery-Funktionalität Sicherheitsmodell SharePoint Identitäten Application Pool-Identität Konfiguration über WSS-Administration Zugriff auf Ressourcen (Dateisystem, SQL) WSS System-Identität Wird verwendet, um AppPool-Identität zu verstecken SHAREPOINT\system Benutzer-Identität Windows oder anderer Authentifizierungs-Provider Vergabe von Berechtigungen Sicherheitsmodell Application Pool Identität Pro IIS Website ein Application Pool AppPool wird unter eigener Identität ausgeführt Identität ist lokales oder Domain-Benutzerkonto In Serverfarmen Domainkonto verwenden! Sicherheitsmodell Application Pool & SQL Server Zugriff auf Config-Datenbank Erstellung und Zugriff auf Content-Datenbank Benutzerkonto benötigt SQL Server-Rechte Sicherheitsmodell Neue Authentifizierungsverfahren 1. Windows Authentifizierung Authentifizierung gegen IIS Benutzer authentifizieren sich über ein Active Directory- oder lokales Benutzerkonto WSS v2 unterstützt nur diesen Typ 2. ASP.NET 2.0 Forms Authentifizierung Basiert auf Authentication Provider Framework IIS wird für “Anonymen Zugriff” konfiguriert 3. Web SSO Authentifizierung Basiert Active Directory Federation Services (ADFS) Sicherheitsmodell Windows Authentifizierung Authentifizierung über Windows-Benutzerkonto Lokale Benutzerkonten in Stand-Alone-Umgebungen Active Directory Benutzerkonten (besser) Authentifizierungsverfahren Windows Integrierte Authentifizierung (Negotiate NTLM, Kerberos) Basic Authentifizierung (Nur mit SSL!) Über IIS zusätzlich: Certificates und Digest Sicherheitsmodell Forms basierte Authentifizierung Basiert auf ASP.NET Authentifizierungsprovider Membership Provider für Benutzerkonten Role Provider WSSv3 Application Browser Office App Custom App Internet Authentication Provider Identity Login Bob Mary Wally PWD xoxoxo oxox xoxox Desktop Web Server Identity Mgmt App Windows XP Windows Server 2003 Operating System Out-of-the-box Provider SqlMembershipProvider ActiveDirectoryMembershipProvider Sicherheitsmodell Berechtigungsmodell SharePoint liefert vordefiniert Rechte Listenberechtigungen (Hinzufügen, Ändern, etc.) Websiteberechtigungen (Website erstellen) Persönliche Berechtigungen (Ansicht anpassen) Vergabe durch Berechtigungsstufen Security Trimmed UI Sicherheitsmodell Berechtigungsmodell Aktivierung in Zentraladministration Einfache Verwaltung innerhalb der Website Direkte Berechtigungsvergabe auf Ebene der Liste oder des Listeneintrags Sicherheitsmodell Berechtigungsmodell SharePoint integriert einen Papierkorb Für Benutzer auf Site-Ebene Für Administratoren auf Site-Collection-Ebene Listen, Bibliotheken, Verzeichnisse, Elemente Sicherheitsmodell Best Practices Unterschiedliche Benutzerkonten für: Farm Account Content Application Pool SSP Prozess Account Achtung: Darf in Farm-Umgebungen nicht “Network Service” sein! Kann aber gleich dem SSP Shared Web Service Account sein. Kerberos on (default = NTLM) Jeder Prozess-Account muss einen SPN registriert haben. SSL aktivieren (default = off) Einschalten für die Admin Site und die Server-zu-ServerKommunikation SPAdmin Service: Single Server: Off (Empfehlung ‘On’ für MOSS) Farm: On Keine Angst vor Kerberos Schneller durch „credential caching“ Kommunikation WFE DB Service Principle Name für das SQL Dienstkonto SETSPN -A MSSQLSVC/<FQDN>:<Port> <Domain\SQLServiceAccountName> z.B. SETSPN -A MSSQLSvc/srv01.contoso.com:1433 CONTOSO\sql_srv Kommunikation Benutzers WFE Service Principle Name für die WebApplication SETSPN -A HTTP/<FQDN> <Domain>\<AppPoolIdentity> z.B. SETSPN -A HTTP/Intranet CONTOSO\sp_app_intranet Kerberos Auth ohne Impersonifizierung MOSS Service Account UPN = SP_APP_Intranet SQL Service Account UPN = CLU-SQL-SRV SPN = MSSQLSvc/CLU-SQL.msdemos.de User Account UPN = [email protected] BASIC, NTLM, NEGOTIATE, FORMS OK Dienstanstart mit Kerberos Authentifizierung OK Kerberos Auth mit Impersonifizierung MOSS Service Account UPN = SP_APP_Intranet SPN = http/intranet.msdemos.de Contraint: MSSQLSvc/CLU-SQL.msdemos.de SQL Service Account UPN = CLU-SQL-SRV SPN = MSSQLSvc/CLU-SQL.msdemos.de User Account UPN = [email protected] NEGOTIATE OK Dienstanstart mit Kerberos Authentifizierung OK Topologien • • • • Single Server Kleine Farm Mittlere Farm Große Farm Topologien Single server Server 1: Ein Server mit allen Rollen: • Web Front End • Applikation • Datenbank Content Sites SSP SSP Admin Site Shared Services Shared Web Services Central Admin Site Alle Datenbanken Topologien 2*1 kleine Farm Load balanced Server: Web Front End Applikation Server 1 & 2: Content Sites SSP SSP Admin Site Shared Services Shared Web Services Central Admin Site (nur Server 1) Server 3 Alle Datenbanken Dedicated SQL Server Topologien 2*1*2 mittlere Farm Load balanced Server: • Web Front End • Applications Servers 1 & 2: Content Sites SSP SSP Admin Site Shared service Shared web services Server 3 Application Server (Index) SSP Shared service (Index) Shared web services Central Admin Site Server 4 & 5 Geclusterter SQL Server Alle Datenbanken Topologien 4*6*2 große Farm WFE Server: 1-4 Web front end Web front end Application Server: 5-10 Application Servers Index Search Excel calculation Clustered SQL Server Content Sites SSP Admin Site SSP Server 5 - 6: - Shared service (Index) - Central Admin Server 7 - 8: - Shared service (Query) - Shared web services (Query) Server 9 – 10: - Shared service (Excel) - Shared web services (Excel) DB Server: 11 & 12 Alle Datenbanken Hochverfügbarkeits-Setup im Detail • Datenbank System • Sharepoint Server • Firewall System Demo Infrastruktur 172.21.12.1 = intranet.msdemos.de 172.21.12.2 172.21.12.3 NLB NLB 192.168.1.2 ISA-A 192.168.1.1 ISA-B 192.168.1.3 (ISA 2006 EE) (ISA 2006 EE) 192.168.1.21 = intranet NLB CLU-SQL DB DC-1 AD, DNS DC-2 AD, DNS 192.168.1.10 192.168.1.15 WFE-1 WFE, SSP 192.168.1.20 WFE-2 WFE, SSP 192.168.1.25 APP-1 APP-2 APP, CAS APP, CAS 192.168.1.30 192.168.1.35 SQL-A SQL-B SQL Server 2005 + SP2 SQL Server 2000 Active/Passive 192.168.1.45 Cluster 192.168.1.40 Datenbank System Installation Backend Datenbank Systeme Microsoft SQL Server 2005 Express Edition Microsoft SQL Server 2005 SP2 Microsoft SQL Server 2000 SP4 Datenbank-Berechtigungen werden automatisch angepasst DBA-created Databases möglich Datenbank System SQL Failover Clustering SharePoint Web Front Ends Server Cluster Heartbeat Node A Node B Shared Disk Arrays Hot Standby: Sehr kurze Recovery-Zeiten Applikationsverfügbarkeit ohne Überwachung und ohne Administrative Eingriffe Demo Infrastruktur 172.21.12.1 = intranet.msdemos.de 172.21.12.2 172.21.12.3 NLB NLB 192.168.1.2 ISA-A 192.168.1.1 ISA-B 192.168.1.3 (ISA 2006 EE) (ISA 2006 EE) 192.168.1.21 = intranet NLB CLU-SQL DB DC-1 AD, DNS DC-2 AD, DNS 192.168.1.10 192.168.1.15 WFE-1 WFE, SSP 192.168.1.20 WFE-2 WFE, SSP 192.168.1.25 APP-1 APP-2 APP, CAS APP, CAS 192.168.1.30 192.168.1.35 SQL-A SQL-B SQL Server 2005 + SP2 SQL Server 2000 Active/Passive 192.168.1.45 Cluster 192.168.1.40 Einrichtung des Backend SQL Clusters Demo Infrastruktur 172.21.12.1 = intranet.msdemos.de 172.21.12.2 172.21.12.3 NLB NLB 192.168.1.2 ISA-A 192.168.1.1 ISA-B 192.168.1.3 (ISA 2006 EE) (ISA 2006 EE) 192.168.1.21 = intranet NLB CLU-SQL DB DC-1 AD, DNS DC-2 AD, DNS 192.168.1.10 192.168.1.15 WFE-1 WFE, SSP 192.168.1.20 WFE-2 WFE, SSP 192.168.1.25 APP-1 APP-2 APP, CAS APP, CAS 192.168.1.30 192.168.1.35 SQL-A SQL-B SQL Server 2005 + SP2 SQL Server 2000 Active/Passive 192.168.1.45 Cluster 192.168.1.40 Applikations- und Web Front End Server Setup Installationsvoraussetzungen Windows Server 2003 Mindestens Service Pack 1 bzw. R2 Editionen: Web, Standard, Enterprise, Datacenter Als x32 oder x64 Version Später auch Windows Server Codename Longhorn Internet Information Services .NET Framework 2.0 .NET Framework 3.0 wegen Workflow Foundation ASP.NET 2.0 muss im IIS registriert sein C:\Windows\Microsoft.NET\Framework\v2. 0.xxxxx>aspnet_regiis.exe -i Web Front End Server Lastverteilung und Failover Lastverteilung mittels: Hardware Load-Balancer Z.B. F-5 BigIP, Cisco Content Service Switch…. Microsoft Network Load Balancing Cluster operation mode Default: Unicast Modus (nicht empfohlen bei single NIC) Empfohlen: Multicast Modus (Vorsicht bei älteren Switches) Hosts können weiterhin untereinander kommunizieren ISA Server 2006 Load Balancing ISA übernimmt die Lastverteilung und überprüft die Verfügbarkeit der Nodes Language Packs Derzeit in 37 Sprachen Sowohl für WSS als auch für die Office Server Language Packs sollten nach dem WSS bzw. MOSS Setup und vor dem Configuration Wizzard installiert werden Auf allen Servern der Farm installiert sein Default Language ist die Sprache der Verwaltungswebseite Service Accounts Alle Accounts sollten im Active Directory liegen Service Accounts müssen nicht Mitglied der Gruppe „Domänen-Benutzer“ sein SharePoint Farm Account für die Zentraladministration Scope: ein Account pro Farm DOMAIN\SP_CA_<FarmName> SharePoint Application Pool Account Scope: Account für jeden Application Pool DOMAIN\SP_App_<WebApplicationName> Service Accounts SharePoint Content Access Account Konto für Crawling der Inhaltsquellen DOMAIN\SP_CAA_<FarmName> SharePoint Search Service Account DOMAIN\SP_Search_<FarmName> Shared Service Provider WebService Account Ein Account pro SSP DOMAIN\SP_<SSPName>_WebService • Installation der Applikationsserver • Installation der Web Front End Server • Erstellung einer Web Applikation sowie einer Site Collection • Einrichtung von NLB Demo Infrastruktur 172.21.12.1 = intranet.msdemos.de 172.21.12.2 172.21.12.3 NLB NLB 192.168.1.2 ISA-A 192.168.1.1 ISA-B 192.168.1.3 (ISA 2006 EE) (ISA 2006 EE) 192.168.1.21 = intranet NLB CLU-SQL DB DC-1 AD, DNS DC-2 AD, DNS 192.168.1.10 192.168.1.15 WFE-1 WFE, SSP 192.168.1.20 WFE-2 WFE, SSP 192.168.1.25 APP-1 APP-2 APP, CAS APP, CAS 192.168.1.30 192.168.1.35 SQL-A SQL-B SQL Server 2005 + SP2 SQL Server 2000 Active/Passive 192.168.1.45 Cluster 192.168.1.40 Konfiguration des Shared Service Provider für Indexing und Search Demo Infrastruktur 172.21.12.1 = intranet.msdemos.de 172.21.12.2 172.21.12.3 NLB NLB 192.168.1.2 ISA-A 192.168.1.1 ISA-B 192.168.1.3 (ISA 2006 EE) (ISA 2006 EE) 192.168.1.21 = intranet NLB CLU-SQL DB DC-1 AD, DNS DC-2 AD, DNS 192.168.1.10 192.168.1.15 WFE-1 WFE, SSP 192.168.1.20 WFE-2 WFE, SSP 192.168.1.25 APP-1 APP-2 APP, CAS APP, CAS 192.168.1.30 192.168.1.35 SQL-A SQL-B SQL Server 2005 + SP2 SQL Server 2000 Active/Passive 192.168.1.45 Cluster 192.168.1.40 First line of defense Firewall Firewall muss http (TCP/80) und https (TCP/443) erlauben Firewall sollte „stateful“ Paketfilterung unterstützen Applikations-Filter für http haben SSL Terminierung übernehmen können Authentifizierung überprüfen und weiterleiten Basic Auth / Forms-Auth HA Szenarien (z.B. Clustering) unterstützen ISA Server 2006 Enterprise Edition erfüllt diese Bedingungen ISA Server 2006 Authentifizierung Basic Authentification Integrated Authentification NTLM / Kerberos Forms-Based Authentification Authentifizierungsprovider Lokale Verzeichnisdatenbank Active Directory LDAP Directory ASP. Net pluggable authN provider Protokolltransition Einrichtung des ISA Server 2006 Array und Veröffentlichung der SharePoint Server 2007 Farm Demo Infrastruktur 172.21.12.1 = intranet.msdemos.de 172.21.12.2 172.21.12.3 NLB NLB 192.168.1.2 ISA-A 192.168.1.1 ISA-B 192.168.1.3 (ISA 2006 EE) (ISA 2006 EE) 192.168.1.21 = intranet NLB CLU-SQL DB DC-1 AD, DNS DC-2 AD, DNS 192.168.1.10 192.168.1.15 WFE-1 WFE, SSP 192.168.1.20 WFE-2 WFE, SSP 192.168.1.25 APP-1 APP-2 APP, CAS APP, CAS 192.168.1.30 192.168.1.35 SQL-A SQL-B SQL Server 2005 + SP2 SQL Server 2000 Active/Passive 192.168.1.45 Cluster 192.168.1.40 Kapazitätsplanung Kapazitätsplanung Latenzverhalten Latency components Server processing ~ 40% SQL processing, # SQL round trips, AJAX processing Client processing ~ 45% Javascript, CSS, AJAX requests, HTML load Wire transfer ~ 5% Bandbreite, Größe des Downloads Empfehlungen #1 killer of latency = Custom Web Parts SQL round trips, excessive client side script Wiederverwendung bestehenden Client-Codes vs. neuen Designen des Codes nach Performance-Gesichtspunkten Kapazitätsplanung Daten – Empfohlene Limits Scope Empfehlung Datenbank 50.000 Site Collection 250.000 (Sub) Web sites Web Site 2.000 Listen Web Site 2.000 Items Listen < 200.000 Dokumente Dokumentenbibliothek < 10.000 Dokumente Folder 2.000 Dokumentengröße File 50MB Indizierte Dokumente (MOSS) SSP 50 Mio Site Collections 1.000 SSP 5 Mio Objekt Site Collections Web Sites Search Scopes (MOSS) Anzahl Profile (MOSS) Kapazitätsplanung Daten – Speicherplatzbedarf Primary Metric: Document storage SQL Server ca. 1,2 – 1,5 x Dateimenge im Filesystem RAID Konfiguration Empfehlung RAID 5 für Datenbankdateien RAID 0+1 für Transaction Logs Secondary Metric = Index Index Server: 10 – 40% (x 2) der Gesamtgröße des gesamten zu indizierenden Contents Query Server: gleiche Größe wie Index Server Disaster Recovery Disaster Recovery Möglichkeiten Recycle Bin für Dokumente und Listen 2 Phasen: Benutzer Administrator Versionierung Site-Level Backup/Restore via STSADM Integriertes SharePoint Backup und Restore Backup/Restore UI für Web Applikationen Unterstützt Voll- und Differenzielles Backup Sichert auch den Full-Text-Index und Search-DB VSS Writer für Farm Backup Erweiterbares Framework für 3rd Party Software Log-Shipping, Database Mirroring Disaster Recovery SharePoint Backup/Restore Limitationen Kein Scheduling „out-of-the box“ möglich Windows Task Scheduler kann helfen Sichert nur die Datenbanken und den Full-Text-Index Systemstate und Daten der Front End Server müssen manuell gesichert werden Lange Widerherstellungszeiten bei großen DB Geringere Verfügbarkeit Disaster Recovery Best Practices Content Recovery Recycle Bin Versioning Web Delete Event Disaster Recovery SharePoint Backup/Restore SQL-only Backup 3rd Party Tools Log-Shipping High Availability Log-Shipping SQL Clustering Welche Kombination dieser Tools ist die richtige für Sie? Weitere Informationen www.itacs.de SharePoint weblogs.mysharepoint.de/fabianm www.sharepointcommunity.de blogs.itacs.de Geo-distributed Deployments One Authoring, several read-only environments. Practical scenario: Web publishing solution (a .com site) where you have authoring (R/W) and different Read-only production environments. out of the box tools for content deployment where you can publish content from one environment to multiple web server farms. WAN acceleration: read/write scenarios with offices across the world. Practical scenario: A highly collaborative environment where an organization has offices WW. The compression algorithms along with the HTTP traffic acceleration should yield good results. There are several Microsoft SharePoint partners that offer a SharePoint-specific WAN acceleration solution. (Certeon ,Tacit, F5) Replication: Different environments that need to host similar content Different offices want to maintain their own environment but want to sync up with a central environment. iOra , CommVault , Veritas. Client/server replication: enable users to be able to take content offline. Outlook 2007 and Groove or Digi-link.