Zugriffssteuerung fuer mandantenfaehige Anwendungen und SAAS-Anwendungen (ASP.NET, WCF/Silverlight, usw.)

Zugriffssteuerung für mandantenfähige Anwendungen und SaaS-Anwendungen

Was ist eine mandantenfähige Anwendung?

Mandantenfähigkeit (Multitenancy) ist ein Konzept, bei welchem eine einzelne Instanz einer Anwendung auf einem Server läuft und von mehreren Client-Organisationen (Mandanten) genutzt wird. Die Anwendung ist darauf ausgelegt, ihre Daten und Konfiguration zu partitionieren, sodass jede Client-Organisation mit einer benutzerdefinierten und privaten Instanz der Anwendung arbeitet.

Am häufigsten werden zwei Arten mandantenfähiger Anwendungen eingesetzt:

  • Betriebsinterne („in-house“) Anwendungen: Anwendungen von Großunternehmen zum Fernzugriff für mehrere Einrichtungen, Agenturen, Tochtergesellschaften oder Partner
  • Kommerzielle Anwendungen: SAAS-Anwendungen, die in einer Internet-Cloud gehostet und von mehreren Kunden verwendet werden.

Mandantenfähige Anwendungen sichern

Wie alle andere Anwendungen, werden Sie auch mandantenfähige Anwendungen über Benutzerauthentifizierungen, Benutzerberechtigungen und Audit-Funktionalitäten sichern wollen.
Hierzu müssen mandantenfähige Anwendungen mehrere Kriterien erfüllen:

1 - Schutz der Daten anderer Mandanten
Das wahrgenommene Datensicherheitsrisiko ist bei mandantenfähigen Anwendungen größer. Benutzer müssen der Sicherheit ihrer persönlichen Daten vertrauen können, obwohl die Anwendung zusammen mit anderen Organisationen genutzt wird.
Ein robustes Zugriffssteuerungssystem isoliert die Daten jedes Mandanten, um eine angemessenen Datensicherheit zu gewährleisten. Das System sollte die folgenden Funktionalitäten bieten:

  • Definition und Verwaltung von Mandanten (Benutzersätze)
  • Definition und Verwaltung von Benutzerkonten als Mandantenmitglieder
  • Zugriffsbeschränkung auf die jeweiligen Mandantendaten

2 - Übertragung von Administrationsrechten
Der Besitzer von Informationen sollte festlegen können, wer diese abrufen und verändern darf. Jede Client-Organisation sollte unabhängig Zugriffsrechte für jeden Benutzer anpassen können.
Deshalb sollten Zugriffssteuerungssysteme den Nutzern folgende Funktionen bieten:

  • Delegieren der Sicherheitsadministration an örtliches Personal innerhalb jeder Client-Organisation
  • Gewährleistung der Datenvertraulichkeit: Die Administration eines Mandanten darf keinen Zugriff auf die Sicherheitsdaten anderer Mandanten haben.
  • Gewährleistung der Datenverfügbarkeit: Daten müssen nicht nur sicher sein, sie müssen auch in angemessener Zeit zugänglich und verfügbar sein. Gleiches gilt für die Verwaltungsfunktionen.

Unabhängige Mandanten verwalten

Das Zugriffssteuerungssystem muss in der Lage sein, jede vorhandene Neupartitionierung der « Benutzersätze »zu replizieren. Visual Guard erlaubt Ihnen, eine Benutzergruppenhierarchie zu definieren, in der jede Gruppe Benutzer oder weitere Gruppen enthalten kann.

Dieses Funktionsprinzip kann den meisten Situationen angepasst werden.

Beispiel 1: Für eine kommerzielle SAAS-Anwendung können « Clients » auf der ersten Stufe der Hierarchie eingerichtet werden. Jeder Client kann dann eigene Untergruppen erstellen, um die jeweilige Organisationsstruktur abzubilden.

Beispiel 2: Eine Administration kann einen Mandanten für jede Agentur einrichten, die das System verwendet. Gehören diese Agenturen zu Abteilungen oder Sparten, die von der Administration verwaltet werden, können sie auf niedrigeren Hierarchiestufen eingerichtet werden.

Beispiel 3: Muss eine Organisation einen gemischten Verbund interner und externen Benutzer verwalten, kann sie Mandanten definieren, um einzelne Benutzersätze unabhängig zu verwalten.

Hinweis: In dieser Situation erlaubt Ihnen VG auch eine kombinierte Authentifizierung von Windows-Benutzerkonten (für interne Benutzer) und Benutzerkonten auf Basis von Benutzernamen/Kennworten (für externe Benutzer). Weitere Informationen dazu finden Sie unter Mixed-Mode-Authentifizierung.

Neben diesen grundlegenden Beispielen unterstützt Visual Guard eine Vielzahl weiterer Konfigurationen. Beispielsweise können Sie Benutzer über deren Windows-Konten authentifizieren, unabhängig davon, ob die Mandanten ein eigenes Active Directory betreibt. In diesem Fall erlaubt Ihnen Visual Guard die Zusammenfassung mehrerer Active Directories, die nicht demselben Netzwerk angehören. Weitere Informationen dazu finden Sie unter Identity Federation (Föderierte Identität). In bestimmten Fällen können Sie auch eine Einmalanmeldung (SSO, Single Sign-On) auf Basis der Windows-Konten der Benutzer einrichten.

Eine Gruppenhierarchie können Sie hierüber einrichten:

  • Visual Guard Windows-Konsole
  • Visual Guard Web-Konsole
  • Ihre Anwendung (z.B. auf Basis von ASP.NET oder WCF/Silverlight) bei Nutzung der Visual Guard API

Mandantenfähige Anwendungen sichern

Securing Multitenant Applications
  1. Entwicklung
    Entwickler definieren Berechtigungen mit der VG Win Console.
    Berechtigungen werden in einem Entwicklungs-Repository gespeichert.
    Entwickler stellen die Berechtigungen der Produktionsumgebung mit einem VG-Werkzeug bereit.

  2. Administration
    Administratoren verwalten Benutzer und weisen ihnen Berechtigungen zu.
    Die Administratoren können einem Mandanten angehören oder nicht. 
    Die Administrationsrechte können beschränkt werden über den Mandanten, über die Benutzergruppe, über die Anwendung, über die Art der Administrationsaktion oder jede mögliche Kombination aus diesen Möglichkeiten.

  3. Durchsetzung
    Endbenutzer melden sich bei der Anwendung an, und VG sichert diese wie jede andere Anwendung auch.
    Standardmäßig verwenden die Benutzer Konten auf Basis von Benutzernamen und Kennworten. Sie können auch ihre Windows-Benutzerkonten verwenden, vgl. Föderierte Identität (Identity Federation).
    Ihre Benutzeraktionen werden im VG Repository protokolliert.

  4. Audit
    Auditoren können Benutzerattribute, Rollen und Berechtigungen über mehrere Systeme steuern. Sie können darüber hinaus Benutzeraktionen überprüfen.
    Die Administratoren können einem Mandanten angehören oder nicht. 
    Wie bei Administratoren kann der Zugriff von Auditoren beschränkt werden über den Mandanten, über die Benutzergruppe, über die Anwendung oder jede mögliche Kombination aus diesen Möglichkeiten.

Hinweise

  • Diese Funktionalitäten stehen zur Verfügung für alle von VG unterstützten Technologien, im Besonderen für .NET-Anwendungen (Winforms, asp.net, WPF, WCF, Silverlight usw.)
  • Administratoren und Auditoren können an allen Standorten mit Internetzugang arbeiten.

Administrationsrechte auf einen Mandanten beschränken

Visual Guard gibt Ihnen grundsätzlich die Möglichkeit, Berechtigungen an Administratoren zu vergeben, um Benutzer verwalten und Berechtigungen für jede Anwendung vergeben zu können.

Administrationsrechte können auch auf eine Benutzergruppe beschränkt werden. In diesem Fall können Administratoren nur die Benutzer ihrer Gruppe sehen und verwalten.

Bei mandantenfähigen Anwendungen wird empfohlen, mindestens einen Administrator pro Mandant einzurichten und die Administrationsrechte auf diesen Mandanten zu beschränken.


Beispiel 1: Sie können einen Administrator für jeden Mandanten einrichten.

Visual Guard erlaubt Ihnen noch mehr: Sie können die Administrationsrechte beschränken auf jede Stufe der Gruppenhierarchie. Dieses System bietet eine immense Flexibilität für die Verteilung von Administrationsrechten in beliebigen Entitäten jedes Mandanten.


Beispiel 2: Sie können die Administration auf ein Untergruppe eines Mandanten beschränken.

Weitere Möglichkeiten:
Sie können mehrere Kriterien kombinieren, um Administrationsrechte zu beschränken.

  • Wie oben beschrieben, können diese Berechtigungen auch auf bestimmte Benutzergruppen beschränkt werden.
  • Sie können diese Berechtigungen auch auf bestimmte Anwendungen beschränken.
  • Sie können Berechtigungen auch auf bestimmte Administrationsaktionen beschränken. Beispielsweise könnte ein Administrator Benutzer erstellen und ihnen Rollen zuweisen dürfen, jedoch keine Rollen definieren.


Beispiel 3: Sie können für jeden Mandanten mehrere Administrationsstufen einrichten.

Administrationsfunktionen allen Mandanten zugänglich machen

Es ist wichtig, die Administrationsfunktionen einfach zugänglich zu machen:

  • Mandantenfähige Anwendungen erstrecken sich meist über mehrere Websites. Die administrative Benutzeroberfläche sollte so einfach bereitzustellen sein, wie die Anwendung selbst.
  • Um Administrationsrechte mit höchster Flexibilität einsetzen zu können, sollten alle Benutzer die Verwaltungsfunktionen verwenden können, unabhängig von ihrem Standort oder ihrer technischen Qualifikation.

Üblicherweise werden hierfür zwei Lösungen eingesetzt:

1 – Visual Guard Web-Konsole:

  • Diese Anwendung erlaubt die Verwaltung von Benutzern, Benutzergruppen, Rollen, Berechtigungen usw.
  • Sie besteht aus einer Webanwendung (asp.net), auf die einfach mit einem Browser zugegriffen werden kann.
  • Sie kann zusammen mit der Anwendung bereitgestellt werden und ist für denselben Benutzerkreis zugänglich.
  • Inbegriffen ist ein Erweiterungsmechanismus: Visual Guard-Berater können der Konsole benutzerdefinierte Seiten auf Basis von asp.net hinzufügen, um spezifische Sicherheitsanforderungen zu erfüllen.
  • Weitere Informationen dazu finden Sie unter VG Web-Konsole.

2 – Benutzerdefinierte administrative Benutzeroberfläche:

  • Eine benutzerdefinierte administrative Benutzeroberfläche kann auch auf Basis von ASP.NET oder WCF/Silverlight entwickelt werden.
  • Sie kann als separate Administrationskonsole bereitgestellt oder in Ihre Anwendung integriert werden.
  • Alle erforderlichen Verwaltungsoperationen erfolgen über Aufrufe der Visual Guard API. Diese Programmierschnittstellen sind wie oben beschrieben gesichert. Sie erlauben Ihnen im Besonderen die Verwaltung von Mandanten und das Delegieren von Administrationsbeschränkungen an jeden Mandanten. Weitere Informationen dazu finden Sie unter Visual Guard APIs.
  • Sie können benutzerdefinierte Formulare hierfür selbst entwickeln, oder Sie vertrauen diese Aufgabe unseren Visual Guard-Beratern an.

 

Audit: Zentralisierte oder verteilte Darstellung und Steuerung?

Ähnlich wie für Administrationsrechte ist es auch möglich, Berechtigungen für die Darstellung und Kontrolle der mandantenfähigen Anwendungssicherheit zu vergeben und zu beschränken.

Abhängig von den Umständen kann es sinnvoll sein, diese Berechtigungen entweder zu zentralisieren oder zu verteilen.

Beispiel 1: Betriebsinterne („in-house“) Anwendungen, genutzt von mehreren Entitäten eines Großunternehmens

  • Standardmäßig erfordert diese Art der Anwendung eine zentralisierte Sicherheitssteuerung.
  • Auditoren müssen alle Zugriffsrechte und sensiblen Operationen einsehen können, unabhängig von Benutzern, Abteilungen oder betroffenen Mandanten.
  • Jeder Organisation ist es hierbei freigestellt, den Zugang von Auditoren auf bestimmte Benutzersätze oder Anwendungen zu beschränken.

Beispiel 2: Kommerzielle SAAS-Anwendungen, die von mehreren Kunden verwendet werden.

  • Der Softwareanbieter kann allen Clients die Möglichkeit offerieren, die Sicherheit ihrer Benutzer selbst zu steuern. In diesem Fall ist der Bereich von Auditoren auf einen Mandanten (Client) beschränkt.
  • Die Auditoren haben Einblick in die Zugriffsrechte der Anwender ihres Mandanten. Sie können auch die von Benutzern und Administratoren ihres Mandanten durchgeführten Aktionen kontrollieren.
  • Falls es notwendig ist, kann der Softwareanbieter bestimmte Aktionen seiner Client kontrollieren. Des kann in einigen Fällen für die technische Unterstützung nützlich sein, beispielsweise um den Verlauf der Anwendungsnutzung und der Administration nachzuvollziehen.

Quellenangaben:
http://en.wikipedia.org/wiki/Multitenancy