Dieser Artikel wurde maschinell übersetzt.

SharePoint-Sicherheit

Anspruchsbasierte Sicherheit in SharePoint 2010

Ivory Feng

Microsoft Office SharePoint eingeführt, ein neues Modell für anspruchsbasierte Identität für Ansprüche unterstützende Anwendungen erstellen. Wenn ein Benutzer auf eine Ansprüche unterstützende Anwendung kommt, stellt sie eine Identität für die Anwendung als einen Satz von Ansprüchen. Diese Ansprüche ermöglichen eine feiner abgestufte Autorisierung zum Inhalt. Somit sind Benutzer mit bestimmten Attributen wie z. B. Landes- und Abteilungscode, Zugriff auf die entsprechenden Inhalte gewährt.

Implementieren die anspruchsbasierte Sicherheit auf Unternehmensebene bietet einige interessanten Herausforderungen. Wir werden den Prozess der erstellen eine benutzerdefinierte Ansprüche Anbieters (CCP) in SharePoint, Integrierung dieser Möglichkeit für SharePoint mit Microsoft FAST Search Server 2010, Verwaltung von Forderungen-fähigen Inhalte aus Sicht des Benutzers und vermeiden bestimmte Punkte erforschen. Wie wir dies tun, erfahren Sie, wie zum Entwerfen und implementieren ein Modell für die dynamische benutzerdefinierte anspruchsbasierte Sicherheit in Office SharePoint. Wir werden das Unternehmen Contoso human Resource-Portal, ContentWeb, in unserem Beispiel verwenden.

Übersicht über die Anwendung

Contoso ist ein globales Unternehmen mit 100.000 Mitarbeiter und ContentWeb hält eine Fülle von Informationen, die Content-Autoren täglich, wöchentlich zu verwalten müssen. In den meisten Fällen ist der Inhalt Leute in einem Land anwendbar, aber nicht um einen anderen, um eine Disziplin, aber nicht um einen anderen oder an alle Mitarbeiter von Contoso. Ein Teil des Inhalts ist jedoch vertrauliche Daten, die auf nur eine kleine Teilmenge der Mitarbeiter (z. B. VPs) verfügbar sein müssen.

Um diese ein breites Publikum zu decken, verwendet die ContentWeb SharePoint-Gruppen (SPGs) mit benutzerdefinierten Ansprüchen explizit zu sichern und gezielt Inhalte. Contoso Anforderungen spezifische Ansprüche sind in einer Datenbank gespeichert und zum Definieren eines Benutzers Anspruch "Set". Es ist dieser Satz von Ansprüchen, die bestimmt, welche ein Mitarbeiter kann und wird nicht angezeigt. Eine Schnittstelle zur Verwaltung kann die Information Worker, die unterstützen das Portal ändern oder erweitern ihren eigenen Satz Ansprüche geben ihnen die Möglichkeit, das Portal als ein anderer Benutzer anzuzeigen. Dieses leistungsfähige benutzerdefinierte Feature heißt Ansicht Portal als VPAS ().

ContentWeb verwendet Windows-Authentifizierung in SharePoint 2010 und FAST Search Server 2010 anspruchsbasierten für SharePoint as the Search Engine in einer Unternehmensumgebung für föderierte Suche.

Warum ein CCP?

Beim Anmelden eines Benutzers in ContentWeb, bietet die Windows-Authentifizierung anspruchsbasierten einen Satz von Ansprüchen aus Active Directory, fungiert als Identitätsanbieter. Diese Ansprüche allein reichen jedoch nicht für ContentWeb zu sichern und gezielt Inhalte. ContentWeb erfordert zusätzliche Benutzerinformationen aus Enterprise-Daten-Repositorys wie z. B. SAP, um einen vollständigen Anspruchssatz erstellen, der den Benutzer beschreibt. Daher brauchen wir eine CCP die Ansprüche zu erweitern. Verwenden Sie diese benutzerdefinierte Ansprüche, explizit zu sichern und gezielt Inhalte für den Benutzer.

Eine CCP erlaubt Contoso ein, um zu bestimmen, WasTypen und Werte es will beschreiben, Angestellte, Lieferanten und anderen funktioniert mit. Dieses Modell ist skalierbar; Sie können Contoso ein, um effizient mit der Zeit als seine geschäftliche Veränderungen zu ändern.

Da Sie einfach die Ansprüche, die aus Active Directory bearbeiten können, benötigen Sie außerdem eine CCP VPA zu unterstützen. VPA wird hauptsächlich verwendet, wenn eine autorisierte Person (Benutzer A) als eine andere Person (Benutzer B) das Portal anzeigen will. In diesem Fall fügt der Provider benutzerdefinierte Ansprüche benutzerdefinierte Ansprüche von Benutzer B des Benutzers A Anspruchssatz, so autorisieren Benutzer A zum Anzeigen von Inhalten, die von Benutzer B zugreifen können.

Die Ansprüche, die ein Benutzer besitzt, sind Attribute, die vertreten sein "Profil". Benutzer können auf einfache und zusammengesetzte Angaben verfügen. Einfache Forderungen, wie z. B. "CountryCode" "und" UserType, sind einfach zu verstehen. ContentWeb verwendet einen vordefinierten Satz von einfachen Ansprüche – oder, genauer gesagt, einfache Anspruchstypen. Muss jedoch manchmal ein Mitarbeiter, die mehr als ein Anspruchstyp verfügt über Berechtigungen für Inhalte gewährt; beispielsweise CountryCode = US und UserType = FullTimeEmployee – die AND-Bedingung. In diesem Fall erstellen Sie zusammengesetzte Ansprüche.

Out of the Box wertet Office SharePoint Ansprüche eines Benutzers Anspruchssatz verwenden nur die OR-Logik. Dies bedeutet, dass SharePoint 2010 unterstützt nur die OR-Bedingung für die Sicherheit und die Ausrichtung und das ist nicht immer ausreichend. Betrachten wir ein Beispiel. ContentWeb hat einen Anspruch CountryCode und einer Forderung UserType. Es muss ein Teil des Inhalts für Full-Time-USA sichern Mitarbeiter verwenden CountryCode = US und UserType = FullTimeEmployee. Wir können nicht erfüllen, dass diese Anforderung direkt in Office SharePoint unter Verwendung von der einfachen Ansprüchen CountryCode oder UserType, müssen wir erstellen Sie einen zusammengesetzten Anspruch zum Verwenden beider beanspruchten darstellen.

Wir könnten einen neuen Anspruchstyp für Vollzeit-US erstellen. Mitarbeiter. Jedoch, wenn das Unternehmen die neuen Büros in anderen Ländern erstellt, müssen wir dann unsere CCP-Quellcode Hinzufügen der entsprechenden Anspruchstypen aktualisieren. Dieser Ansatz kann natürlich teuer und zeitaufwändig sein. ContentWeb-Business-Team möchte außerdem zum Hinzufügen und Entfernen von zusammengesetzten Anspruchstypen ohne eine neue Anwendung Version jedes Mal in der Lage sein. Wie Sie sehen können, ist ContentWeb eine dynamische und erweiterbare Sicherheitsmodell erforderlich.

Wie werden wir alle Ansprüche Daten verwalten? Wir verwenden eine Datenbank namens ContentWebAdminDB Anspruch Metadaten zu speichern. ContentWebAdminDB ist die Ansprüche Quell-Back-End; Es werden alle Quelldaten von Ansprüchen aus SAP und anderen Enterprise-Datenbanken konsolidiert. Wir werden in dieser Datenbank in ein bisschen mehr zu beschäftigen. Und wir verwenden ein gewöhnliches ASP.NET administrative Anwendung namens ContentWebAdmin eine Verbindung mit dieser Datenbank zum Erstellen und Aktualisieren von zusammengesetzten Ansprüche Metadaten und VPA-Konfiguration. (Informationen über diese Anwendung sind außerhalb des gültigen Bereichs für diesen Artikel.) Zusammengesetzte Ansprüche werden unter Verwendung von einfache Ansprüchen erstellt. Erstellen wir z. B. in der Anwendung ContentWebAdmin das einen zusammengesetzten Anspruch US-FullTimeEmployee mithilfe der Ländercode = US "und" UserType = FullTimeEmployee einfache Ansprüche. Mit diesen Coumpound Anspruch Metadaten für jeden Benutzer, der CountryCode = US "und" UserType = FullTimeEmployee einfache Forderungen, eine neue zusammengesetzte Forderung US-FullTimeEmployee = True wird in der Benutzer Anspruchssatz hinzugefügt werden. Beachten Sie, dass keine Verbindung mit US-FullTimeEmployee beanspruchen = False wird im Satz von Ansprüchen des Benutzers angezeigt. Mit diesem Design dynamische zusammengesetzte Ansprüche hat jeder Benutzer nur ein paar Dutzend Forderungen insgesamt, obwohl die Permutation von zusammengesetzten Ansprüche ziemlich hoch sein kann. Dies ist die Grundvoraussetzung für guten Leistung.

Wenn sich ein Benutzer an ContentWeb anmeldet, wird das CCP aufgerufen. Das CCP Ruft eine benutzerdefinierte gespeicherte Prozedur, Sp_GetUserClaims, in ContentWebAdminDB beim Übergeben des Benutzers Identitätsanspruch. Die gespeicherte Prozedur VPA-Konfiguration überprüft und alle einfachen und zusammengesetzten Ansprüchen für diesen Benutzer an das CCP zurückgegeben. Wie Sie sehen können, sind dynamische zusammengesetzte Ansprüche nicht identisch mit dynamischen Autorisierungsregeln. Unsere Lösung wie Office SharePoint ändert zusammengesetzte Ansprüche wertet Ansprüche. Wir werden einfach zusammengesetzte Ansprüche in Anspruchssätze für Benutzer basierend auf der Konfiguration der zusammengesetzten Ansprüche Metadaten einschleusen. Abbildung 1 zeigt eine Übersicht über ContentWeb.

A High-Level View of ContentWeb
Abbildung 1 eine Gesamtübersicht über ContentWeb

Innerhalb der ContentWeb benutzerdefinierte Ansprüche Anbieter

Das CCP ContentWeb hat eine spezielle Klasse, die von Microsoft.SharePoint.Administration.SPClaimProvider erbt. Abbildung 2 zeigt einen Teil dieser Klasse. Beachten Sie die Codezeile 16 (wo die Anzeigetext-Eigenschaft festgelegt ist). Wir werden es dazu beitragen, unsere benutzerdefinierte behauptet Typen und Werte der Anzeige in einer benutzerfreundlichen und lesbar zu hinzugefügt.

Abbildung 2 Ansprüche der Lesbarkeit

protected override void FillResolve(
  Uri context, string[] entityTypes, SPClaim resolveInput,
  List<Microsoft.SharePoint.WebControls.PickerEntity> resolved)
{
  string claimTypeName = string.Empty;
  string claimValue = string.Empty;
 
  // Handles only ContentWeb claim types
  if (null != resolveInput && resolveInput.ClaimType.Contains(
    ContentWebClaimTypes.ContentWebClaimTypePrefix))
  {
    claimValue = resolveInput.Value.ToLower();
    claimTypeName = GetName(resolveInput.ClaimType);
 
    PickerEntity entity = CreatePickerEntity();
    entity.Claim = resolveInput;
    entity.Description = resolveInput.ClaimType + " = " + claimValue;
    entity.DisplayText = claimTypeName + " = " + claimValue;
    entity.EntityData[PeopleEditorEntityDataKeys.DisplayName] =
      claimTypeName + " = " + claimValue;
    entity.EntityType = SPClaimEntityTypes.User;
    entity.IsResolved = true;
    resolved.Add(entity);
  }
}

Das CCP ContentWeb benötigt eine Verbindungszeichenfolge zum Aufrufen einer gespeicherten Prozedur in der ContentWebAdminDB für Benutzer-Ansprüche. Da CCP ein Feature auf Farmebene ist, ist nicht im Rahmen jeder Webanwendung, so dass wir die Datei "Web.config" so konfigurieren Sie die Datenbank-Verbindungszeichenfolge verwenden können. Wir könnten "Machine.config" verwenden, aber das ist nicht ideal, weil wir mehrere Web-front-Ends haben. Den hierarchische Objektspeicher SharePoint, SPPersistedObject, verwenden wir stattdessen um die Datenbank-Verbindungszeichenfolge zu speichern. Dies wird in der SharePoint-Konfigurationsdatenbank, Verfügbarmachen die Datenbankverbindungszeichenfolge in allen Web-front-Ends in der SharePoint-Farm gespeichert.

Innerhalb der CCP ContentWeb erstellen wir eine Klasse, die von Microsoft.SharePoint.Administration.SPPersistedObject, wie in gezeigt Abbildung 3.

Abbildung 3 die ConnectionStringStorage-Klasse

[Guid("56705e15-abd3-44f0-adea-91488da1a572")]
public class ConnectionStringStorage
  : Microsoft.SharePoint.Administration.SPPersistedObject
{
    [Persisted]
    private string m_connectionString;
 
    public ConnectionStringStorage()
    {
    }
 
    public ConnectionStringStorage(
      string name, SPPersistedObject parent)
      : base(name, parent)
    {
    }
 
    public ConnectionStringStorage(
      string name, SPPersistedObject parent, Guid guid)
      : base(name, parent, guid)
    {
    }
 
    public string ConnectionString
    {
      get { return m_connectionString; }
      set { m_connectionString = value; }
    }
}

Wir werden das folgende Windows PowerShell-Skript verwenden, um die Verbindungszeichenfolge die Datenbank zu registrieren:

[System.Reflection.Assembly]::LoadWithPartialName(
  "Microsoft.Sample.ContentWeb.ClaimsSecurity")
$id = new-object System.Guid("56705e15-abd3-44f0-adea-91488da1a572")
$farm = Get-SPFarm
$existingObject = $farm.GetObject($id)
$existingObject.Delete()
$newObject =
  new-object Microsoft.Sample.Contoso.ClaimsSecurity.ConnectionStringStorage(
  "ConnectionString", $farm, $id)
$newObject.ConnectionString = "Data Source=ContentWebAdminSQLServer;
  Initial Catalog=ContentWebAdminDB;Integrated Security=True;Timeout=30"
$newObject.Update();
Iisreset

Wie Sie sehen können, verweisen die CCP-Dll. Wir erstellen ein neues ConnectionStringStorage-Objekt, und legen Sie die ConnectionString-Eigenschaft. Schließlich rufen Sie die Update-Methode, in der SharePoint-Konfigurationsdatenbank zu speichern.

Es wird empfohlen, die Verbindungszeichenfolge haben ein Zeitüberschreitungswert von weniger als 60 Sekunden. Das CCP ist ein Timeout für Berichtsausführung Standardwert von 60 Sekunden. Dies bedeutet, falls die Datenbankverbindung ein auftritt Timeout, müssen Sie die Möglichkeit, die echte Ausnahme aus der Verbindungszeichenfolge und eine irreführende aus der Ausführung des CCP zu erfassen.

Innerhalb des CCP-Konstruktors wir die Verbindungszeichenfolge abzurufen und in einer Variablen auf Modulebene zu speichern:

public class ContentWebClaimProvider : SPClaimProvider
{
  private static string connectionString = null;
 
  public ContentWebClaimProvider(string displayName)
    : base(displayName)
  {
    Guid guid = new Guid(@"56705e15-abd3-44f0-adea-91488da1a572");
    ConnectionStringStorage storage =
      (ConnectionStringStorage)SPFarm.Local.GetObject(guid);
    connectionString = storage.ConnectionString;
  }
}

Wir möchten verfolgen, wenn das CCP an die Datenbank für die Ansprüche der Benutzer eine Verbindung herstellt. Office SharePoint verfügt über ein neues Feature, das für diese perfekt ist. Es wurde das Microsoft.SharePoint.Utilities.SPMonitoredScope-Objekt aufgerufen und Performance und Ressourcennutzung für einen angegebenen Codeblock überwacht. Der folgende Code protokolliert das CCP Datenbankaufrufe:

using (new SPMonitoredScope("ContentWeb.CCP.GetUserClaims", 5))
{
  userClaimsDataSet = CustomClaimSourceDA.GetUserClaims(
    userAlias, connectionString);
}

Wir können die Ereignisebene und die Ablaufverfolgungsstufe für dieses Ereignis auch in der SharePoint-Zentraladministration konfigurieren. Diese werden durch das Monitoring-Objekt in der SharePoint Foundation-Kategorie unter Überwachung gesteuert | Reporting | Konfigurieren der Diagnoseprotokollierung.

In der Datenbank ContentWebAdminDB

Wie bereits erwähnt, konsolidiert ContentWebAdminDB Anspruch-Daten aus SAP und anderen Enterprise-Datenbanken des Benutzers, und es enthält die benutzerdefinierten Anspruchs-Quelle. Das CCP ContentWeb Ruft eine gespeicherte Prozedur Sp_GetUserClaims, um benutzerdefinierte Ansprüche des Benutzers abzurufen.

Die ContentWebAdmin-Anwendung ermöglicht autorisierte Benutzern das zusammengesetzte Forderungen und VPs für einen Benutzer konfigurieren. ContentWebAdminDB speichert die zusammengesetzte Ansprüche Konfigurationsmetadaten und die VPA-Konfiguration in Tabellen. Wenn das CCP ContentWeb Sp_GetUserClaims aufruft, wird diese gespeicherte Prozedur VPA-Konfiguration überprüfen und kehren Sie sowohl einfache und zusammengesetzte Forderungen. Die detaillierten Entwurf und Implementierung von dieser Datenbank ist außerhalb des Bereichs des vorliegenden Artikels. Wir sind jedoch ein SQL-Skript für eine dummy-Sp_GetUserClaims gespeichert-Prozedur mit hartcodierten anspruchswerte innerhalb des Pakets der herunterladbare Code enthalten.

Verwenden von SharePoint-Gruppen

Ein SPG ist ein logischer Wrapper der SharePoint-Benutzer. Dies ist nützlich für ContentWeb, die Hunderte von zusammengesetzten Forderungen verwendet. Ohne SPGs wäre es sehr schwierig für Content-Autoren, um alle Ansprüche zu verwalten.

Die Verwendung von SPGs bietet folgende Vorteile:

  • Angezeigter Name: SPGs ermöglichen es Benutzern, freundlich und sinnvolle Gruppennamen für potenziell kryptische anspruchswerte erstellen. ContentWeb hat beispielsweise eine mit dem Namen "Uns FullTime Mitarbeiter", die Benutzer, die den Anspruch haben, beschreibt SPG Werte Land = USA, CompanyCode = 1010 und UserSubType = FTE.
  • Menschen Picker Name Resolution Support: das Steuerelement Personenauswahl in Office SharePoint unterstützt nativ Namensauflösung für SPGs. Dies macht es leichter zu finden, und wählen SPGs, wie in gezeigt Abbildung 4.

SharePoint Groups in People Picker
Abbildung 4 SharePoint-Gruppen in Personenauswahl

  • Dynamische Anspruch Sicherheits-Management: angenommen, Sie benötigt, um die Definition von "Uns FullTime Employees," UserType hinzufügen ändern = Corp, die anderen Attribute – Land = USA, CompanyCode = 1010 und UserSubType = FTE – muss sich ändernde geschäftliche. Es ist einfach, um die Änderung nur, dass ein SPG und alle Objekte, die gesichert, SPG automatisch diese Änderung erben vorzunehmen.
  • **Nur ein SPG für Sicherung und Zielgruppenadressierung von Inhalten:**Office SharePoint unterstützt jetzt die Möglichkeit, zu sichern und ein Objekt unter Verwendung der gleichen SPG als Ziel. Dadurch wird den typischen Overhead, der beim Erstellen von Zielgruppen, Importieren von Benutzerprofilen, Ausführung des Auftrags des Profil-Sync, usw. für die Zielgruppenadressierung.
  • Mehrere Ansprüche mit einem SPG verbundenen: angenommen, Sie müssen eine Seite für Vollzeitmitarbeiter zu sichern, deren Ebene von 60 bis 65 reicht. Sie leicht erreichen dies durch Erstellen einer SPG, die über Compound Ansprüche für UserSubType = FTE und Level = 60, UserSubType = FTE und Level = 61… UserSubType = FTE und Level = 65. Office SharePoint interpretiert alle diese Forderungen als "Oder".

Verwalten von vielen SPGs hat das Potenzial, zeitaufwändige, mühsam und fehleranfällig sein. ContentWeb-Business-Team verwendet eine Excel-Datei, um Hunderte von Gruppen mit zugeordneten benutzerdefinierten Ansprüche zu verwalten.

Es gibt verschiedene Optionen zum Automatisieren der Erstellung von SPGs. Wir erstellt eine Windows PowerShell-Skript, die liest Daten aus einer XML-Datei, um dies zu automatisieren. (Dieses Skript finden Sie im Codedownload, die von heruntergeladen werden kann code.msdn.microsoft.com/mag201111SPSecurity.) Wir aufgefüllt, die XML-Datendatei mithilfe der Business-Team-Excel-Datei. Abbildung 5 XML-Beispielkonfigurationsdatei zeigt.

Abbildung 5 XML-Beispielkonfigurationsdatei

<?xml version="1.0" encoding="utf-8"?>
<SharePointGroups url="http://contentweb" owner="contoso\ivfeng" >
  <SharePointGroup name="ContentWeb-FTE"
    description="ContentWeb-FTE" permissionLevel="Read">
    <Claim type="UserType" value="emp"/>
  </SharePointGroup>
  <SharePointGroup name="ContentWeb_US_0000_Emp_Corp_HRPro"
    description="ContentWeb_US_0000_Emp_Corp_HRPro">
    <Claim type="CompoundClaim" value="US+emp+corp+hrpro"/>
  </SharePointGroup>
  <SharePointGroup name="ContentWeb_US_0000_Emp_Corp_Manager"
     description="ContentWeb_US_0000_Emp_Corp_Manager">
    <Claim type="CompoundClaim" value="us+emp+corp+manager"/>
    <Claim type="CompoundClaim" value="US+emp+corp+hrpro"/>
  </SharePointGroup>
</SharePointGroups>

Verwenden SPGs zum Ziel

Um die Ausrichtung zu verwenden, benötigen Sie die Benutzerprofil-Service-Anwendung für die Webanwendung aktiviert.

Es ist eine knifflige Frage aufpassen, wenn SPGs für die Zielgruppenadressierung verwenden. Wir fanden zunächst, dass die SPGs mit Active Directory-Benutzer oder Sicherheitsgruppen wurden alle funktioniert gut, aber die SPGs mit benutzerdefinierten Anspruchs-Benutzern nicht überhaupt funktioniert. Die Ursache war die Berechtigungsebene der Computerzielgruppen verwandt. Wenn wir die SPGs mit benutzerdefinierten Ansprüche erstellt, wollten wir alle Standard-Berechtigungsstufe zuweisen. Jedoch, wenn ein SPG nicht zugewiesen eine Berechtigungsstufe, die beim Erstellen und später für die Sicherheit verwendet wird, es wird markiert mit einer besonderen Berechtigungsstufe beschränkter Zugriff, aufgerufen wie in gezeigt Abbildung 6.

A SharePoint Group with Limited Access
Abbildung 6 ein SharePoint-Gruppe mit eingeschränktem Zugriff

Da ContentWeb verfügt über Hunderte von SPGs und die meisten davon sind nur für das Zielpublikum verwendet, haben sie keine Berechtigungsstufe festlegen. Allerdings kann nicht der Zielprozessor für das Publikum in diese SPGs ohne jede Berechtigungsstufe ziehen. Wir hatten das Glück und eine Problemumgehung über die Berechtigung Benutzeroberfläche der Seite, den, die wir für das Zielpublikum anwenden wurden, entdeckt. Berechtigung, die verwendet werden, für die Zielgruppe, dann sofort SPGs diese Berechtigung rückgängig gemachte gewährt wir "Lesen". Dieser Prozess verursacht, SharePoint, kennzeichnen Sie diese SPGs mit der Berechtigungsstufe beschränkter Zugriff, und die Zielgruppe ehrt gerne diese Berechtigungsstufe. Es ist wichtig zu beachten, dass Sie nicht durch diese Bewilligung gehen und Rückgängigmachen von Prozess für die SPGs mehrere Male. Sie müssen nur einmal in der Vererbungsstruktur für die Sicherheit tun. Beachten Sie, dass wenn Sie Sicherheit Vererbung unterbrechen, müssen Sie dafür wieder, selbst wenn Sie es in der übergeordneten Ebene getan haben.

Implementieren die Suche nach ContentWeb

Eines unserer Hauptziele mit dieser Anwendung wurde zur Verbesserung der Suchfunktion für Contoso-Angestellte. Wir wollten ContentWeb Inhalt zu weit besser erkennbar ist, als es in der Vergangenheit war.

Zu diesem Zweck für ContentWeb haben wir FAST Search Server 2010 für SharePoint in einer verbundenen Umgebung gehostet verwendet. Rückverweisen auf Abbildung 1 für Contoso schnell Suchumgebung federated ist. Dieses Feld zeigt eine SharePoint-Farm, die schnelle Suche Föderation Farm aufgerufen. Hinter dieser Farm ist der Microsoft FAST Search Server für SharePoint und Datenbank-Engine. Die Schnellsuche Farm enthält alle Abfrage Search Service Anwendungen) (, Abfrage SSAs) und ein Content SSA.

Natürlich haben wir eine Inhaltsquelle in die vorhandenen Inhalte SSA erstellt. (FAST Search-Server empfiehlt, nur eine Content-SSA.) Sobald dies erledigt ist, wird der Inhalt SSA Crawlen die Inhaltsdatenbank für die ContentWeb und den Suchindex für ContentWeb und anderen Intranetanwendungen verfügbar machen.

Dann erstellt eine separate Abfrage SSA und es auf ContentWeb veröffentlicht. Mit der ersten Suche Test auf ContentWeb fanden wir heraus, dass einfache Suche gearbeitet, sondern suchen die Einschränkung aus Sicherheitsgründen nicht wie erwartet funktioniert. Für alle Seiten mit ContentWeb benutzerdefinierte Ansprüche gesichert könnte Benutzern nicht, obwohl sie die Sicherheitsberechtigungen hatten die Links in den Suchergebnissen angezeigt. Wir herausgefunden schließlich, dass wir brauchten, um die ContentWeb haben, benutzerdefinierte Anspruchszuordnungen Typ in der schnelle Suche von SharePoint-Farm für die Suche aus Sicherheitsgründen arbeiten registriert. Die einfachste Möglichkeit hierfür ist das CCP in der schnellen Suche SharePoint-Serverfarm bereitstellen. Nicht nur haben wir den Anspruchstyp bestätigen Zuordnungen registriert wurden, mussten wir auch sicherstellen, dass alle IDs behaupten (angezeigt als bei Abbildung 7) waren die gleichen über alle SharePoint-Farmen für den gleichen Anspruch Typ-Wert-Paar.

Claim IDs
Abbildung 7 Claim-IDs

Derzeit auch mit den kumulativen Updates SharePoint 2010 Juni 2011, beanspruchen Sie in Office SharePoint-Typzuordnungen unveränderlich sind. Sobald eine CCP auf einer Office SharePoint-Farm bereitgestellt wird, wird die Typ Anspruchszuordnungen werden registriert und bleiben unverändert, auch wenn Sie zu entfernen und erneut, das CCP bereitstellen. Da CCP auf mehreren SharePoint-Farmen möglicherweise, es ist sehr wichtig, dass Sie alle CCP bereitstellen in der gleichen Reihenfolge, um die Forderung zu gewährleisten sind die gleichen IDs über alle Farmen. Wenn Sie dies nicht tun, wird die Sequenz-IDs nicht ausgerichtet und Suche wird nicht präzise Ergebnisse zurück.

Wenn ContentWeb Inhalt gecrawlt wird, wird das CCP nicht aufgerufen. Alles, was nötig ist die Typ-Anspruchszuordnungen, die in der Farm für die Schnellsuche registriert werden, damit die Crawler-Engine der ContentWeb benutzerdefinierte Ansprüche decodiert werden kann. Es speichert dann die dekodierte benutzerdefinierte Ansprüche für die Sicherheit in den Suchindex. Entfernen das ContentWeb-CCP ist optional, da es sich bei die Typ Anspruchszuordnungen bleibt. Darüber hinaus brauchen wir nicht wirklich das CCP ContentWeb Ansprüche User in der Farm für die Schnellsuche zu erweitern.

Security Trimming Ergebnisse: Contoso-Intranetportale

In der Reihenfolge für die ContentWeb Inhalte aus anderen Contoso-Intranetportale durchsucht werden müssen Sie Folgendes sicherstellen:

  • Alle Intranetportale, die den Inhalt der ContentWeb Oberfläche müssen auf Office SharePoint erstellt werden müssen und Claims-based Web-Anwendungen, die Windows-Authentifizierung verwendet werden.
  • Alle Intranet-Portals müssen den gleichen Index für die Schnellsuche, Abfrage durchführen.
  • Alle Intranet-Portals müssen die ContentWeb CCP installiert haben. (Ist mehr als ein CCP, müssen sie alle installiert werden in der gleichen Reihenfolge sicherzustellen Anspruch, die IDs ausgerichtet sind.)

Wenn alle diese Bedingungen erfüllt sind, wird der Inhalt der ContentWeb überall in der Contoso-Intranetportale gesucht werden.

Zusammenfassung

Office SharePoint bietet umfassende Integration mit anspruchsbasierte Sicherheit. SharePoint-Gruppen, Ansprüche und einen Anbieter benutzerdefinierte Ansprüche können Inhalte für das Unternehmen weitgehend wie auch bei einer granularen Ebene zu autorisieren. Wie Sie sehen können, können Sie viele Szenarien relativ leicht erfüllen.

Dieser Entwurf kann auch Entwicklern robuste Tools, mit denen Information Worker (z. B. Supportpersonal) ihre Behauptungen zu ändern und eine Site als ein anderer Benutzer anzeigen, und der anschließenden Rückkehr zu erstellen.

Wie bei den meisten Implementierungen des neuen Design unserer Erfahrung nicht gekommen, ohne "Opportunities zu lernen", aber das Endprodukt war es Wert. Wir haben enthaltenen Beispielcodes sollte helfen, erhalten Sie in die richtige Richtung gehen und aus um einen guten Start auf die Next-Gen-Enterprise Portal bereitstellen!

Jinhui (Côte d ') Feng ist senior Software Development Engineer bei Microsoft und arbeitet auf seiner internen Human Resources-Anwendungen.

Shabbir Darugar ist ein senior Software Engineer und Projekt Entwicklungsleiter bei Microsoft und arbeitet auf seiner internen Human Resources-Anwendungen.

Patrick Stanko ist ein Verantwortlicher Programm-Manager bei Microsoft und arbeitet auf seiner internen Human Resources-Anwendungen.

Dank der folgenden technischen Experten für die Überprüfung dieses Artikels: Tom Wisnowski