DE102009049674B4 - Segregieren von anonymem Zugriff auf dynamischen Inhalt auf einem Webserver mit gecachedten Anmeldungen - Google Patents

Segregieren von anonymem Zugriff auf dynamischen Inhalt auf einem Webserver mit gecachedten Anmeldungen Download PDF

Info

Publication number
DE102009049674B4
DE102009049674B4 DE102009049674.2A DE102009049674A DE102009049674B4 DE 102009049674 B4 DE102009049674 B4 DE 102009049674B4 DE 102009049674 A DE102009049674 A DE 102009049674A DE 102009049674 B4 DE102009049674 B4 DE 102009049674B4
Authority
DE
Germany
Prior art keywords
user account
content
request
web server
logon
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102009049674.2A
Other languages
English (en)
Other versions
DE102009049674A1 (de
Inventor
Brian C. Hicks
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intuit Inc
Original Assignee
Intuit Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intuit Inc filed Critical Intuit Inc
Publication of DE102009049674A1 publication Critical patent/DE102009049674A1/de
Application granted granted Critical
Publication of DE102009049674B4 publication Critical patent/DE102009049674B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

Automatisches Verfahren zum Imitieren eines Benutzerkontos, welches einer Website zugeordnet ist, um Inhalt von dieser Website zu liefern, wobei das Verfahren umfasst:Empfangen (204) einer Anfrage nach Inhalt einer ersten Website bei einem Webserver (120);Zuordnen (206) der Anfrage zu einem voreingestellten anonymen Benutzerkonto auf dem Webserver (120);Identifizieren (208) eines ersten der ersten Website entsprechenden Benutzerkontos in einer von dem Webserver (120) getrennten Datenbank (150), wobei das erste Benutzerkonto mit einer Erlaubnis konfiguriert ist, auf Inhalt der ersten Website, aber nicht auf Inhalt einer zweiten Website zuzugreifen;Suchen (306-316) nach einem gecachten Logon-Handle für das erste Benutzerkonto;Zuordnen (210) der Anfrage zu dem gecachten Logon-Handle für das erste Benutzerkonto anstatt zu dem voreingestellten anonymen Benutzerkonto;Liefern (212) des angefragten Inhalts; undWiederzuordnen (214) der Anfrage zu dem voreingestellten anonymen Benutzerkonto anstatt zu dem ersten Benutzerkonto.

Description

  • HINTERGRUND
  • Webhosting-Organisationen handhaben oft komplexe Operationen, wobei sie tausende, zehntausende und hunderttausend oder mehr Website-Kunden auf einem einzelnen Server oder einem Serverpark hosten. Performance- und Sicherheitsanforderungen erfordern genaue Aufmerksamkeit, so dass der breitest verfügbare Zugriff auf Inhalt angeboten wird, während angemessene Sicherheit von Daten jedes Kunden aufrecht erhalten ist.
  • Das Niveau und der Typ von Sicherheit, welche erforderlich ist, wenn nur statischer Inhalt (z. B..html, jpeg) geliefert wird, ist ziemlich verschieden von der Sicherheit, welche angewendet werden muss, wenn dynamischer Inhalt (z. B. ausführbare Daten, Skripte) geliefert werden. Um zusätzlich zu verhindern, dass Website-Besucher Inhalt betrachten, auf welchen Zugriff beschränkt ist (z. B. Passwort-geschützte Seiten), ist es notwendig, dynamischen Inhalt weiter zu beschränken, so dass Skripte (oder anderer ausführbarer Inhalt, welcher innerhalb einer geteilten Serverumgebung verarbeitet wird) eines Kunden nicht in der Lage sind, auf innerhalb derselben Umgebung gespeicherte Daten eines anderen Kunden zuzugreifen.
  • Wenn zum Beispiel nur statischer Inhalt erlaubt ist und alle Besucher autorisiert sind, den gesamten gehosteten Inhalt zu betrachten (z. B. keine Kunden setzen Anmeldeschemata (logon schemes) ein, um Zugriff zu filtern), dann sind Sicherheitsbedürfnisse relativ gleichförmig und grundlegend. Wenn jedoch Skripten und/oder ausführbaren Bildern erlaubt ist, innerhalb einer geteilten Webserver-Umgebung abzulaufen, wird der Bereich von Aktionen, welche ein Kunde den Webserver anweisen kann, diese in seinem Interesse durchzuführen, signifikant erhöht. Insbesondere können Kundenskripte böswillig oder zufällig (z. B. durch schlechtes Programmieren) Daten eines anderen Kunden beschädigen, zerstören oder auf andere Weise unerlaubt darauf zugreifen.
  • Wenn Sicherheitsbeschränkungen aber zu stringent sind, kann Zugriff auf ein bestimmtes Stück von Inhalt irrtümlicherweise behindert sein, Zugriff auf autorisierten Inhalt kann verzögert sein, Handhabbarkeit des Servers und des Inhalts kann aufgrund lästiger Sicherheitserwägungen sehr komplex werden, usw. Das Ergebnis ist eine ineffiziente Webhosting-Lösung, welche die Bedürfnisse von Kunden nicht adäquat bedient.
  • Selbst während adäquate Sicherheitsmaßnahmen durchgesetzt werden müssen, um Daten jedes Kunden vor anderen Kunden zu schützen, sollte die Möglichkeit aufrecht erhalten werden, Website-Besucher automatisch und anonym anzumelden (logon). Dies erlaubt ihnen, anonym mit dem Website-Inhalt ohne die Unbequemlichkeit, Anmeldeberechtigungen von einer zentralisierten Autorität (z. B. einen Benutzernamen und -passwort, ein digitales Zertifikat) zu erhalten, zu interagieren. Insbesondere ist es nützlich und wünschenswert, Besuchern anonymen Zugriff zu geben, während erlaubt ist, dass Kundenskripte im Interesse der Besucher im Hintergrund ablaufen.
  • Existierende Versuche, einen Webserver zu sichern, während automatische und anonyme Anmeldungen noch erlaubt sind, sind inadäquat oder ineffektiv, insbesondere wenn dynamischer Inhalt (z. B. Skripte) geliefert wird. In vielen Webhosting-Umgebungen werden zum Beispiel alle anonymen Inhaltbetrachter automatisch bei dem Webserver unter Benutzung desselben Serverkontos unabhängig von dem Inhalt, auf welchen sie zugreifen (z. B. eine statische Website, ein Bild, ein Skript, ein ausführbares Datum), angemeldet. Dieser Typ von Lösung löst nicht das Problem, zu versuchen, Zugriff auf Daten eines Kunden von Skripten eines anderen Kunden aus zu beschränken.
  • Wenn alle anonymen Website-Besucher ein Konto teilen, teilen sie einen Sicherheitskontext und es gibt keinen inhärenten oder einfachen Weg, einen Betrachter von einem anderen zu differenzieren. Daher kann ein File-Server, der Webserver oder ein anderer Bevollmächtigter eines Zugriffs auf gespeicherte Daten nicht leicht zwischen denjenigen differenzieren, welchen Zugriff auf eine gegebene Inhaltsdatei erlaubt werden sollte und welchen nicht. Wenn nicht alle Besucher (und alle Skripte, welche als ein Ergebnis einer Betrachtung einer Seite ablaufen) Zugriff auf den gesamten Inhalt haben, werden individuelle Kunden (oder andere involvierte Entitäten) im Allgemeinen Benutzerkonten zuzuordnen haben (und zu verteilen haben), um Anmeldeprozeduren zum Zugreifen auf geschützten Inhalt zu implementieren.
  • Wenn insbesondere ausführbarer Inhalt (z. B. Skripte, ausführbare Daten) auf einem Webserver geliefert wird, muss Sicherheit robust konfiguriert sein, um unautorisierten Zugriff auf gespeicherte Daten zu verhindern, aber ohne eine annehmbare Performance zu opfern. Ein Teil der Sicherheitsanforderung bringt ein Bedürfnis mit sich, Kunden und ihre Daten zu trennen oder zu segregieren, so dass dynamischer Inhalt von einem Kunden nicht benutzt werden kann, auf geschützte Daten eines anderen Kunden zuzugreifen.
  • Zum Beispiel könnte ein Kunde ein Skript erzeugen, welches versucht, alle Dateien auf dem Webserver, alle Dateien innerhalb einer Ordnerstruktur eines anderen Kunden zu löschen, oder zu einem anderen Schaden zu führen. Lösungen für dieses Problem sind aufgrund des Bedürfnisses, Betrachtern von Kundeninhalt zu erlauben, sich anonym und automatisch zu verbinden, kompliziert.
  • Einige Middleware-Software oder Software auf Anwendungsniveau versucht, Sicherheitswächter (safeguards) gegen unautorisierten Zugriff durch Benutzer dieser Software zu liefern. Zum Beispiel umfasst PHP (PHP-Hypertext-Prozessor) einen Sicherheitsoperationsmodus, welcher versucht, die Fähigkeit eines anonymen Inhaltbetrachters oder-benutzers, zu Schaden zu führen, wenn ein PHP-Skript abläuft, zu vermindern. Wie praktisch sämtliche Software auf Anwendungsniveau hat er aber Löcher, welche ausgenutzt werden können.
  • Eine andere Lösung für das Bedürfnis nach einem Sicherheitsschema, zu erlauben, dynamischen Inhalt sicher zu liefern, ohne Performance drastisch zu berühren, involviert die Benutzung von virtuellen Maschinen. In diesem Schema wird eine virtuelle Maschine oder ein virtueller Server für jeden Kunden auf dem Server erstellt. Wegen des Erfordernisses, viele virtuelle Umgebungen zu etablieren, ist diese Lösung prozessorintensiv und kann sehr kostenintensiv sein, weil Ressourcen auf jeder virtuellen Maschine lizenziert werden müssen. Weiterhin müsste eine Abbildungsressource eingesetzt werden, um Inhaltbetrachter auf die virtuelle Maschine des korrekten Kunden abzubilden.
  • IIS (Internet-Informationsdienste (Internet Information Services)) von Microsoft® umfasst eine zugeordnete Metabase, welche statisch kodierte URLs (Uniform Resource Locator) - welche Inhalt entsprechen, nach dem Betrachter nachfragen können - auf ein bestimmtes Benutzerkonto abbildet, um es auf jede Anfrage anzuwenden. Eine Metabase ist jedoch in ihrer Kapazität (d. h., wie viele Abbildungen sie speichern kann) begrenzt und kann nicht skalieren, um einen Webserver zu unterstützen, welcher Inhalt von zehntausenden oder hunderttausenden von Websites liefert.
  • Wenn mehrere Webserver und Metabasen zu implementieren wären, um eine große Zahl von Websites zu hosten, würden weitere Komplikationen auftreten. Weil eine Metabase eine begrenzte Kapazität hat, erfordert ein Unterstützen einer Anzahl von Sites, welche größer ist als die Kapazität einer Metabase, dass Inhaltanfragen vorverarbeitet werden. Vorverarbeitung führt dazu, dass jede Anfrage an den korrekten Server geleitet wird (d. h. an den Server mit der Metabase, welche der angefragten Website entspricht).
  • Weil Redundanz beim Liefern von Websites wünschenswert ist, würde jede Metabase unter einem Pool von Servern repliziert werden, um Ausfallsicherungsschutz bereitzustellen. Dies kann eine Herausforderung an ein Teilen von Metabasen stellen, insbesondere wenn die gehosteten Websites dynamisch sind - was bedeutet, dass sie sich nach der Laune des Kunden ändern, vielleicht ihre Namenskriterien modifizieren, einen Webservice entfernen, etc.
  • Lösungen, welche zu einer Datenverdoppelung ohne adäquate Werkzeuge zum Handhaben der Replikation dieser Daten führen, haben sich als kostenintensiv und fehleranfällig erwiesen. Weitere Ausgaben werden erlitten, wenn Server bereitgestellt werden, um Gruppen von verschiedenen Metabasen anstatt eine einzelne Metabase zu unterstützen.
  • Ein anderes Problem mit dem Unterstützen von anonymem Zugriff auf Inhalt auf einem Webserver ist die Mühe, wiederholt einen Domaincontroller (oder eine andere Authentifikationsentität) zu kontaktieren, um jede virtuelle Betrachtersitzung zu autentifizieren (z. B. jede Anfrage an einem voreingestellten anonymen Benutzerkonto anzumelden (logon)). Diese Bemühung kann nicht nur in dem Webserver zu einem Performanceabfall führen, sondern auch in einem Filer, welcher SMB (Server Message Block)-Netwerk-Logons annimmt, welche einer Webserver-Anmeldungssitzung (logon session) zugeordnet sind.
  • Cachen von anonymen Anmeldungssitzungen auf einem Webserver ist typischerweise nicht durchführbar, insbesondere wenn Betrachteranfragen nach Inhalt unter mehreren Prozessen verteilt sind, weil ein Logon-Handle oder Kontext standardmäßig nur in dem Prozess gültig ist, in welchem es bzw. er geladen wurde. Anfragen können unter mehreren Prozessen verteilt sein, um verhindern zu helfen, dass ein böswilliges oder fehlerhaftes Skript eines Kunden das Ablauferleben (run-time experience) anderer Betrachter nachteilig berührt. Existierende Anmelde-Caching-Schemata erlauben keine Inter-Prozess-Kommunikation, um das Teilen von Logon-Handles zu erlauben, und der Zuschlag (overhead) zum Etablieren von separaten Caching-Schemata für jeden Prozess würde wenig oder keinen Gesamtvorteil geben. US 5,923,842 offenbart ein Verfahren zum Zulassen einer anonymen Benutzeranmeldung an einem Computer beginnend, wenn eine Anwendungsanforderung von einem Client empfangen wird. Der nächste verfügbare anonyme Benutzername wird bestimmt und der Anwendungsanfrage des Clients zugewiesen. Der anonyme Benutzername wird authentifiziert und eine neue Sitzung wird erstellt, die die Anwendung aufruft, auf die die Anwendungsanforderung des Clients abzielt. Wenn der Client die Ausführung der Anwendung beendet, wird der Name des anonymen Benutzers an den Pool anonymer Benutzernamen zurückgegeben und steht zur Neuzuweisung an den nächsten anonymen Benutzer zur Verfügung.
  • ZUSAMMENFASSUNG
  • In einigen Ausführungsformen der Erfindung sind ein System und Verfahren zum Segregieren von Zugriff auf dynamischen Inhalt auf mehreren durch einen Webserver gehosteten Websites, während Logon-Handles oder Logon-Merkmale (tokens) zum Teilen unter mehreren Prozessen gecacht werden, bereitgestellt.
  • Wenn eine Anfrage nach dynamischem Inhalt von einer Website empfangen ist, wird sie in diesen Ausführungsformen zuerst einem voreingestellten anonymen Benutzerkonto zugeordnet (z. B. angemeldet als). Ein UserRetriever-Filtermodul ruft dann einen Benutzernamen und Passwort, welche der Website entsprechen, von einer Datenbank ab, welche verschieden von dem Webserver ist und für andere Zwecke benutzt wird (z. B. Abrechnung, Website-Domain-Information, Dienstbereitstellung, Identifizieren, wo Inhalt gespeichert ist). Die Datenbank agiert als eine zentrale Datenquelle für einen Betrieb des Webservers und umgeht das Erfordernis für eine spezialisierte Datenbank, welche lediglich zwischen angefragtem Inhalt und Benutzerkonten, welche für die Anfrage benutzt werden können, abbildet (beispielsweise eine Metabase, welche mit IIS implementiert ist).
  • Basierend auf dem durch das UserRetriever-Modul erhaltenen Benutzernamen und Passwort fragt ein Userlmpersonator-Erweiterungsmodul nach einem Logon-Handle oder Token für diesen Benutzernamen von einem Logon-Cache-Manager an und kann den Benutzernamen und Passwort bereitstellen. Der Cache-Manager meldet sich als dieser Benutzer an (logs on), wenn ein Handeln nicht gecacht ist, verdoppelt dann das angefragte Logon-Handle und gibt es zurück. In diesen Ausführungsformen der Erfindung ist das Benutzerkonto mit geeigneten Rechten konfiguriert, um auf den angefragten Inhalt zuzugreifen, nicht aber andere Websites auf demselben Server oder Filer zu betrachten, zu modifizieren oder mit diesen zu interagieren.
  • Das Logon-Handle ist an die Anfrage gebunden, so dass die Anfrage unter Benutzung des imitierten Benutzerkontos anstatt des voreingestellten anonymen Benutzerkontos, welchem die Anfrage anfänglich zugeordnet war, beendet wird. Der dynamische Inhalt wird abgerufen und als dieses spezifische, eingeschränkte, imitierte Benutzerkonto geliefert; daher können auf diesem Ausführungsthread operierende Kommandos nur auf Ressourcen zugreifen, welche explizit erteilte Rechte für diesen Benutzer haben. Nachdem der Inhalt abgerufen ist oder die Skript-Verarbeitung beendet ist, wird das angewendete Logon-Handle abgezogen und die Anfrage wird wieder dem voreingestellten anonymen Benutzerkonto zugeordnet, bevor die Anfrage terminiert wird.
  • In einigen Ausführungsformen kann eine Imitierung von Benutzerkonten, um Zugriff auf Inhalt einer Website auf ein Benutzerkonto zu beschränken, welches dieser Site entspricht, wie oben beschrieben, implementiert werden, ohne Logon-Handles zu cachen.
  • Figurenliste
    • 1 ist ein Blockdiagramm, welches eine Webhosting-Umgebung zeigt, in welcher Ausführungsformen der vorliegenden Erfindung implementiert werden können.
    • 2 ist ein Flussdiagramm, welches ein Verfahren eines Segregierens von anonymem Zugriff auf dynamischen Inhalt in einer Webhosting-Umgebung in Übereinstimmung mit einer Ausführungsform der Erfindung illustriert.
    • 3 ist ein Flussdiagramm, welches ein Verfahren eines Cachens von Logon-Handles zur Benutzung in mehreren gleichzeitigen Prozessen in einer Webhosting-Umgebung in Übereinstimmung mit einer Ausführungsform der Erfindung illustriert.
    • 4 zeigt eine Datenstruktur zum Anfragen nach einem gecachten Logon-Handle in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung ist präsentiert, um irgendeinem Fachmann in der Technik zu ermöglichen, die Erfindung durchzuführen und zu benutzen, und ist in dem Kontext von bestimmten Anwendungen der Erfindung und ihrer Anforderungen bereitgestellt. Verschiedene Modifikationen zu den offenbarten Ausführungsformen werden für die Fachleute in der Technik leicht offensichtlich sein und die hierin definierten allgemeinen Prinzipien können auf andere Ausführungsformen und Anwendungen angewendet werden, ohne von dem Geltungsbereich der vorliegenden Erfindung abzuweichen. Somit ist die vorliegende Erfindung nicht beabsichtigt, auf die gezeigten Ausführungsformen begrenzt zu sein, sondern ist in dem breitesten Geltungsbereich zu gewähren, welcher mit den hierin offenbarten Prinzipien und Merkmalen konsistent ist.
  • In einigen Ausführungsformen der Erfindung sind ein System und ein Verfahren zum Segregieren oder Isolieren von Inhalt von Kunden in einem Webserver, welcher dynamischen Inhalt (z. B. Skripte, ausführbare Daten) für mehrere Kunden (wobei jeder Kunde eine gehostete Website repräsentiert), derart liefert, dass der dynamische Inhalt jedes Kunden gehindert ist, ohne Erlaubnis auf Daten anderer Kunden zuzugreifen, bereitgestellt.
  • In einer Implementierung verbinden sich Betrachter (z. B. Internet-Benutzer) mit dem Webserver anonym (und sind anfänglich einem voreingestellten anonymen Benutzerkonto zugeordnet). Basierend auf dem Inhalt, nach dem sie angefragt haben, werden sie (oder ihre Anfragen) dann in einem Benutzerkonto angemeldet (logged), welches dem Kunden zugeordnet ist, der den angefragten Inhalt besitzt. Diesem Benutzerkonto werden Zugriffsrechte für den Inhalt des zugeordneten Kunden zugeteilt, diesem Benutzerkonto wird aber verwehrt, auf Inhalt anderer Kunden zuzugreifen. Weil das Benutzerkonto, wie der Inhalt, durch das Betriebssystem definiert ist, kann der Betriebssystemmechanismus zum Kontrollieren von Ressourcenzugriff (z. B. eine Zugriffskontrollliste (Access Control List) oder ACL)) ausgenutzt werden.
  • In einigen Ausführungsformen der Erfindung ist ein Schema zum Cachen von Anmeldungssitzungen auf einem Webserver bereitgestellt. Diese Ausführungsform kann implementiert werden, um zu erlauben, dass eine einzelne Anmeldung (logon) in ein Benutzerkonto, welches einer Kunden-Website zugeordnet ist, unter mehreren Prozessen geteilt wird, welche Anfragen nach Inhalt von dieser Website handhaben. Performance des Webservers ist erhöht, weil er nicht für jede Anfrage, welche auf diese Website abzielt, einen Domain-Controller oder einen anderen Authentifizierungsagenten aufrufen muss, und das Caching wird durch einen zentralen Prozess durchgeführt anstatt dass es parallel durch die mehreren Anfragehandhabungsprozesse durchgeführt wird.
  • 1 ist ein Blockdiagramm einer Webhosting-Umgebung, in welcher einige Ausführungsformen der Erfindung implementiert werden können. Filer(s) 110, welche irgendeine Zahl von Filern oder Dateiservern (fileservers) umfassen können, speichern Inhalt von ungefähr einhunderttausend Kunden-Websites. Ähnlich arbeiten Webserver(s) 120 kooperativ, um Betrachtern 140 Kundeninhalt zu liefern. Betrachter/Benutzer können sich direkt oder durch ein Lokal- oder Fernbereichsnetzwerk (z. B. das Internet) mit den Webservern verbinden.
  • Filers 110 und Webserver 120 können nebeneinander stehen oder geografisch verteilt sein. Jeder Webserver ist in der Lage, Inhalt von jeder Kunden-Site unabhängig davon, auf welchem Filer der Inhalt gespeichert ist und welche Website den Inhalt besitzt, zu liefern.
  • Datenbank 150 kann durch die Organisation betrieben werden, welche Webserver 120 betreibt, und speichert operationale Daten und/oder Managementdaten, wie etwa die Adressen/Orte von Filer(n) 110, Orte von Inhalt oder Pfade zu Inhalt von Kunden, welches Benutzerkonto zum Zugriff auf Inhalt jedes Kunden (und das entsprechende Passwort) zu verwenden ist, Abrechnungsdatensätze, Dienstbereitstellungsinformation (z. B. Plattenplatz, Bandbreite), Website-Domain-Name(n), Login- und Benutzungsstatistik, Vermarktungsinformation, etc. Viele dieser Attribute sind nicht in einer Metabase gespeichert.
  • Ein Webserver 120 umfasst IIS (Internet Information Services)-Software 122 oder irgendeine andere Webservice-Software (z. B. Apache). Der Webserver ist konfiguriert, durch den Kunden angebotenen dynamischen Inhalt, wie etwa Skripte und/oder ausführbare Dateien, zu liefern (serve). Illustrative Skriptsprachen, welche unterstützt sein können, umfassen, sind jedoch nicht darauf beschränkt, PHP, ASP (Acitve Server Pages) und JSP (Java Server Pages). Daher umfasst Webserver 120 Maschinen, Interpreter oder Parser, wie benötigt, um die Skriptsprachen zu unterstützten, wie durch PHP-Maschine 122 exemplifiziert.
  • Webserver 120 umfasst auch verschiedene ISAPI (Internet Server Application Programming Interface)-Filter und -Erweiterungen, wie etwa UserRetriever-Modul 124 (ein ISAPI-Filter) und Userlmpersonator-Modul 126 (eine ISAPI-Erweiterung).
  • In der illustrierten Ausführungsform der Erfindung ist UserRetriever 124 konfiguriert, auf Datenbank 150 zuzugreifen, wenn eine Betrachteranfrage nach Inhalt bei Webserver 120 empfangen ist. Das UserRetriever-Modul ruft einen Benutzernamen und ein Passwort ab, welches für die Anfrage (basierend auf der Inhaltanfrage) zu benutzen ist und möglicherweise andere Information (z. B. Stelle des angefragten Inhalts oder Pfad zu dem angefragten Inhalt).
  • Einiges oder ein Gesamtes der abgerufenen Information wird an Userlmpersonator 126 übergeben, welcher ein Anmeldungsmerkmal (logon token) für das Benutzerkonto an den Thread bindet, welcher eine Betracherinhaltanfrage abwickelt. Die Anfrage wird dann an eine Skriptmaschine (script engine) oder einen anderen Prozess übergeben, welcher konfiguriert ist, tatsächlich den Inhalt abzurufen und zu liefern, während das durch UserRetriever 124 identifizierte Benutzerkonto imitiert (impersonate) wird.
  • Insbesondere ruft ein Prozess oder ein Thread, welcher eine Inhaltanfrage bedient, (z. B. eine Instanz von Userlmpersonator 126) Cache-Manager 128 mit dem vorher von Datenbank 150 abgerufenen Benutzernamen und Passwort, anstatt die Anmeldung (logon) selbst durchzuführen. Der Cache-Manager durchsucht seinen Cache nach einem Logon-Handle für dieses Benutzerkonto, verdoppelt das Handle und gibt es an den Anfrager zurück. Wenn es nicht gefunden wird, ruft er den geeigneten Anmeldungsdienst (logon service) auf (z. B. Windows' LogonUser), cacht das resultierende Handle, verdoppelt es und liefert es an den Anfrager.
  • Wie oben angezeigt, hält Cache-Manager 128 einen Cache von Logon-Handles oder Tokens zum Teilen unter den Prozessen und/oder Threads, welche Inhaltanfragen bedienen (serve). Der Cache (in 1 nicht gezeigt) kann eine Hash-Tabelle (hash table), eine Datenbank, eine flache Datei (flat file) oder irgendeine andere Struktur umfassen.
  • In einigen Ausführungsformen der Erfindung kann Cache-Manager 128 ausgelassen werden, in welchem Fall Logon-Handles für Benutzerkonten nicht gecacht werden müssen. Stattdessen kann jede Instanz von Userlmpersonator 126 das geeignete Anmeldungsdienstprogramm (logon utility) direkt aufrufen.
  • In einigen anderen Ausführungsformen der Erfindung können entweder UserRetriever 124 oder Userlmpersonator 126 oder beide gemeinsam ausgelassen werden oder durch andere Entitäten ersetzt werden, welche dieselben oder ähnliche Funktionen durchführen. In noch anderen Ausführungsformen kann irgendeine der in 1 illustrierten Komponenten kombiniert oder weiter unterteilt sein.
  • 2 ist ein Flussdiagramm, welches ein Verfahren eines Erleichterns des Lieferns von dynamischem Inhalt von mehreren Kunden-Websites, ohne zu erlauben, dass Inhalt eines Kunden auf Inhalt eines anderen zugreift, gemäß einer Ausführungsform der vorliegenden Erfindung demonstriert.
  • In Operation 202 fragt ein Betrachter über seinen oder ihren Browser nach dynamischem Inhalt von einer Kunden-Website an (z. B. z.php). Obwohl das illustrierte Verfahren der Erfindung beschrieben ist, wie es in Bezug auf ein PHP-Skript durchgeführt werden kann, werden gewöhnliche Fachleute in der Technik schätzen, wie dieses Verfahren modifiziert werden kann, um mit anderen Typen von dynamischem Inhalt zu arbeiten (z. B. ASP-Skripte, JSP-Skripte, ausführbare Bilder), ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen.
  • In Operation 204 wird die Anfrage des Betrachters an einen Webserver geliefert. In einer illustrativen Implementierung dieser Ausführungsform der Erfindung kann eine Organisation ein Cluster, eine Farm oder eine andere kooperative Zusammenstellung von mehreren Webservern (z. B. 5, 10) betreiben, von denen jeder in der Lage ist, Inhalt für jeden Kunden der Organisation zu liefern, von welchen Kunden es mehr als einhunderttausend geben kann. Ein Lastausgleicher (load balancer), Router oder eine andere Entität kann benutzt werden, Anfragen unter den Servern zu verteilen.
  • Betrachteranfragen können unter irgendeiner Zahl von Threads und/oder Prozessen verteilt werden. Zum Beispiel wird jede Anfrage einem verschiedenen Thread in einem Pool von Threads zugewiesen und irgendeine Anzahl von Threads kann durch einen gegebenen Prozess abgewickelt werden. In einer Implementierung wird jedoch ein Round-Robin (oder ein anderes Ablaufschema) benutzt, um Betrachterinhaltanfragen unter mehreren Prozessen (z. B. 100) zu verteilen. Die Anzahl von Prozessen ist begrenzt, um Ressourcen-Wettbewerb zu minimieren und Prozessisolation zu begünstigen, was Stabilität und Sicherheit erhöht. Dies hilft sicherzustellen, dass das Erleben jedes Betrachters soviel wie möglich von Erleben anderer Betrachter entkoppelt ist.
  • In Operation 206 hört ein Horcher (listener) auf dem Webserver die Anfrage und bindet daran einen Sicherheitskontext für einen voreingestellten anonymen Benutzer. In verschiedenen Ausführungsformen der Erfindung kann verschiedene Webserver-Software ausgeführt werden, wie etwa IIS, Apache, Lighttpd, nginx, etc. Auch ruft in Operation 206 der Webserver UserRetriever 124 (der 1) oder einen anderen kundenspezifischen ISAPI-Filter oder eine ähnliche Entität auf.
  • In Operation 208 führt der UserRetriever-Filter ein Nachschauen in einer Datenbank durch, welche nicht eng an den Webserver gebunden ist. Wenn der Webserver IIS ist, wird somit das Nachschauen nicht in der zugeordneten Metabase durchgeführt.
  • Insbesondere wird die Datenbank durch den Operator des Webservers zusätzlich zum Identifizieren von Benutzerkonten zur Benutzung für Segregieren von anonymem Zugriff auf dynamischen Inhalt von verschiedenen Websites für andere Zwecke benutzt. Zum Beispiel kann die Datenbank für Abrechnung von Kunden-Websites, Nachverfolgen von Verkehrsmustern (tracking traffic patterns), etc. verwendet werden. Weil die Datenbank aktualisiert wird, immer wenn sich eine Konfiguration der Webdienstumgebung ändert (z. B. wenn eine Website ihren Namen ändert, eine Website hinzugefügt oder entfernt wird), wird sie immer die momentane Konfiguration reflektieren.
  • Wenn an Stelle dieser separaten Datenbank zum Identifizieren von Benutzerkonten zu benutzen, um auf Anfragen nach dynamischem Inhalt anzuwenden, eine dem Webserver zugeordnete oder an diesen gebundene Datenbank benutzt würde, um zu bestimmen, welches Benutzerkonto für eine Inhaltanfrage anzuwenden ist (z. B. die Metabase, welche IIS aufnimmt), würde sich eine unnötige Verdopplung ergeben. Dies würde den Prozess eines Handhabens einer Webserver-Konfiguration und -Operation signifikant komplizieren (z. B. müsste Synchronisierung aufrechterhalten werden) und würde auch Skalierbarkeitsprobleme einführen, wie oben beschrieben.
  • Das Nachschauen in der Datenbank basiert auf dem angefragten Inhaltartikel (content item) (z. B. die exakte URL, nach welcher angefragt wurde, ein Muster, welches mit der angefragten URL übereinstimmt) und gibt einen Benutzernamen und ein Passwort zurück, was benutzt wird, dem Anfragethread einen verschiedenen Sicherheitskontext zuzuweisen - einem Kunden1 zugeordneten Kontext. Das Nachschauen kann auch eine Stelle (location) des angefragten Inhalts (z. B. Pfad, Netzwerkadresse) zurückgeben.
  • In dieser Ausführungsform der Erfindung wird Zugriff auf die Filer, Dateiserver oder andere Speichergeräte, welche Kundeninhalt enthalten, durch Zugriffskontrolllisten oder andere durch das Betriebssystem durchgesetzte Mittel kontrolliert. Jeder Kunde ist (in der Datenbank) einem Benutzerkonto zugeordnet, welches die richtigen Sicherheitsberechtigungen zum Zugreifen auf Inhalt dieses Kunden, aber nicht auf Inhalt anderer Kunden hat.
  • Nachdem das Nachsehen beendet ist, wird die Kontrolle des Threads an den Webserver zurückgegeben. Der Webserver ruft eine kundenspezifiche ISAPI-Erweiterung auf, welche PHP-Skripten zugeordnet ist - in diesem Fall Userlmpersonator 126 der 1. Verschiedene kundenspezifische ISAPI-Erweiterungen können für verschiedene Typen von dynamischem Inhalt konfiguriert sein oder mehrere Typen können durch eine einzige kundenspezifische Erweiterung abgewickelt werden. Mehrere Instanzen von Userlmpersonator können parallel, in separaten Prozessen ausführen.
  • In Operation 210 bindet Userlmpersonator ein Logon-Token für den in dem Nachschauen von Operation 208 abgerufenen Benutzernamen (z. B. Kundenbenutzer1) unter Benutzung des abgerufenen Passwortes an den Anfragethread und setzt den Threadkontext, um mit diesem Benutzerkonto übereinzustimmen.
  • In verschiedenen Ausführungsformen der Erfindung kann Userlmpersonator das Logon-Token oder Logon-Handle in verschiedenen Weisen erhalten. 3 beschreibt zum Beispiel ein Verfahren, in welchem ein Cache-Manager (z. B. Cache-Manager 128 der 1) Logon-Handles zum Teilen unter mehreren Prozessen cacht. In anderen Ausführungsformen der Erfindung kann Userlmpersonator ein Logon-Handle durch Aufrufen des geeigneten Logon-Dienstprogramms oder -Dienstes (z. B. Windows' LogonUser) direkt erhalten.
  • In Operation 212 wird eine Maschine (engine), ein Interpreter, Parser oder ein anderes Modul, welches in der Lage ist, den angefragten Inhalt auszuführen, aufgerufen, wie etwa eine PIP-Maschine. Die PHP-Maschine ruft den angefragten Inhalt ab (z. B. unter Benutzung des durch UserRetriever identifizierten Pfades) und zergliedert (parst) den Inhalt und führt den Inhalt aus. Weil das Skript innerhalb des dem Besitzer des angefragten Inhalts zugeordneten Sicherheitskontexts ausgeführt wird, kann der Inhalt korrekt ablaufen, aber ohne die Gelegenheit, Daten anderer Kunden zu berühren. Kontrolle des Threads wird dann an das Userlmpersonator-Modul zurückgegeben.
  • In Operation 214 werden der imitierte (impersonated) Sicherheitskontext und das Logon-Token abgezogen und der voreingestellte anonyme Benutzerkontext kann wieder daran gebunden werden, und das Verfahren endet.
  • 3 ist ein Flussdiagramm, welches ein Verfahren zum Cachen von Logon-Handles auf einem Webserver zur Benutzung durch mehrere Prozesse zum Liefern von Inhalt gemäß einer Ausführungsform der Erfindung zeigt.
  • In Operation 302 wird eine Anfrage nach Inhalt von einer von mehreren Websites, welche auf einem Webserver gehostet sind, bei dem Webserver empfangen. Der Webserver kann nur ein Server von mehreren sein, welche kooperativ arbeiten, um Redundanz und Performance zu fördern, aber jeder Server ist konfiguriert, Inhalt für jede der Websites zu liefern. Mit anderen Worten, müssen Inhaltanfragen nicht an einen spezifischen Webserver (oder Untermenge von Servern) geleitet (routed) werden, welcher konfiguriert ist, nur einen Teil des Inhalts aller Websites zu liefern.
  • In Operation 304 wird ein Benutzerkonto mit einem Sicherheitskontext, welcher auf die Anfrage anzuwenden ist, identifiziert. In einer Implementierung kann das Konto, wie oben in Verbindung mit 2 beschrieben, identifiziert werden (z. B. durch Beziehen auf eine von dem Webserver getrennte Datenbank).
  • Insbesondere kann ein voreingestelltes anonymes Benutzerkonto und Sicherheitskontext auf die Anfrage angewendet werden, wenn sie bei dem Webserver empfangen ist, wonach ein kundenspezifisches Software-Modul aufgerufen werden kann, um Name und Passwort des Zielbenutzerkontos von einer von dem Webserver separaten Datenbank abzurufen. Verschiedene Benutzerkonten können für jede durch den/die Server gehostete Website spezifiziert werden.
  • In Operation 306 ruft ein Webserver-Prozess, welcher konfiguriert ist, Abwickeln der Inhaltanfrage zu erleichtern, einen Logon-Cache-Manager, einen anderen Prozess, welcher auf dem Server ausführt. Der Logon-Cache-Manager ist konfiguriert, einen Cache von Logon-Handles für die verschiedenen in der Datenbank identifizierten Benutzerkonten handzuhaben. Der aufrufende Prozess identifiziert sich selbst (z. B. durch eine Prozess-ID) und liefert das Benutzerkonto und Passwort für das Logon-Handle, welches er benötigt.
  • In Operation 308 durchsucht der Cache-Manager seinen Cache nach einem Logon-Handle, welches mit dem spezifizierten Benutzerkonto zusammenpasst. Wenn er eine Übereinstimmung findet, schreitet das Verfahren zu Operation 314 fort; andernfalls wird es bei Operation 310 fortgesetzt.
  • In Operation 310 ruft der Cache-Manager ein Anmeldungsdienstprogramm oder -dienst (logon utility or service) des Betriebssystems unter Benutzung des spezifischen Benutzernamens und des Passworts auf.
  • In Operation 312 empfängt der Cache-Manager ein Logon-Handle für das Benutzerkonto und speichert es indem Cache. Das Logon-Handle kann wie notwendig zum Beispiel in einen ganzzahligen Wert konvertiert werden.
  • In Operation 314 verdoppelt der Cache-Manager das Logon-Handle für das spezifizierte Benutzerkonto unter Benutzung eines Dienstprogrammes oder eines Dienstes, welches bzw. welcher durch das Betriebssystem angeboten ist (z. B. DuplicateHandle für Windows), für die durch den aufrufenden Prozess gelieferte Prozess-id.
  • In Operation 316 überträgt der Cache-Manager das Logon-Handle an den aufrufenden Prozess. In einer Implementierung kommunizieren der Cache-Manager und der aufrufende Prozess über benannte Pipes (named pipes), obwohl andere Verfahren einer Interprozess-Kommunikation in anderen Implementierungen eingesetzt werden können.
  • In Operation 318 bindet der aufrufende Prozess das verdoppelte Logon-Handle oder -Token an den der Inhaltanfrage zugeordneten Thread. Der Prozess fährt dann fort, die Anfrage aufzulösen oder übergibt sie einer anderen Entität, wie erforderlich (z. B. einer Skript-Maschine, welche konfiguriert ist, den Inhalt abzurufen und auszuführen, falls er ein Skript umfasst).
  • In einigen Ausführungsformen der Erfindung wird der Sicherheitskontext und das Logon-Handle des Zielbenutzerkontos von der Anfrage abgezogen, bevor die Anfrage terminiert wird.
  • 4 zeigt eine Datenstruktur zum überführen einer Anfrage nach einem Logon-Handle an einen Logon-Cache-Manager gemäß einer Ausführungsform der Erfindung. In dieser Ausführungsform umfasst Logon-Handle-Anfragestruktur 410 Version 412, Größenfelder 414, 416, 418, Prozess-ID 424, Zielbenutzername 426 und Zielpasswort 428.
  • Prozess-ID 424 identifiziert den Prozess, welcher dem Logon-Cache-Manager die Logon-Handle-Anfrage unterbreitet hat, Zielbenutzername 426 identifiziert das Benutzerkonto, für welches nach einem Logon-Handle angefragt worden ist, und Zielpasswort ist das Passwort des Benutzerkontos, welches der Logon-Cache-Manager benötigen kann, um sich auf dieses Konto anzumelden (wenn ein Logon-Handle für das Konto momentan nicht gecacht ist). Größenfelder 414, 416 und 418 identifizieren die Größen von Datenfeldern 424, 426 bzw. 428.
  • Ein gewöhnlicher Fachmann in der Technik wird schätzen, dass Datenstrukturen mit anderen Formen entwickelt werden können, um das Cachen und Teilen von Logon-Handles zu erleichtern, ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen.
  • Die Programmumgebung, in welcher eine vorliegende Ausführungsform der Erfindung ausgeführt ist, inkorporiert illustrativ einen Computer zum allgemeinen Zweck oder ein Gerät für einen Spezialzweck, wie etwa ein handgehaltener Computer. Details solcher Geräte (z. B. Prozessor, Speicher, Datenspeicher, Anzeige) können zum Zwecke einer Klarheit ausgelassen werden.
  • Es sollte auch verstanden werden, dass die Techniken der vorliegenden Erfindung unter Benutzung verschiedener Technologien implementiert werden können. Zum Beispiel können die hierin beschriebenen Verfahren in Software implementiert werden, welche auf einem Computersystem ausführt, oder können in Hardware implementiert sein, welche entweder eine Kombination von Mikroprozessoren oder andere speziell entworfene anwendungsspezifische integrierte Schaltkreise, programmierbare Logikgeräte oder verschiedene Kombinationen davon benutzt.
  • Insbesondere können hierin beschriebene Verfahren unter Benutzung von Datenstrukturen und Programmcode, welche bzw. welcher auf einem geeigneten computerlesbaren Medium gelegen sind bzw. ist, was irgendein Gerät oder Medium sein kann, welches Daten und/oder Code für Benutzung durch ein Computersystem speichern kann, implementiert werden. Dies umfasst, ist jedoch nicht darauf beschränkt, volatilen Speicher, nicht-volatilen Speicher, magnetische und optische Speichergeräte, wie etwa Plattenlaufwerke, magnetische Bänder, CDs (Kompakt-Disks), DVDs (digitale vielfältige Platten oder digitale Videoplatten) oder andere Medien, welche in der Lage sind, computerlesbare Medien, welche nun bekannt oder später entwickelt werden, zu speichern.
  • Die vorangehenden Ausführungsformen der Erfindung sind nur für Illustrations- und Beschreibungszwecke präsentiert worden. Sie sind nicht beabsichtigt, erschöpfend zu sein oder die Erfindung auf die offenbarten Formen zu begrenzen. Demgemäß ist der Geltungsbereich der Erfindung durch die angehängten Ansprüche, nicht die vorgehende Offenbarung definiert.

Claims (18)

  1. Automatisches Verfahren zum Imitieren eines Benutzerkontos, welches einer Website zugeordnet ist, um Inhalt von dieser Website zu liefern, wobei das Verfahren umfasst: Empfangen (204) einer Anfrage nach Inhalt einer ersten Website bei einem Webserver (120); Zuordnen (206) der Anfrage zu einem voreingestellten anonymen Benutzerkonto auf dem Webserver (120); Identifizieren (208) eines ersten der ersten Website entsprechenden Benutzerkontos in einer von dem Webserver (120) getrennten Datenbank (150), wobei das erste Benutzerkonto mit einer Erlaubnis konfiguriert ist, auf Inhalt der ersten Website, aber nicht auf Inhalt einer zweiten Website zuzugreifen; Suchen (306-316) nach einem gecachten Logon-Handle für das erste Benutzerkonto; Zuordnen (210) der Anfrage zu dem gecachten Logon-Handle für das erste Benutzerkonto anstatt zu dem voreingestellten anonymen Benutzerkonto; Liefern (212) des angefragten Inhalts; und Wiederzuordnen (214) der Anfrage zu dem voreingestellten anonymen Benutzerkonto anstatt zu dem ersten Benutzerkonto.
  2. Verfahren nach Anspruch 1, wobei: der angefragte Inhalt dynamischen Inhalt umfasst; und das Liefern Aufrufen einer Entität umfasst, welche konfiguriert ist, den dynamischen Inhalt auszuführen.
  3. Verfahren nach Anspruch 1, wobei das Zuordnen (210) der Anfrage zu einem voreingestellten anonymen Benutzerkonto Binden (318) eines Logon-Handles für ein Benutzerkonto, unter welchem im Wesentlichen alle anonymen Anfragen nach Inhalt angemeldet sind, an die Anfrage umfasst.
  4. Verfahren nach Anspruch 1, wobei die Datenbank (150) zusätzlich zu einer Abbildung von gegebenem Website-Inhalt auf ein gegebenes Benutzerkonto zur Benutzung zum Zugreifen auf den gegebenen Website-Inhalt Information zum Handhaben eines Betriebs des Webservers (120) umfasst.
  5. Verfahren nach Anspruch 4, wobei die Information einen Pfad zu dem angefragten Inhalt umfasst.
  6. Verfahren nach Anspruch 4, wobei die Information eine oder mehr von: Abrechnungsdaten; Dienstbereitstellungsinformation; Attributen der Website; und Benutzungsstatistik der Website umfasst.
  7. Verfahren nach Anspruch 1, wobei die Datenbank (150) keine Metabase ist, welche mit Internet-Informationsdienst-Software implementiert ist.
  8. Verfahren nach Anspruch 1, wobei das Suchen (306-316) nach einem gecachten Logon-Handle umfasst: Aufrufen (306) eines Logon-Cache-Managers (128), welcher konfiguriert ist, Logon-Handles zum Teilen unter mehreren Prozessen, welche auf dem Webserver (120) ausführen, um Inhalt zu liefern, zu cachen; und bei dem Logon-Cache-Manager (128): Durchsuchen (308) eines Caches nach einem Logon-Handle für das erste Benutzerkonto; Einloggen (310) in das erste Benutzerkonto, wenn das Durchsuchen des Caches fehlschlägt; Verdoppeln (314) des Logon-Handles für das erste Benutzerkonto; und Zurückgeben (316) des verdoppelten Logon-Handles.
  9. Verfahren nach Anspruch 1, wobei das Zuordnen (206) der Anfrage zu dem ersten Benutzerkonto Binden (206) des Logon-Handles an einen der Anfrage zugeordneten Ausführungsthread umfasst.
  10. Verfahren nach Anspruch 1, wobei: das Suchen (306-316) nach einem gecachten Logon-Handle Übertragen einer Anfrage nach dem Logon-Handle für das erste Benutzerkonto an einen Logon-Cache-Manager umfasst; und die Anfrage nach dem Logon-Handle einen Namen des ersten Benutzerkontos, ein Passwort für das erste Benutzerkonto und einen Identifikator eines die Anfrage nach dem Logon-Handle stellenden Prozesses umfasst.
  11. Verfahren nach Anspruch 1, wobei das Wiederzuordnen (214) der Anfrage zu dem voreingestellten anonymen Benutzerkonto Abziehen des Logon-Handles für das erste Benutzerkonto von der Anfrage umfasst.
  12. Computerlesbares Medium, welches Anweisungen speichert, welche, wenn durch einen Computer ausgeführt, dazu führen, dass der Computer ein Verfahren zum Imitieren eines Benutzerkontos, welches einer Website zugeordnet ist, um Inhalt von dieser Website zu liefern, durchzuführt, wobei das Verfahren umfasst: Empfangen (204) einer Anfrage nach Inhalt einer ersten Website bei einem Webserver (120); Zuordnen (206) der Anfrage zu einem voreingestellten anonymen Benutzerkonto auf dem Webserver (120); Identifizieren (308) eines ersten der ersten Website entsprechenden Benutzerkontos in einer von dem Webserver (120) getrennten Datenbank (150), wobei das erste Benutzerkonto mit einer Erlaubnis konfiguriert ist, auf Inhalt der ersten Website, aber nicht auf Inhalt einer zweiten Website zuzugreifen; Suchen (306-316) nach einem gecachten Logon-Handle für das erste Benutzerkonto; Zuordnen (210) der Anfrage zu dem gecachten Logon-Handle für das erste Benutzerkonto anstatt zu dem voreingestellten anonymen Benutzerkonto; Liefern (212) des angefragten Inhalts; und Wiederzuordnen (214) der Anfrage zu dem voreingestellten anonymen Benutzerkonto anstatt zu dem ersten Benutzerkonto.
  13. Computerserver (120), welcher konfiguriert ist, dynamischen Inhalt von mehreren Websites zu liefern, wobei der Computerserver (120) umfasst: Webserver-Software, welche konfiguriert ist, eine Anfrage nach dynamischem Inhalt von einer ersten Website zu empfangen und der Anfrage ein voreingestelltes anonymes Benutzerkonto zuzuordnen; einen Webserver-Filter, welcher konfiguriert ist, in einer von dem Webserver (120) getrennten Datenbank (150) ein Kundenbenutzerkonto zum Zugreifen auf Inhalt von der ersten Website zu identifizieren; eine Webserver-Erweiterung, welche konfiguriert ist, um: von einem Cache-Manager (128) nach einem Logon-Handle für das Kundenbenutzerkonto anzufragen; das Logon-Handle an die Anfrage nach dem dynamischen Inhalt zu binden; und nachdem der angefragte dynamische Inhalt ausgeführt ist, das Logon-Handle von der Anfrage zu entfernen.
  14. Computerserver (120) nach Anspruch 13, weiterhin umfassend den Cache-Manager (128), welcher konfiguriert ist, um: die Anfrage nach dem Logon-Handle zu empfangen; einen Cache nach dem Logon-Handle zu durchsuchen; sich unter dem Kundenbenutzerkonto anzumelden, wenn das Durchsuchen des Caches nicht erfolgreich ist; das Logon-Handle zu verdoppeln; und das verdoppelte Logon-Handle an die Webserver-Erweiterung zurückzugeben.
  15. Computerserver (120) nach Anspruch 14, wobei die Anfrage nach dem Logon-Handle umfasst: einen Namen (426) des Kundenbenutzerkontos; ein Passwort (428) des Kundenbenutzerkontos; und einen Prozessidentifikator (424) der Webserver-Erweiterung.
  16. Computerserver (120) nach Anspruch 13, wobei der Cache-Manager das Logon-Handle zur Benutzung durch mehrere Instanzen der Webserver-Erweiterung, welche auf dem Webserver ausführen, cacht.
  17. Computerserver (120) nach Anspruch 13, weiterhin umfassend eine Verbindung zu der Datenbank (150), wobei die Datenbank (150) keine Metadatenbank ist, welche konfiguriert ist, mit Internet-Informationdienste-Software (122) zu arbeiten.
  18. Computerserver (120) nach Anspruch 13, wobei die Datenbank (150) zusätzlich zu einer Abbildung des angefragten dynamischen Inhalts auf das Kundenbenutzerkonto Information zum Erleichtern eines Handhabens des Webservers (120) umfasst.
DE102009049674.2A 2008-10-17 2009-10-16 Segregieren von anonymem Zugriff auf dynamischen Inhalt auf einem Webserver mit gecachedten Anmeldungen Active DE102009049674B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/253,775 2008-10-17
US12/253,775 US8032930B2 (en) 2008-10-17 2008-10-17 Segregating anonymous access to dynamic content on a web server, with cached logons

Publications (2)

Publication Number Publication Date
DE102009049674A1 DE102009049674A1 (de) 2010-04-22
DE102009049674B4 true DE102009049674B4 (de) 2022-12-29

Family

ID=41402909

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009049674.2A Active DE102009049674B4 (de) 2008-10-17 2009-10-16 Segregieren von anonymem Zugriff auf dynamischen Inhalt auf einem Webserver mit gecachedten Anmeldungen

Country Status (5)

Country Link
US (2) US8032930B2 (de)
CN (1) CN101729597B (de)
AU (1) AU2009222468B2 (de)
DE (1) DE102009049674B4 (de)
GB (1) GB2464397B (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990674B1 (en) 2007-12-14 2018-06-05 Consumerinfo.Com, Inc. Card registry systems and methods
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US8060424B2 (en) 2008-11-05 2011-11-15 Consumerinfo.Com, Inc. On-line method and system for monitoring and reporting unused available credit
US20100325687A1 (en) * 2009-06-22 2010-12-23 Iverson Gyle T Systems and Methods for Custom Device Automatic Password Management
US9160545B2 (en) * 2009-06-22 2015-10-13 Beyondtrust Software, Inc. Systems and methods for A2A and A2DB security using program authentication factors
US8863253B2 (en) * 2009-06-22 2014-10-14 Beyondtrust Software, Inc. Systems and methods for automatic discovery of systems and accounts
JP5152539B2 (ja) * 2010-10-27 2013-02-27 横河電機株式会社 ユーザ認証システム
US8554645B1 (en) * 2011-01-04 2013-10-08 Intuit Inc. Method and system for identifying business expenditures with vendors and automatically generating and submitting required forms
US8590025B2 (en) * 2011-05-17 2013-11-19 Autonomy, Inc. Techniques for accessing a backup system
US9483606B1 (en) 2011-07-08 2016-11-01 Consumerinfo.Com, Inc. Lifescore
US20130042312A1 (en) * 2011-08-09 2013-02-14 Mobileframe Llc Authentication in a smart thin client server
US9053444B2 (en) 2011-08-09 2015-06-09 Mobileframe, Llc Deploying applications in a smart thin client server
US9049174B2 (en) 2011-08-09 2015-06-02 Mobileframe, Llc Maintaining sessions in a smart thin client server
US9106691B1 (en) 2011-09-16 2015-08-11 Consumerinfo.Com, Inc. Systems and methods of identity protection and management
US8738516B1 (en) 2011-10-13 2014-05-27 Consumerinfo.Com, Inc. Debt services candidate locator
US9547665B2 (en) 2011-10-27 2017-01-17 Microsoft Technology Licensing, Llc Techniques to determine network storage for sharing media files
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
US9853959B1 (en) 2012-05-07 2017-12-26 Consumerinfo.Com, Inc. Storage and maintenance of personal data
CN103685165A (zh) * 2012-09-06 2014-03-26 深圳第七大道网络技术有限公司 一种业务处理方法及业务服务器
US8954004B1 (en) 2012-09-20 2015-02-10 Trend Micro Incorporated Systems and methods for accessing websites using smartphones
US9654541B1 (en) 2012-11-12 2017-05-16 Consumerinfo.Com, Inc. Aggregating user web browsing data
US9916621B1 (en) 2012-11-30 2018-03-13 Consumerinfo.Com, Inc. Presentation of credit score factors
US9406085B1 (en) 2013-03-14 2016-08-02 Consumerinfo.Com, Inc. System and methods for credit dispute processing, resolution, and reporting
US10102570B1 (en) 2013-03-14 2018-10-16 Consumerinfo.Com, Inc. Account vulnerability alerts
US10685398B1 (en) 2013-04-23 2020-06-16 Consumerinfo.Com, Inc. Presenting credit score information
US9477737B1 (en) 2013-11-20 2016-10-25 Consumerinfo.Com, Inc. Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules
CN103853504B (zh) * 2014-02-12 2017-04-26 上海爱数信息技术股份有限公司 一种缓存系统数据存取方法
TWI546688B (zh) * 2014-02-18 2016-08-21 群暉科技股份有限公司 對網路位址進行處理的方法及相關的伺服器與非暫態電腦可讀取儲存媒體
US9898349B2 (en) 2015-06-23 2018-02-20 International Business Machines Corporation Management of asynchronous and synchronous resource requests
US10635828B2 (en) 2016-09-23 2020-04-28 Microsoft Technology Licensing, Llc Tokenized links with granular permissions
US10977361B2 (en) 2017-05-16 2021-04-13 Beyondtrust Software, Inc. Systems and methods for controlling privileged operations
WO2019005857A1 (en) * 2017-06-28 2019-01-03 Apple Inc. LAW ENFORCEMENT SYSTEM
US11265324B2 (en) 2018-09-05 2022-03-01 Consumerinfo.Com, Inc. User permissions for access to secure data at third-party
US11315179B1 (en) 2018-11-16 2022-04-26 Consumerinfo.Com, Inc. Methods and apparatuses for customized card recommendations
US10938846B1 (en) 2018-11-20 2021-03-02 Trend Micro Incorporated Anomalous logon detector for protecting servers of a computer network
US11238656B1 (en) 2019-02-22 2022-02-01 Consumerinfo.Com, Inc. System and method for an augmented reality experience via an artificial intelligence bot
GB2584018B (en) 2019-04-26 2022-04-13 Beyondtrust Software Inc Root-level application selective configuration
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923842A (en) 1997-03-06 1999-07-13 Citrix Systems, Inc. Method and apparatus for simultaneously providing anonymous user login for multiple users

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049835A (en) * 1996-08-30 2000-04-11 Internet Media Corporation System for providing easy access to the World Wide Web utilizing a published list of preselected Internet locations together with their unique multi-digit jump codes
US5918228A (en) * 1997-01-28 1999-06-29 International Business Machines Corporation Method and apparatus for enabling a web server to impersonate a user of a distributed file system to obtain secure access to supported web documents
US6067559A (en) * 1998-04-23 2000-05-23 Microsoft Corporation Server architecture for segregation of dynamic content generation applications into separate process spaces
US6338064B1 (en) * 1998-05-14 2002-01-08 International Business Machines Corporation Method for enabling a web server running a “closed” native operating system to impersonate a user of a web client to obtain a protected file
US7016977B1 (en) * 1999-11-05 2006-03-21 International Business Machines Corporation Method and system for multilingual web server
WO2001044894A2 (en) * 1999-12-06 2001-06-21 Warp Solutions, Inc. System and method for dynamic content routing
US7412422B2 (en) * 2000-03-23 2008-08-12 Dekel Shiloh Method and system for securing user identities and creating virtual users to enhance privacy on a communication network
US7020679B2 (en) * 2000-05-12 2006-03-28 Taoofsearch, Inc. Two-level internet search service system
US20030093430A1 (en) * 2000-07-26 2003-05-15 Mottur Peter A. Methods and systems to control access to network devices
US6778986B1 (en) * 2000-07-31 2004-08-17 Eliyon Technologies Corporation Computer method and apparatus for determining site type of a web site
US8972590B2 (en) * 2000-09-14 2015-03-03 Kirsten Aldrich Highly accurate security and filtering software
US7587499B1 (en) * 2000-09-14 2009-09-08 Joshua Haghpassand Web-based security and filtering system with proxy chaining
US20020042789A1 (en) * 2000-10-04 2002-04-11 Zbigniew Michalewicz Internet search engine with interactive search criteria construction
GB0024302D0 (en) * 2000-10-04 2000-11-15 Webtrend Ltd A method of conducting transactions using a distributed computer network such as the internet
TWI257058B (en) * 2000-11-21 2006-06-21 Ibm Anonymous access to a service
US7685224B2 (en) * 2001-01-11 2010-03-23 Truelocal Inc. Method for providing an attribute bounded network of computers
DE60116405T2 (de) * 2001-03-22 2006-09-07 Nortel Networks Ltd., St. Laurent Flexible kundenspezifische Anpassung von Netzwerkdiensten
KR20040020933A (ko) * 2001-06-22 2004-03-09 노사 오모이구이 지식 검색, 관리, 전달 및 프리젠테이션을 위한 시스템 및방법
US6865607B1 (en) * 2001-06-28 2005-03-08 Microsoft Corp. Pluggable channels
US7647320B2 (en) * 2002-01-18 2010-01-12 Peoplechart Corporation Patient directed system and method for managing medical information
US7379203B2 (en) * 2002-03-22 2008-05-27 Laser Substrates, Inc. Data capture during print process
US7353282B2 (en) * 2002-11-25 2008-04-01 Microsoft Corporation Methods and systems for sharing a network resource with a user without current access
US7188216B1 (en) * 2002-12-13 2007-03-06 Vignette Corporation Method and system for an extensible caching framework
AU2003303453A1 (en) 2002-12-30 2004-07-22 Koninklijke Philips Electronics N.V. Anonymous log-in from an information carrier player to a web server
US7072807B2 (en) * 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7739389B2 (en) * 2003-11-20 2010-06-15 International Business Machines Corporation Providing web services from a service environment with a gateway
EP1697886A1 (de) * 2003-12-16 2006-09-06 Sap Ag Systeme und verfahren zur ermöglichung eines annonymen meldens von geschäfts-aktives
US20050182742A1 (en) * 2004-02-18 2005-08-18 Microsoft Corporation Method and system for managing a portal
US7978859B2 (en) * 2005-01-24 2011-07-12 Koninklijke Philips Electronics N.V. Private and controlled ownership sharing
FR2881245A1 (fr) * 2005-01-27 2006-07-28 Roger Marx Desenberg Systeme et procede ameliore pour lister et trouver des biens et des services sur internet
US7350074B2 (en) * 2005-04-20 2008-03-25 Microsoft Corporation Peer-to-peer authentication and authorization
US20060248011A1 (en) * 2005-04-27 2006-11-02 Robert Hecht-Nielsen Secure commerce systems
US7434253B2 (en) * 2005-07-14 2008-10-07 Microsoft Corporation User mapping information extension for protocols
US20080256065A1 (en) * 2005-10-14 2008-10-16 Jonathan Baxter Information Extraction System
US7774459B2 (en) * 2006-03-01 2010-08-10 Microsoft Corporation Honey monkey network exploration
US7818740B2 (en) * 2006-05-05 2010-10-19 Microsoft Corporation Techniques to perform gradual upgrades
US7765195B2 (en) * 2006-11-07 2010-07-27 Microsoft Corporation Trimmed and merged search result sets in a versioned data environment
US8020195B2 (en) * 2007-03-30 2011-09-13 Citrix Systems, Inc. Systems and methods for user login
US7752208B2 (en) * 2007-04-11 2010-07-06 International Business Machines Corporation Method and system for detection of authors
US20080313167A1 (en) * 2007-06-15 2008-12-18 Jim Anderson System And Method For Intelligently Indexing Internet Resources
US8214641B2 (en) * 2007-08-23 2012-07-03 Microsoft Corporation File access in multi-protocol environment
US20090165125A1 (en) * 2007-12-19 2009-06-25 Research In Motion Limited System and method for controlling user access to a computing device
US20130215116A1 (en) * 2008-03-21 2013-08-22 Dressbot, Inc. System and Method for Collaborative Shopping, Business and Entertainment
CA2820983C (en) * 2008-05-18 2019-02-05 Google Inc. Secured electronic transaction system
US8185910B2 (en) * 2008-08-27 2012-05-22 Eric Sven-Johan Swildens Method and system for testing interactions between web clients and networked servers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923842A (en) 1997-03-06 1999-07-13 Citrix Systems, Inc. Method and apparatus for simultaneously providing anonymous user login for multiple users

Also Published As

Publication number Publication date
US9047387B2 (en) 2015-06-02
US20110282909A1 (en) 2011-11-17
US8032930B2 (en) 2011-10-04
GB0917858D0 (en) 2009-11-25
US20100107227A1 (en) 2010-04-29
AU2009222468A1 (en) 2010-05-06
CN101729597B (zh) 2013-11-27
GB2464397A (en) 2010-04-21
DE102009049674A1 (de) 2010-04-22
AU2009222468B2 (en) 2014-12-04
GB2464397B (en) 2013-01-02
CN101729597A (zh) 2010-06-09

Similar Documents

Publication Publication Date Title
DE102009049674B4 (de) Segregieren von anonymem Zugriff auf dynamischen Inhalt auf einem Webserver mit gecachedten Anmeldungen
DE60130377T2 (de) Verfahren zur steuerung des zugriffs auf digitalen inhalt und streaming-medien
DE60133648T2 (de) System und verfahren zum führen von laufzeitdaten in einem server-netzwerk
DE60308692T2 (de) Verfahren und system für benutzerbestimmte authentifizierung und einmalige anmeldung in einer föderalisierten umgebung
CA2875255C (en) Policy service authorization and authentication
US9276929B2 (en) Method and apparatus for multi-domain authentication
DE69733914T2 (de) Verfahren und Vorrichtung zur dynamischen Klientenauthentifizierung in einem vernetzten Dateiensystem
DE112016004896T5 (de) Bereitstellung von Remote-Befehlsausführung mit fein abgestimmtem Zugriff für Instanzen von virtuellen Maschinen in einer verteilten Datenverarbeitungsumgebung
DE60006451T2 (de) Verteilte Authentifizierungsmechanismen zur Behandlung von verschiedenen Authentifizierungssystemen in einem Betriebsrechnersystem
DE202018006529U1 (de) Gemeinsames Nutzen bzw. Teilen von Daten in einem mandantenfähigen Datenbanksystem
DE202011110893U1 (de) Verwaltung mehrfacher Anmeldungen über einen Einzelbrowser
DE112012002741T5 (de) Identitäts- und Berechtigungsprüfungsverfahren für die Sicherheit einer Cloud-Datenverarbeitungsplattform
DE202020005693U1 (de) Externe berechtigungsnachweisfreie Stufen für Datenbankintegrationen
DE112012003977T5 (de) Eingriffsfreies Verfahren und Vorrichtung zum automatischen Zuteilen von Sicherheitsregelnin einer Cloud-Umgebung
DE102012213807A1 (de) Steuerung des Lightweight-Dokumentenzugriffs mithilfe von Zugriffskontrolllisten im Cloud-Speicher oder auf dem lokalen Dateisystem
JP2002041454A (ja) ネットワークシステム、端末管理システム、端末管理方法、データ処理方法、記録媒体およびインターネットサービス提供方法
DE112020000538T5 (de) Feinkörnige zugriffskontrolle auf token-grundlage
DE112011101729T5 (de) Verwaltung von Ressourcenzugriff
DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte
DE102011077218B4 (de) Zugriff auf in einer Cloud gespeicherte Daten
DE202012013482U1 (de) Verteilung von Zugriffsinformationen auf Overlay-Netzwerken
DE112011102224B4 (de) Identitätsvermittlung zwischen Client- und Server-Anwendungen
DE102014206325A1 (de) Verteiltes Authentifizierungssystem
DE102004038566A1 (de) Lizenzsteuerung für Web-Anwendungen
DE102005045944A1 (de) Sicheres Multi-User-Webhosting

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: D YOUNG & CO LLP, DE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final