Freigeben über


Gewusst wie: Einschränken der Sicherheitsberechtigungen für den UDF-Codezugriff

Letzte Änderung: Mittwoch, 30. September 2009

Gilt für: SharePoint Server 2010

Wenn Sie nicht möchten, dass eine bestimmte UDF-Assembly (User-Defined Function, benutzerdefinierte Funktion) als vollständig vertrauenswürdig ausgeführt wird, müssen Sie für die Assembly die Sicherheitsberechtigungen für den Codezugriff explizit einschränken. Verwenden Sie das .NET Framework 2.0-Konfigurationstool, um Codegruppen zu konfigurieren und Berechtigungen einzuschränken.

Angenommen, Sie verfügen über einen UDF-Assembly, die mehrere Methoden enthält. Eine der UDF-Methoden führt eine benutzerdefinierte Berechnung aus, während eine andere UDF-Methode in derselben Assembly einen Webdienst aufruft, um Aktienkurse abzurufen. Da Ihre Benutzer nur Excel-Arbeitsmappen verwenden, die die erste Methode (Berechnung) aufrufen, kann es aus Gründen der Sicherheit gewünscht sein, den Webzugriff für die Assembly zu deaktivieren.

Die UDF-Assembly ist in einem Ordner auf dem Server unter C:\UdfAssemblies\CalcAndWebAccessUdf.dll installiert. Da sich die Assembly auf demselben Computer wie Microsoft SharePoint Server 2010 befindet, wird die UDF-Assembly beim Laden durch die Dienste für Excel-Berechnungen in der Arbeitsplatzzone geladen. Standardmäßig gilt die Arbeitsplatzzone als voll vertrauenswürdig. Das bedeutet, dass der UDF-Assembly Berechtigungen auf der Basis der vollständigen Vertrauenswürdigkeit gewährt werden.

Zum Deaktivieren des Webzugriffs für die UDF-Assembly müssen Sie die folgenden Schritte ausführen, um den gewährten Berechtigungssatz explizit einschränken:

  1. Erstellen Sie unter My_Computer_Zone auf Computerebene eine neue URL-basierte Codegruppe. Legen Sie die spezifische Assembly als Geltungsbereich für die Codegruppe fest, und erstellen Sie einen benutzerdefinierten Berechtigungssatz.

  2. Konfigurieren Sie die Eigenschaften der benutzerdefinierten Codegruppe so, dass die Richtlinienebene nur die Berechtigungen aus dem Berechtigungssatz aufweist, der der benutzerdefinierten Codegruppe zugeordnet ist. Wenn die Dienste für Excel-Berechnungen eine UDF-Assembly laden, die sich auf demselben Computer befindet, wird die Assembly in der Arbeitsplatzzone geladen. Das bedeutet, dass der UDF-Assembly standardmäßig Berechtigungen auf der Basis der vollständigen Vertrauenswürdigkeit gewährt werden. Wenn sich der benutzerdefinierte Berechtigungssatz und der Berechtigungssatz auf der Basis vollständiger Vertrauenswürdigkeit überschneiden, ist das Ergebnis die vollständige Vertrauenswürdigkeit. Um festzulegen, dass eine Richtlinie nur die Berechtigung aus dem Berechtigungssatz aufweist, der der benutzerdefinierten Codegruppe zugeordnet ist, müssen Sie die Eigenschaft Die Richtlinienebene erhält nur die Berechtigungen im der Codegruppe zugewiesenen Berechtigungssatz aktivieren.

Weitere Informationen zum Konfigurieren von Codegruppen finden Sie in den folgenden Artikeln auf MSDN:

So erstellen Sie eine neue Codegruppe

  1. Klicken Sie auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf Verwaltung, und klicken Sie dann auf Microsoft .NET Framework 2.0-Konfiguration.

    Hierdurch wird das .NET Framework 2.0-Konfigurationstoolgestartet.

  2. Erweitern Sie im linken Bereich den Knoten Arbeitsplatz, und erweitern Sie dann den Knoten Laufzeitsicherheitsrichtlinie.

  3. Erweitern Sie den Knoten Computer.

  4. Erweitern Sie den Knoten Codegruppen.

  5. Erweitern Sie den Knoten All_Code.

  6. Erweitern Sie den Knoten My_Computer_Zone. Klicken Sie mit der rechten Maustaste auf My_Computer_Zone, und wählen Sie dann Neu aus, um das Dialogfeld Die neue Codegruppe identifizieren aus.

  7. Wählen Sie Eine neue Codegruppe erstellen aus.

  8. Geben Sie im Feld Name den Namen für die neue Codegruppe ein, z. B. RestrictWebAccessUdf.

  9. Klicken Sie auf Weiter.

  10. Um die spezifische UDF-Assembly als Geltungsbereich für die Codegruppe festzulegen, wählen Sie unter Bedingungstyp für die Codegruppe die Option URL aus.

    Hierdurch wird das Feld URL angezeigt.

  11. Geben Sie im Feld URL den Pfad zu der UDF-Assembly ein, für die Sie den Webzugriff einschränken möchten, z. B. C:\UdfAssemblies\CalcAndWebAccessUdf.dll.

  12. Klicken Sie auf Weiter.

  13. Wählen Sie Neuen Berechtigungssatz erstellen aus, und klicken Sie dann auf Weiter.

  14. Geben Sie im Feld Name einen Namen für den Berechtigungssatz ein, z. B. AssemblyExecutionCustomPermissionSet.

  15. Klicken Sie auf Weiter.

  16. Um der UDF-Assembly die Berechtigung Assemblyausführung zu erteilen, wählen Sie in der Liste der Assemblyberechtigungen die Option Sicherheit aus, und klicken Sie dann auf Hinzufügen.

    Hierdurch wird das Dialogfeld Berechtigungseinstellungen angezeigt.

  17. Wählen Sie Assemblys den Zugriff auf folgende Sicherheitsberechtigungen gewähren aus.

  18. Wählen Sie Assemblyausführung aktivieren aus.

  19. Klicken Sie auf OK und dann auf Weiter.

  20. Klicken Sie auf Fertig stellen.

    Die neue benutzerdefinierte Codegruppe (in diesem Beispiel die Gruppe RestrictWebAccessUdf) sollte nun unter dem Knoten My_Computer_Zone angezeigt werden.

So stellen Sie sicher, dass die Berechtigungssätze ausgeführt werden

  1. Klicken Sie unter dem Knoten My_Computer_Zone mit der rechten Maustaste auf die neue benutzerdefinierte Codegruppe (in diesem Beispiel RestrictWebAccessUdf), und wählen Sie Eigenschaften aus.

  2. Aktivieren Sie auf der Registerkarte Allgemein das Kontrollkästchen Die Richtlinienebene erhält nur die Berechtigungen im der Codegruppe zugewiesenen Berechtigungssatz.

  3. Klicken Sie auf Übernehmen und dann auf OK.

    HinweisHinweis

    Wenn die UDF-Methode eine Ausnahme auslöst, da ein Webdienstaufruf nicht ausgeführt werden kann, sollte in der Excel-Formel, die die UDF aufgerufen hat, ein #WERT!-Fehler angezeigt werden.

    HinweisHinweis

    Wenn Sie zu Testzwecken den Webzugriff für die UDF-Assembly aktivieren möchten, müssen Sie die entsprechende Berechtigung zum benutzerdefinierten Berechtigungssatz hinzufügen. Wählen Sie hierfür in Schritt 11 des Verfahrens "So erstellen Sie eine neue Codegruppe" die Option Webzugriff aus.

Siehe auch

Aufgaben

Gewusst wie: Erstellen einer UDF, die einen Webdienst aufruft

Gewusst wie: Aktivieren von UDFs

Gewusst wie: Zugreifen auf eine externe Datenquelle über eine UDF

Gewusst wie: Bereitstellen von UDFs mithilfe von SharePoint Foundation-Lösungen

Konzepte

Exemplarische Vorgehensweise: Entwickeln einer UDF mit verwaltetem Code

Häufig gestellte Fragen zu Excel Services-UDFs

Grundlegendes zu Excel Services-UDFs