DE112016006123T5 - Handshake zur Dienstautorisierung - Google Patents

Handshake zur Dienstautorisierung Download PDF

Info

Publication number
DE112016006123T5
DE112016006123T5 DE112016006123.4T DE112016006123T DE112016006123T5 DE 112016006123 T5 DE112016006123 T5 DE 112016006123T5 DE 112016006123 T DE112016006123 T DE 112016006123T DE 112016006123 T5 DE112016006123 T5 DE 112016006123T5
Authority
DE
Germany
Prior art keywords
authorization
resource
service
customer
request
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.)
Pending
Application number
DE112016006123.4T
Other languages
English (en)
Inventor
Edward Bradford Smith II
Graeme David Baer
Manivannan Sundaram
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies 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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of DE112016006123T5 publication Critical patent/DE112016006123T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • 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/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Das vorliegende Dokument beschreibt Systeme und Verfahren, die Kundenressourcen, wie etwa Computer, Server, Rechenvorrichtungen und virtuelle Maschinen, autorisieren, auf Onlinedienste zuzugreifen, die durch einen Onlinedienstanbieter bereitgestellt werden. Um eine Kundenressource zu autorisieren, übermittelt ein Kunde eine Registrierungsanforderung im Namen der Kundenressource an einen Autorisierungsdienst, der durch den Dienstanbieter bereitgestellt wird. Der Autorisierungsdienst gibt einen Aktivierungscode an den Kunden aus. Der Aktivierungscode kann nach einem Zeitraum oder nach einer ersten Nutzung ablaufen. Der Kunde stellt den Aktivierungscode an einem Agenten bereit, der auf der Kundenressource ausgeführt wird. Der Agent baut eine Verbindung zu dem Autorisierungsdienst auf und empfängt bei Bereitstellen des Aktivierungscodes an dem Autorisierungsdienst ein Autorisierungstoken, das durch die Kundenressource verwendet werden kann, um gemäß Sicherheitsrollen oder Berechtigungen, die mit der Registrierungsanforderung angegeben sind, auf Onlinedienste zuzugreifen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht eine Priorität gegenüber der US-Patentanmeldung Nr. 14/984,957 mit dem Titel „SERVICE AUTHORIZATION HANDSHAKE“, die am 30. Dezember 2015 eingereicht wurde und deren Inhalt hier durch Bezugnahme vollumfänglich aufgenommen wird.
  • ALLGEMEINER STAND DER TECHNIK
  • Onlinedienste sind ein wichtiger Teil des modernen Computings. Onlinedienste stellen Speicher- und Backup-Dienste, Datenverarbeitungsdienste, Key-Management-Dienste, virtuelle Computing-Dienste, Finanzdienste, Shopping-Dienste und viele weitere Computing- und Datenzugriffsdienste bereit. Ein Zugriff auf Onlinedienste wird im Allgemeinen durch eine Vielzahl von Authentifizierungs- und Autorisierungstechniken gesteuert, wie etwa Benutzername/Passwort-Paare, digitale Zertifikate, Netzwerkadressfilter und biometrische Identifizierung. Beim Zugreifen auf einen Onlinedienst stellt ein Kunde dem Onlinedienst die richtigen Authentifizierungsinformationen bereit und gewährt der Onlinedienst Zugriff. In einigen Umgebungen betreiben Kunden eine Vielzahl von Kundenressourcen, wie etwa Kundencomputer, Server, virtuelle Maschinen und andere mit einem Netzwerk verbundene Rechenvorrichtungen, die von einem Zugriff auf Onlinedienste profitieren würden. Bei dem Bereitstellen eines Zugriffs auf Onlinedienste für Kundenressourcen kann es sich jedoch um eine große Herausforderung handeln.
  • Für Kundenressourcen können andere Ebenen des Zugriffs auf Onlinedienste erforderlich sein als die, die bereitgestellt werden würden, indem dem Kunden einfach Anmeldeinformationen zu der Kundenressource bereitgestellt werden. Des Weiteren können unter Umständen mehrere Sätze von Kundenanmeldeinformationen erforderlich sein, wenn eine Kundenressource einen Zugriff auf mehrere Onlinedienste benötigt. Wenn bestimmte Kundenanmeldeinformationen geändert werden, müssen Kundenressourcen, welche diese bestimmten Anmeldeinformationen verwendet, mit den neuen Anmeldeinformationen aktualisiert werden. Aus diesen und weiteren Gründen kann das Steuern der Autorisierung von Kundenressourcen, um Onlinedienste zu verwenden, sehr problematisch sein.
  • Figurenliste
  • Verschiedene Techniken werden unter Bezugnahme auf die Zeichnungen beschrieben, in denen Folgendes gilt:
    • 1 zeigt ein veranschaulichendes Beispiel einer Umgebung, in der verschiedene Ausführungsformen durchgeführt werden können;
    • 2 zeigt ein veranschaulichendes Beispiel einer Kundenressource, die gemäß einer Ausführungsform mit einem gemeinsamen Autorisierungstoken auf eine Reihe von Onlinediensten zugreift;
    • 3 zeigt ein veranschaulichendes Beispiel einer geklonten Kundenressource, die gemäß einer Ausführungsform auf einen Onlinedienst zugreift;
    • 4 zeigt ein veranschaulichendes Beispiel eines Autorisierungsdienstes, der gemäß einer Ausführungsform einen Zugriff auf einen Onlinedienst durch eine Kundenressource autorisiert;
    • 5 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch eine Dienstverwaltungskonsole, einen Autorisierungsdienst und einen Autorisierungsagenten durchgeführt wird, gemäß einer Ausführungsform einen Zugriff auf einen Onlinedienst durch eine Kundenressource autorisiert;
    • 6 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst, einen Autorisierungsagenten und einen Onlinedienst durchgeführt wird, gemäß einer Ausführungsform eine Onlinedienstanforderung erfüllt, die durch eine Kundenressource übermittelt wird;
    • 7 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst, einen Autorisierungsagenten und einen Onlinedienst durchgeführt wird, gemäß einer Ausführungsform ein Autorisierungstoken aktualisiert, das durch eine Kundenressource verwendet wird;
    • 8 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst durchgeführt wird, gemäß einer Ausführungsform eine Kundenressource registriert, um einen Onlinedienst zu verwenden;
    • 9 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsagenten auf einer Kundenressource durchgeführt wird, gemäß einer Ausführungsform eine Kundenressource aktiviert, um einen Onlinedienst zu verwenden;
    • 10 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst durchgeführt wird, gemäß einer Ausführungsform eine Ressourcenaktivierungsanforderung erfüllt;
    • 11 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst durchgeführt wird, gemäß einer Ausführungsform ein Aktivierungstoken aktualisiert; und
    • 12 veranschaulicht eine Umgebung, in der verschiedene Ausführungsformen implementiert werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Das vorliegende Dokument beschreibt einen Autorisierungsdienst, der es Vor-Ort-Kundenressourcen, wie etwa Servern, Rechenvorrichtungen und virtuellen Maschinen, ermöglicht, sich bei einem Onlinedienstanbieter zu registrieren und ein Autorisierungstoken zu empfangen, das verwendet werden kann, um auf Onlinedienste zuzugreifen, die durch den Onlinedienstanbieter bereitgestellt werden. Dies kann es zum Beispiel den Vor-Ort-Kundenressourcen ermöglichen, mit dem Onlinedienstanbieter zu kommunizieren, einschließlich Befehle von diesem zu erhalten. Ein Kunde, wie etwa ein Administrator oder ein anderer autorisierter Benutzer, greift unter Verwendung eines Kundencomputersystems über eine Anwendungsprogrammierschnittstelle („API“), Befehlszeilenschnittstelle oder andere Benutzerschnittstelle auf den Autorisierungsdienst zu. Der Kunde registriert eine Kundenressource mit dem Autorisierungsdienst, indem er eine Ressourcenkennung („Ressourcen-ID“) und eine Sicherheitsrolle oder einen Satz von Privilegien bereitstellt, die der Kundenressource zu gewähren ist bzw. sind. Der Autorisierungsdienst hält die Ressourcen-ID und die gewährte(n) Rolle oder Privilegien in einer Ressourcenregistrierungsdatenbank fest und generiert einen Aktivierungscode zur einmaligen Verwendung, der an den Kunden ausgegeben wird. Der Aktivierungscode zur einmaligen Verwendung läuft nach einem Zeitraum ab.
  • Der Kunde autorisiert die Kundenressource durch Installieren eines Autorisierungsagenten auf der Kundenressource und Aktivieren des Autorisierungsagenten mit dem Autorisierungsdienst. Dem Kunden werden Installationsanweisungen für den Autorisierungsagenten zusammen mit dem Aktivierungscode zur einmaligen Verwendung bereitgestellt. In einigen Umgebungen wird der Kunde dazu aufgefordert, ein Installationsprogramm auf die Kundenressource herunterzuladen und auf dieser auszuführen. Das Installationsprogramm kann die Form einer MSI-, PKG-, ZIP- oder setup.exe-Datei haben.
  • Sobald der Autorisierungsagent installiert wurde, aktiviert der Kunde den Autorisierungsagenten durch Übermitteln eines Aktivierungsbefehls an den Autorisierungsagenten. In einigen Implementierungen wird der Aktivierungsbefehl als ein Parameter an das Installationsprogramm übermittelt. Der Kunde stellt die Ressourcen-ID und den Aktivierungscode als Parameter mit dem Aktivierungsbefehl bereit. Als Reaktion auf Empfangen des Aktivierungsbefehls generiert und speichert der Autorisierungsagent ein öffentlich-privates Schlüsselpaar zum Signieren von Anforderungen, die an den Autorisierungsdienst gesendet werden. Der Autorisierungsagent generiert eine Aktivierungsanforderung, welche die Ressourcen-ID, den Aktivierungscode und den öffentlichen Schlüssel des öffentlich-privaten Schlüsselpaars beinhaltet. In einigen Implementierungen beinhaltet die Aktivierungsanforderung eine pseudo-eindeutige Ressourcen-ID. Die pseudo-eindeutige Ressourcen-ID wird durch die Kundenressource derart generiert, dass sie einen Wert aufweist, der üblicherweise eindeutig für jede Instanz einer Kundenressource ist, selbst, wenn die Kundenressource von einer anderen Kundenressource abgebildet oder geklont ist. Zum Beispiel kann die pseudo-eindeutige Ressourcen-ID zumindest teilweise auf einer Prozessor-ID, einer Hardware-Seriennummer oder einer Netzwerkadresse basieren, die der Kundenressource zugeordnet ist. Die pseudoeindeutige Ressourcen-ID kann verwendet werden, um Kundenressourcen zu erfassen, die geklont oder repliziert wurden. Der Autorisierungsagent signiert die Aktivierungsanforderung mit dem privaten Schlüssel des öffentlich-privaten Schlüsselpaars und übermittelt die Aktivierungsanforderung an den Autorisierungsdienst.
  • Der Autorisierungsdienst empfängt die Aktivierungsanforderung von dem Autorisierungsagenten und verifiziert die Signatur an der Aktivierungsanforderung unter Verwendung des eingeschlossenen öffentlichen Schlüssels. Die Aktivierungsanforderung wird dadurch validiert, dass bestätigt wird, dass der Aktivierungscode für die bereitgestellte Ressourcen-ID gültig, nicht abgelaufen oder bereits in Verwendung ist. Wenn die Aktivierungsanforderung gültig ist, hält der Autorisierungsdienst in einer Datenbank, die durch den Aktivierungsdienst gepflegt wird, fest, dass der Aktivierungscode nicht mehr gültig ist, und zeichnet die Kundenressourceninformationen in einer Datenbank mit autorisierten Kundenressourcen auf. Der Aktivierungscode kann durch den Autorisierungsdienst selbst ungültig gemacht werden oder, indem eine weitere Einheit dazu veranlasst wird, den Aktivierungscode ungültig zu machen. Der Autorisierungsdienst ruft die angeforderte Rolle oder die angeforderten Privilegien zumindest teilweise auf Grundlage der Ressourcen-ID, die mit dem Aktivierungsbefehl bereitgestellt wurde, von der Ressourcenregistrierungsdatenbank ab. Der Aktivierungsdienst nimmt Kontakt mit dem Onlinedienstanbieter auf und erwirbt ein Autorisierungstoken, durch das die angeforderte Rolle oder die angeforderten Privilegien bereitgestellt werden. Der Autorisierungsdienst gibt das Autorisierungstoken an den Autorisierungsagenten aus, der auf der Kundenressource ausgeführt wird. In einer Ressourcenautorisierungsdatenbank sind Informationen in Bezug auf das ausgegebene Autorisierungstoken zur späteren Verwendung gespeichert.
  • Der Autorisierungsagent verwendet das Autorisierungstoken, um auf Onlinedienste zuzugreifen, die durch den Onlinedienstanbieter bereitgestellt werden. Wenn die Kundenressource eine Anforderung an einen Onlinedienst sendet, stellt die Kundenressource das Autorisierungstoken mit der Anforderung bereit. Der Onlinedienst empfängt die Anforderung und erfüllt oder verweigert die Anforderung gemäß der Rolle oder den Privilegien, die dem Autorisierungstoken zugeordnet ist bzw. sind. Wenn das Autorisierungstoken abläuft, kann das Autorisierungstoken durch den Autorisierungsagenten aktualisiert werden. Um ein Autorisierungstoken zu aktualisieren, sendet der Autorisierungsagent eine signierte Anforderung an den Autorisierungsdienst. Der Autorisierungsdienst validiert die digitale Signatur an der Anforderung, erwirbt ein neues Autorisierungstoken von dem Onlinedienstanbieter und gibt das neue Autorisierungstoken an den Autorisierungsagenten aus.
  • In einigen Umgebungen können die Kundenressourcen geklont oder repliziert sein. Geklonte Ressourcen können durch den Autorisierungsdienst während der Aktivierung oder während Anforderungen bezüglich eines Dienstes erfasst werden. In einigen Implementierungen generiert der Autorisierungsagent eine pseudo-eindeutige Ressourcenkennung, die dem Autorisierungsdienst während der Registrierung der Kundenressource bereitgestellt wird. Die pseudo-eindeutige Ressourcenkennung wird dem Autorisierungsdienst während der Registrierung bereitgestellt und hierdurch wird eine geklonte Kundenressource von einer hierzu in Bezug stehenden übergeordneten Kundenressource unterschieden. In einer weiteren Implementierung beinhaltet der Autorisierungsagent eine Folgenummer mit jeder Anforderung an den Autorisierungsdienst. Wenn der Autorisierungsdienst eine Anforderung von einer Kundenressource empfängt, die eine vorangehend empfangene Ressourcen-ID und Folgenummer beinhaltet, wird eine geklonte Ressource erfasst.
  • Verschiedene durch einen Kunden verwendete Authentifizierungsmechanismen können verwendet werden, um Autorisierungstoken für Kundenressourcen zu erwerben. Zum Beispiel, wenn ein Kunde einen Benutzernamen und ein Passwort zur Authentifizierung bei einem Onlinedienst verwendet. Der Benutzername und das Passwort können durch den Kunden während der Registrierung einer Kundenressource mit dem Authentifizierungsdienst zur Verfügung gestellt werden. Wenn der Kunde ein digitales Zertifikat verwendet, um eine Authentifizierung bei dem Onlinedienst vorzunehmen, kann das digitale Zertifikat durch den Kunden während der Registrierung der Kundenressource mit dem Autorisierungsdienst zur Verfügung gestellt werden.
  • Kundenressourcen können sich auf einem lokalen Kundencomputersystem, einer kundengesteuerten Netzwerkumgebung, einem Datenzentrum vor Ort, einem Remote-Netzwerk oder einem durch den Onlinedienstanbieter gesteuerten Netzwerk befinden. Vor-Ort-Kundenressourcen beziehen sich auf Kundenressourcen, die sich physisch an dem Geschäftsort des Kunden befinden und der physischen Steuerung des Kunden ausgesetzt sind. Bei dem Autorisierungsdienst kann es sich um einen getrennten Dienst handeln, der durch den Onlinedienstanbieter angeboten wird, oder kann es sich um einen Dienst handeln, der einem bestimmten Onlinedienst zugeordnet ist, der durch den Onlinedienstanbieter angeboten wird. In einigen Implementierungen wird der Autorisierungsdienst durch eine dritte Partei angeboten und wirkt der Autorisierungsdienst mit dem Onlinedienstanbieter oder den bestimmten Onlinediensten zusammen, für die der Autorisierungsdienst Autorisierungstoken bereitstellt. Durch Verteilen der Autorisierungstoken an Kundenressourcen sind die Kundenressourcen in der Lage, auf eine Reihe von Onlinediensten unter Aufsicht des Kunden zuzugreifen, der die Kundenressourcen besitzt, ohne dass Kundenanmeldeinformationen an die Kundenressourcen verteilt oder neue Anmeldeinformationen für jede Kundenressource ausgegeben werden müssen.
  • 1 zeigt ein veranschaulichendes Beispiel einer Umgebung, in der verschiedene Ausführungsformen durchgeführt werden können. Ein Onlinedienstanbieter 102 stellt eine Reihe von Onlinediensten sowie einen Autorisierungsdienst 104 bereit. Ein Kunde 106 des Onlinedienstanbieters 102 greift über ein Computernetzwerk auf die Dienste zu, die durch den Onlinedienstanbieter bereitgestellt werden. Der Kunde 106 verwaltet den Zugriff auf den Onlinedienstanbieter von einem Kundencomputersystem 108, das eine Dienstverwaltungskonsole 110 bereitstellt. Der Kunde 106 besitzt und betreibt eine Reihe von Kundenressourcen, wie etwa Server, virtuelle Maschinen oder anderen Rechenvorrichtungen an dem Netzwerk.
  • Wenn der Kunde 106 einen Zugriff auf die Dienste bereitstellen möchte, die durch den Onlinedienstanbieter an einer Kundenressource 112 bereitgestellt werden, generiert der Kunde unter Verwendung der Dienstverwaltungskonsole 110 eine Registrierungsanforderung und sendet die Registrierungsanforderung an den Autorisierungsdienst 104. Die Registrierungsanforderung beinhaltet eine Ressourcen-ID für die Kundenressource 112, eine Sicherheitsrolle, die der Kundenressource gewährt werden soll, und jegliche Anmeldeinformationen, die dem Kunden 106 zugeordnet und erforderlich sind, um die Anforderung zu autorisieren, wie etwa eine Benutzername/Passwort-Kombination oder ein digitales Zertifikat des Kunden.
  • Der Autorisierungsdienst 104 generiert einen Aktivierungscode und speichert den Aktivierungscode, die Ressourcen-ID und einen Zeitstempel in einer Ressourcenregistrierungsdatenbank, die sich in dem Autorisierungsdienst 104 befindet. Das Speichern des Aktivierungscodes in der Ressourcenregistrierungsdatenbank kann Speichern eines Datensatzes mit dem Aktivierungscode selbst oder von Informationen beinhalten, welche die Verifikation des Zugriffs auf den Aktivierungscode ermöglichen, wie etwa einer Hashfunktion oder von anderen Informationen, die zumindest teilweise auf Grundlage des Aktivierungscodes abgeleitet wurden. Die Ressourcen-ID kann als Hashfunktion gespeichert werden, welche die Verifikation einer übereinstimmenden Ressourcen-ID ermöglicht, die durch den Autorisierungsagenten dargestellt wird. Der Aktivierungscode wird durch die Dienstverwaltungskonsole 110 an den Kunden ausgegeben und dem Kunden 106 werden Anweisungen zum Herunterladen und Installieren eines Autorisierungsagenten 114 auf die Kundenressource 112 bereitgestellt. In einigen Ausführungsformen veranlasst der Autorisierungsdienst, dass der Autorisierungsagent 114 auf der Kundenressource 112 gespeichert wird, ohne dass der Kunde 106 eingreifen muss. Der Autorisierungsdienst 104 gibt der Dienstverwaltungskonsole 110 den Befehl, Kontakt mit der Kundenressource 112 aufzunehmen und den Autorisierungsagenten 114 zu installieren. In einer weiteren Ausführungsform hat der Kunde 106 Anweisungen von dem Autorisierungsdienst 104 empfangen und lädt ein Installationsprogramm für den Autorisierungsagenten herunter, das mit der Kundenressource 112 kompatibel ist. Das Installationsprogramm kann über das Computernetzwerk oder durch Verwendung von computerlesbaren Medien, wie etwa einer CD-ROM, eines USB-Speichersticks, eines Flash-Laufwerks oder anderen Medien, an die Kundenressource 112 übertragen werden. Der Kunde 106 führt das Installationsprogramm auf der Kundenressource 112 aus, um den Autorisierungsagenten 114 zu installieren. Es können dem Installationsprogramm Parameter bereitgestellt werden, in denen der Aktivierungscode und die Ressourcen-ID angegeben sind. In einigen Implementierungen gibt der Kunde 106 einen Aktivierungsbefehl an den Autorisierungsagenten aus, der die Ressourcen-ID und den Aktivierungscode als Parameter beinhaltet.
  • Der Autorisierungsagent 114 wird durch Senden einer Aktivierungsanforderung an den Autorisierungsdienst 104 aktiviert, die den Aktivierungscode beinhaltet. In einigen Implementierungen generiert der Autorisierungsagent 114 ein öffentlich-privates Schlüsselpaar, wie etwa ein 2.048-Bit-RSA-Schlüsselpaar, zur Verwendung in Signierungsanforderungen, die an den Autorisierungsdienst 104 gesendet werden. Der Autorisierungsagent 114 kann außerdem eine pseudo-eindeutige Ressourcen-ID generieren, die dem Autorisierungsdienst 104 mit der Ressourcen-ID zur Verfügung gestellt wird. Die pseudo-eindeutige Ressourcen-ID unterstützt die Sicherstellung, dass die Kundenressourcen, die durch Klonen oder Replizieren anderer Kundenressourcen generiert wurden, eindeutige Kennungen bei dem Autorisierungsdienst 104 aufweisen. Der Autorisierungsagent 114 generiert eine Aktivierungsanforderung, welche die Ressourcen-ID, den Aktivierungscode und gegebenenfalls eine pseudo-eindeutige Ressourcen-ID und den öffentlichen Schlüssel des öffentlich-privaten Schlüsselpaars beinhaltet. Die Aktivierungsanforderung wird unter Verwendung des privaten Schlüssels des öffentlich-privaten Schlüsselpaars signiert und an den Autorisierungsdienst 104 gesendet.
  • Der Autorisierungsdienst 104 empfängt die Aktivierungsanforderung und verifiziert die Signatur an der Anforderung unter Verwendung des öffentlichen Schlüssels, der mit der Anforderung bereitgestellt wird. Wenn die Aktivierungsanforderung nicht ordnungsgemäß signiert wurde, wird die Anforderung verweigert. Wenn die Aktivierungsanforderung ordnungsgemäß signiert wurde, greift der Autorisierungsdienst 104 auf die Ressourcenregistrierungsdatenbank zu und entnimmt den Aktivierungscode, welcher der bereitgestellten Ressourcen-ID zugeordnet ist. Wenn der Aktivierungscode nicht auffindbar ist oder wenn der Aktivierungscode abgelaufen ist oder wenn der Aktivierungscode nicht der bereitgestellten Ressourcen-ID zugeordnet ist oder wenn der Aktivierungscode bereits verwendet wurde, ist der Aktivierungscode ungültig und wird die Aktivierungsanforderung verweigert. Wenn der Aktivierungscode gültig ist, wird der Aktivierungscode aus der Ressourcenregistrierungsdatenbank entfernt, sodass der Aktivierungscode nicht mehr verwendet werden kann, und werden die Rollen und/oder Privilegien, die der Kundenressource 112 zugewiesen sind, von der Registrierungsdatenbank abgerufen. Der Autorisierungsdienst 104 fordert ein Autorisierungstoken von dem Onlinedienstanbieter 102 an, das die Rollen und/oder Privilegien bereitstellt, die der Kundenressource 112 zugewiesen sind. Das Autorisierungstoken, die Ressourcen-ID, die pseudo-eindeutige Ressourcen-ID, der öffentliche Schlüssel des öffentlich-privaten Schlüsselpaars und ein aktueller Zeitstempel sind in einer Ressourcenautorisierungsdatenbank in dem Autorisierungsdienst 104 gespeichert. Der Autorisierungsdienst 104 gibt das Autorisierungstoken an den Autorisierungsagenten 114 aus.
  • Der Autorisierungsagent 114 empfängt das Autorisierungstoken, das verwendet werden kann, um auf Onlinedienste zuzugreifen, die durch den Onlinedienstanbieter 102 bereitgestellt werden. In einigen Implementierungen stellt der Autorisierungsagent 114 eine Dienst-API zu Anwendungen bereit, die auf der Kundenressource 112 ausgeführt werden. Dienstanforderungen, die durch die Dienst-API empfangen wurden, werden an einen Dienst weitergeleitet, der zusammen mit dem Autorisierungstoken durch den Onlinedienstanbieter 102 bereitgestellt wurde. Der Onlinedienst verwendet das Autorisierungstoken, um den Anfordernden zu identifizieren und um die Rolle oder Berechtigungen zu identifizieren, die dem Anfordernden gewährt werden. Wenn die dem Anfordernden gewährte(n) Rolle oder Berechtigungen ermöglichen, dass die Dienstanforderung erfüllt wird, erfüllt der Dienst die Anforderung und stellt eine Antwort an den Autorisierungsagenten 114 bereit. In einer weiteren Implementierung stellt der Autorisierungsagent 114 Anwendungen das Autorisierungstoken bereit, die auf der Kundenressource 112 ausgeführt werden, und übermitteln die Anwendungen durch Bereitstellen des Autorisierungstokens mit den Dienstanforderungen Anforderungen an einen Dienst, der durch den Onlinedienstanbieter 102 bereitgestellt wird. Der Dienst verwendet das Autorisierungstoken, um den Anfordernden zu identifizieren und zu autorisieren, erfüllt falls zutreffend die Dienstanforderungen und stellt der Anwendung zugeordnete Antworten für die Dienstanforderungen bereit.
  • In verschiedenen Implementierungen kann das Autorisierungstoken konfiguriert sein, um nach einem Zeitraum abzulaufen. Zum Beispiel kann das Autorisierungstoken eine Stunde, nachdem das Autorisierungstoken an den Autorisierungsagenten 114 ausgegeben wurde, ablaufen. Der Autorisierungsdienst 104 kann dem Autorisierungsagenten 114 als Reaktion auf einen Aktualisierungsbefehl von dem Autorisierungsagenten 114 oder als Reaktion auf das Empfangen einer Anforderung von dem Autorisierungsagenten 114 (oder einer Anwendung, die auf der Kundenressource ausgeführt wird) mit einem abgelaufenen Autorisierungstoken und in Erwartung eines Ablaufens des Autorisierungstokens ein aktualisiertes Token an den Autorisierungsagenten ausgeben.
  • 2 zeigt ein veranschaulichendes Beispiel einer Kundenressource, die gemäß einer Ausführungsform mit einem gemeinsamen Autorisierungstoken auf eine Reihe von Onlinediensten zugreift. Eine Umgebung 200 beinhaltet eine Kundenressource 202, die auf eine Reihe von Onlinediensten zugreift, die durch einen Onlinedienstanbieter 204 bereitgestellt werden. Auf der Kundenressource 202 ist ein Autorisierungsagent 206 installiert, der als Reaktion auf eine Aktivierungsanforderung, die einen Aktivierungscode beinhaltet, ein Autorisierungstoken von einem Autorisierungsdienst 208 empfängt. Der Autorisierungsdienst 208 ist dem Onlinedienstanbieter 204 zugeordnet. Der Onlinedienstanbieter 204 stellt eine Reihe von Onlinediensten bereit, einschließlich eines Computing-Dienstes 210, eines Speicherdienstes 212 und eines Verschlüsselungsdienstes 214. In zusätzlichen Implementierungen kann der Onlinedienstanbieter 204 weitere Onlinedienste bereitstellen, wie etwa Key-Management-Dienste, Dienste für virtuelles Computing, E-Mail-Dienste, Messaging-Dienste, Videokonferenz-Dienste oder Internetsuch-Dienste. Das Autorisierungstoken, das durch den Autorisierungsdienst 208 bereitgestellt wird, ist einer oder mehreren Rollen und/oder einer oder mehreren Berechtigungen zugeordnet, durch die ein Zugriff auf einen oder mehrere Onlinedienste gewährt wird, die durch den Onlinedienstanbieter 204 bereitgestellt werden. Das Autorisierungstoken kann durch den Autorisierungsagenten 206 zumindest teilweise auf Grundlage der Rollen und Berechtigungen verwendet werden, die dem Autorisierungstoken zugeordnet sind, um auf einen oder mehrere der Dienste zuzugreifen, die durch den Onlinedienstanbieter 204 bereitgestellt werden.
  • Wenn zum Beispiel ein Kunde die Kundenressource 202 mit dem Autorisierungsdienst 208 registriert und angibt, dass der Kundenressource 202 eine Rolle gewährt werden soll, durch die der Zugriff auf eine Reihe von Diensten ermöglicht wird, die durch den Onlinedienstanbieter 204 bereitgestellt werden, kann das Autorisierungstoken, das dem Autorisierungsagenten 206 durch den Autorisierungsdienst 208 an der Kundenressource 202 bereitgestellt wird, durch die Kundenressource 202 verwendet werden, um auf einen beliebigen Dienst an dem Onlinedienstanbieter 204 zuzugreifen. Zum Beispiel kann in 2 das durch den Autorisierungsdienst 208 bereitgestellte Autorisierungstoken von dem Autorisierungsagenten 206 verwendet werden, um auf den Computing-Dienst 210, den Speicherdienst 212 oder den Verschlüsselungsdienst 214 zuzugreifen. Der Kunde kann bei der Autorisierung der Kundenressource einen Zugriff auf einen, alle oder einen Teilsatz der Dienste anfordern, die durch den Onlinedienstanbieter bereitgestellt werden. In einem weiteren Beispiel empfängt der Autorisierungsagent 206 ein eingeschränktes Token von dem Autorisierungsdienst 208. Das eingeschränkte Token kann durch den Autorisierungsagenten 206 verwendet werden, um auf den Computing-Dienst 210 und den Speicherdienst 212 zuzugreifen, jedoch nicht auf den Verschlüsselungsdienst 214.
  • In einigen Implementierungen empfängt die Kundenressource 202 Befehle von einem Dienst, der durch den Onlinedienstanbieter 204 bereitgestellt wird. Zum Beispiel kann das durch den Autorisierungsagenten 206 bereitgestellte Token einen Zugriff auf einen Ausführungsbefehlsdienst ermöglichen. Der Ausführungsbefehlsdienst sendet Befehle zur Ausführung an die Kundenressource 202. In einem weiteren Beispiel kann ein Sicherheitsdienst, der durch den Onlinedienstanbieter 204 bereitgestellt wird, bestimmen, dass die Kundenressource 202 manipuliert wurde, und einen Befehl durch den Autorisierungsagenten 206 senden, der eine Kundenressource 202 dazu veranlasst, vertrauliche Daten zu löschen, die auf der Kundenressource 202 gespeichert sind.
  • 3 zeigt ein veranschaulichendes Beispiel einer geklonten Kundenressource, die gemäß einer Ausführungsform auf einen Onlinedienst zugreift. Ein System 300 beinhaltet einen Onlinedienstanbieter 302, der einen Autorisierungsdienst 304 und einen Computing-Dienst 306 bereitstellt. In zusätzlichen Ausführungsformen kann der Onlinedienstanbieter 302 Webhosting-Dienste, Speicherdienste oder weitere Dienste anstelle des Computing-Dienstes 306 bereitstellen. Eine Kundenressource 308, wie etwa eine virtuelle Computerinstanz, eine Web-Vorrichtung oder eine andere Rechenvorrichtung hostet einen Autorisierungsagenten 310. Der Autorisierungsagent 310 wurde mit dem Autorisierungsdienst 304 registriert und wurde durch den Autorisierungsdienst 304 mit einem Autorisierungstoken bereitgestellt. Die Kundenressource 308 generiert und sendet unter Verwendung des Autorisierungstokens Anforderungen an den Computing-Dienst 306. Der Computing-Dienst 306 bestimmt zumindest teilweise auf Grundlage des Autorisierungstokens, ob die Anforderung autorisiert wurde, und erfüllt die Anforderung.
  • Wenn die Kundenressource 308 geklont, kopiert oder anderweitig repliziert ist, wird eine geklonte Kundenressource 312 erzeugt. Die geklonte Kundenressource 312 beinhaltet einen duplizierten Autorisierungsagenten 314. In einigen Implementierungen weisen die geklonte Kundenressource 312 und der duplizierte Autorisierungsagent 314 eine Konfiguration auf, die der Konfiguration der Kundenressource 308 und des Autorisierungsagenten 310 entspricht. Wenn der duplizierte Autorisierungsagent 314 eine Dienstanforderung generiert und an den Computing-Dienst 306 weiterleitet, die ein Autorisierungstoken beinhaltet, das dem Autorisierungstoken entspricht, das durch den Autorisierungsagenten 310 verwendet wird, erfasst der Computing-Dienst 306, dass übereinstimmende Autorisierungstoken durch zwei verschiedene Kundenressourcen verwendet werden, und verweigert die Dienstanforderung, die durch die geklonte Kundenressource übermittelt wurde.
  • In einigen Ausführungsformen erfasst der Computing-Dienst 306 durch Verwendung einer pseudo-eindeutigen Ressourcenkennung, die durch die Kundenressourcen bereitgestellt wird, dass übereinstimmende Autorisierungstoken verwendet werden. Die Autorisierungsagenten generieren pseudo-eindeutige Ressourcenkennungen, die zumindest teilweise auf einer Prozessor-ID, der Netzwerkadresse von Netzwerkschnittstellen, die den Kundenressourcen zugeordnet sind, oder einer Seriennummer einer Maschine basieren. Die Autorisierungsagenten stellen die pseudo-eindeutige Ressourcenkennung beim Übermitteln von Anforderungen an den Computing-Dienst 306 bereit. In einer weiteren Ausführungsform erfasst der Computing-Dienst 306, dass übereinstimmende Autorisierungstoken verwendet werden, indem er Folgenummer untersucht, die in Anforderungen eingeschlossen sind, die durch die Autorisierungsagenten gesendet wurden. Durch einen Autorisierungsagenten generierte Anforderungen werden durch den Autorisierungsagenten einer Folgenummer zugewiesen. Die Folgenummer wird für jede Folgeanforderung inkrementiert und der Computing-Dienst 306 vergleicht die Folgenummer jeder Anforderung, die von einem gegebenen Autorisierungsagenten empfangen wurde, mit einer Folgenummer der vorangehenden Anforderung, die von dem gegebenen Autorisierungsagenten empfangen wurde. Wenn der Computing-Dienst 306 eine Anforderung von einem duplizierten Autorisierungsagenten mit einer Ressourcen-ID und einer Folgenummer empfängt, die mit einer anderen Anforderung übereinstimmen, die durch die Kundenressource 308 gesendet wurde, bestimmt der Computing-Dienst 306, dass die Anforderung von einer geklonten Ressource von der geklonten Kundenressource 312 stammt. Der Computing-Dienst 306 benachrichtigt den Autorisierungsdienst 304 und der Autorisierungsdienst 304 gibt ein neues Autorisierungstoken an die geklonte Kundenressource 312 aus. In einigen Implementierungen wird die Dienstanforderung verweigert und kein neues Token an die geklonte Kundenressource ausgegeben, wenn der Computing-Dienst bestimmt, dass die Anforderung von der geklonten Kundenressource 312 stammt.
  • In einer weiteren Ausführungsform erfasst der duplizierte Autorisierungsagent 314, dass die geklonte Kundenressource 312 eine geklonte Ressource ist, indem er die pseudoeindeutige Ressourcenkennung mit einer neu generierten pseudo-eindeutigen Ressourcenkennung vergleicht. Bevor eine Anforderung an den Computing-Dienst 306 gesendet wird, generiert der dupliziere Autorisierungsagent 314 eine neue pseudoeindeutige Ressourcenkennung und vergleicht die neue pseudo-eindeutige Ressourcenkennung mit der gespeicherten pseudo-eindeutigen Ressourcenkennung, die von der Kundenressource 308 kopiert wurde, als die Kundenressource 308 geklont wurde, um die geklonte Kundenressource 312 zu erzeugen. Wenn die gespeicherte pseudoeindeutige Ressourcenkennung nicht mit der neuen pseudo-eindeutigen Ressourcenkennung übereinstimmt, wird die Dienstanforderung, die durch die Anforderung des geklonten Kunden übermittelt wird, verweigert. In einigen Implementierungen nimmt der duplizierte Autorisierungsagent 314 Kontakt mit dem Autorisierungsdienst 304 auf und fordert ein neues Autorisierungstoken an, wenn die gespeicherte pseudo-eindeutige Ressourcenkennung nicht mit der neuen pseudo-eindeutigen Ressourcenkennung übereinstimmt. Das neue Autorisierungstoken wird von dem duplizierten Autorisierungsagenten 314 verwendet, um Dienste von dem Computing-Dienst 306 anzufordern.
  • 4 zeigt ein veranschaulichendes Beispiel eines Autorisierungsdienstes, der gemäß einer Ausführungsform einen Zugriff auf einen Onlinedienst durch eine Kundenressource autorisiert. Ein Systemdiagramm 400 beinhaltet einen Onlinedienstanbieter 402, der einem Autorisierungsdienst 404 zugeordnet ist. Eine Kundenressource 406 wurde durch einen Kunden 407, der einen Kundencomputer 408 betreibt, mit dem Autorisierungsdienst 404 registriert. In dem in 4 gezeigten Beispiel beinhaltet der Onlinedienstanbieter 402 einen Computing-Dienst 410; der Computing-Dienst 410 kann jedoch gegebenenfalls durch einen Dienst zum virtuellen Computing, einen Speicherdienst, einen Verschlüsselungsdienst oder einen anderen Onlinedienst ausgetauscht werden. Der Onlinedienstanbieter 402 stellt einen Autorisierungstokendienst 412 bereit. Der Autorisierungstokendienst gibt Token an den Autorisierungsdienst 404 aus, die durch Online-Einheiten verwendet werden können, um Dienstanforderungen zu autorisieren, die an den Computing-Dienst 410 übermittelt werden.
  • Der Autorisierungsdienst 404 beinhaltet einen Ressourcenautoriserungsmanager 414. Bei dem Ressourcenautoriserungsmanager 414 handelt es sich um ein Betriebsmodul, das eine Aktivierungs-API und eine Registrierungs-API über das Netzwerk freigibt. Die Registrierungs-API stellt Funktionen bereit, die es dem Kunden 407 ermöglichen, Kundenressourcen zu registrieren, die dazu autorisiert sind, auf den Onlinedienstanbieter 402 zuzugreifen. Die Aktivierungs-API stellt Funktionen bereit, die es einem Autorisierungsagenten ermöglichen, ein Autorisierungstoken gegen einen Aktivierungscode zu empfangen, der durch den Kunden 407 bereitgestellt wird. Der Autorisierungsdienst 404 beinhaltet eine Ressourcenregistrierungsdatenbank 418, in der Registrierungsinformationen für Kundenressourcen gespeichert sind. Die Registrierungsinformationen können eine Ressourcen-ID, einen Aktivierungscode, eine Sicherheitsrolle, Sicherheitsberechtigungen, einen Registrierungszeitstempel und eine Ressourcenbezeichnung beinhalten. Der Autorisierungsdienst 404 beinhaltet eine Ressourcenautoriserungsdatenbank 420. In der Ressourcenautorisierungsdatenbank 420 sind Informationen in Bezug auf aktivierte Kundenressourcen gespeichert, wie etwa die Kundenressource 406. Die Informationen bezüglich der aktivieren Kundenressourcen können eine Ressourcen-ID, eine pseudo-eindeutige Ressourcen-ID, einen öffentlichen Verschlüsselungsschlüssel, Sicherheitsrollen, Sicherheitsberechtigungen und eine Tokengültigkeitsdauer beinhalten.
  • Die Kundenressource 406 ist autorisiert, um unter Verwendung eines Prozesses, der durch den Kunden 407 initialisiert wird, auf den Computing-Dienst 410 zuzugreifen. Der Kunde 407 verwendet eine Dienstverwaltungskonsole 422, die durch den Kundencomputer 408 gehostet wird. Die Dienstverwaltungskonsole 422 stellt eine Befehlszeilenschnittstelle, Anwendungsprogrammierschnittstelle, grafische Benutzerschnittstelle oder andere Schnittstelle mit dem Ressourcenautoriserungsmanager 414 bereit. Der Kunde 407 übermittelt eine Kundenressourcenregistrierungsanforderung an den Ressourcenautoriserungsmanager 414, um die Kundenressource 406 zu registrieren. Die Kundenressourcenregistrierungsanforderung gibt eine oder mehrere Sicherheitsrollen und/oder eine oder mehreren Berechtigungen an, die der Kundenressource 406 zu gewähren sind. Die Kundenressourcenregistrierungsanforderung wird durch den Kunden 407 unter Verwendung von Anmeldeinformationen des Kunden 407 autorisiert. Zum Beispiel kann der Kunde 407 die Kundenressourcenregistrierungsanforderung unter Verwendung des Benutzernamens und Passworts, des digitalen Zertifikats oder der biometrischen Signatur des Kunden autorisieren. Der Ressourcenautoriserungsmanager 414 verifiziert die durch den Kunden 407 bereitgestellten Anmeldeinformationen und generiert einen Aktivierungscode, wenn die Anmeldeinformationen ausreichend sind. In einigen Implementierungen läuft der Aktivierungscode nach einem Zeitraum ab. Der Zeitraum wird als ein Zeitraum festgelegt, der angemessen ist, um die Aktivierung der Kundenressource 406 abzuschließen, wie etwa eine Stunde. Der Aktivierungscode und die Gültigkeitsdauer sind in der Ressourcenregistrierungsdatenbank 418 gespeichert. Der Ressourcenautoriserungsmanager 414 gibt den Aktivierungscode durch die Dienstverwaltungskonsole 422 an den Kunden 407 aus.
  • Der Ressourcenautoriserungsmanager 414 veranlasst, dass ein Autorisierungsagent 424 auf der Kundenressource 406 installiert wird. In einigen Implementierungen stellt der Ressourcenautoriserungsmanager 414 dem Kunden 407 Anweisungen zur Herunterladen und Installieren des Autorisierungsagenten 424 auf die bzw. der Kundenressource 406 bereit. In einer weiteren Implementierung sendet der Ressourcenautoriserungsmanager 414 Befehle an die Dienstverwaltungskonsole 422, um die Dienstverwaltungskonsole 422 dazu zu veranlassen, den Autorisierungsagenten 424 auf der Kundenressource 406 zu installieren. In noch einer weiteren Implementierung sendet der Ressourcenautoriserungsmanager 414 Befehle an die Kundenressource 406, welche die Kundenressource 4062 dazu veranlassen, den Autorisierungsagenten 424 zu installieren. Der Autorisierungsagent 424 kann durch Kopieren von ausführbaren Bildern auf die Kundenressource 406 oder durch Ausführen eines Installationsprogramms oder Installationsskripts für den Autorisierungsagenten 424 auf der Kundenressource 406 installiert werden. In einigen Implementierungen stellt der Kunde 407 dem Installationsprogramm oder-skript, das den Autorisierungsagenten 424 installiert, die Ressourcenkennung und den Aktivierungscode als Parameter bereit. In einer weiteren Implementierung sendet der Kunde 407 die Ressourcen-ID und den Aktivierungscode als Teil eines Aktivierungsbefehls an den Autorisierungsagenten 424.
  • Der Autorisierungsagent 424 wird als ein Dienst auf der Kundenressource 406 betrieben und mit dem Ressourcenautoriserungsmanager 414 aktiviert, um ein Autorisierungstoken zu erwerben, das einen Zugriff auf den Computing-Dienst 410 ermöglicht. Der Autorisierungsagent 424 generiert ein öffentlich-privates Schlüsselpaar und speichert das öffentlich-private Schlüsselpaar auf der Kundenressource 406. In einigen Implementierungen generiert der Autorisierungsagent 424 eine pseudo-eindeutige Ressourcen-ID, die verwendet werden kann, um zu erfassen, ob Kundenressourcen geklont oder repliziert sind. Der Autorisierungsagent 424 sendet eine Aktivierungsanforderung an den Autorisierungsdienst, welche die Ressourcen-ID für die Kundenressource, die durch den Autorisierungsagenten 424 generierte pseudo-eindeutige Ressourcen-ID, den öffentlichen Schlüssel des öffentlich-privaten Schlüsselpaars und einen Zeitstempel beinhaltet. Die Aktivierungsanforderung wird unter Verwendung des privaten Schlüssels des öffentlich-privaten Schlüsselpaars signiert und an den Autorisierungsdienst 404 gesendet. Der Autorisierungsdienst 404 greift auf die Ressourcenregistrierungsdatenbank 418 zu und bestimmt, ob der Aktivierungscode für die bereitgestellte Ressourcen-I D gültig ist und ob der Aktivierungscode abgelaufen ist oder vorangehend verwendet wurde. Wenn der Aktivierungscode nicht vorangehend verwendet wurde, nicht abgelaufen ist und für die bereitgestellte Ressourcen-I D gültig ist, akzeptiert der Ressourcenautoriserungsmanager 414 die Aktivierung des Autorisierungsagenten 424 und hält die Ressourcen-ID, die pseudo-eindeutige Ressourcen-ID, die Rollen und Berechtigungen, die der Kundenressource 406 gewährt werden, und den öffentlichen Schlüssel des öffentlich-privaten Schlüsselpaars in der Ressourcenautorisierungsdatenbank 420 fest. Der Ressourcenautoriserungsmanager 414 fordert eine Autorisierung von dem Autorisierungstokendienst 412 an, der die Rollen und Genehmigungen gewährt, die während der Registrierung der Kundenressource 406 angefordert wurden, und gibt das Autorisierungstoken an den Autorisierungsagenten 424 aus.
  • Die Kundenressource 406 kann das Autorisierungstoken verwenden, um Anforderungen zu autorisieren, die an den Computing-Dienst 410 gesendet werden. In einigen Implementierungen läuft das Autorisierungstoken nach einem Zeitraum ab, wie etwa einer Stunde. Wenn das Autorisierungstoken abläuft, kann der Autorisierungsagent 424 ein aktualisiertes Token von dem Ressourcenautoriserungsmanager 414 anfordern. Anforderungen von dem Autorisierungsagenten 424 werden mit dem privaten Schlüssel des öffentlich-privaten Schlüsselpaars signiert und der Ressourcenautoriserungsmanager 414 verifiziert die Quelle der Anforderung durch Bestätigen der Signatur an der Anforderung mit öffentlichen Schlüsseln, die in der Ressourcenautorisierungsdatenbank 420 gespeichert sind. Der Kunde 407 kann Rollen und Genehmigungen verwalten, die den Kundenressourcen über die Dienstverwaltungskonsole 422 gewährt werden. Wenn eine bestimmte Kundenressource zum Beispiel manipuliert wurde oder außer Betrieb genommen wird, kann der Kunde 407 über die Dienstverwaltungskonsole 422 auf den Ressourcenautoriserungsmanager 414 zugreifen und die manipulierte Kundenressource aus der Registrierung entfernen. Der Ressourcenautoriserungsmanager 414 nimmt mit dem Autorisierungstokendienst 412 Kontakt auf und macht die Token ungültig, die in der manipulierten Ressource gespeichert sind. Folglich ist die manipulierte Ressource nicht mehr in der Lage, auf den Computing-Dienst 410 zuzugreifen.
  • 5 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch eine Dienstverwaltungskonsole, einen Autorisierungsdienst und einen Autorisierungsagenten durchgeführt wird, gemäß einer Ausführungsform einen Zugriff auf einen Onlinedienst durch eine Kundenressource autorisiert. Ein Swimmlane-Diagramm 500 veranschaulicht Vorgänge, die durch die Dienstverwaltungskonsole, den Autorisierungsdienst und den Autorisierungsagenten durchgeführt werden. Die Dienstverwaltungskonsole ist ein Schnittstellenprogramm, das von einem Kunden verwendet wird, um mit dem Autorisierungsdienst zu kommunizieren. Die Dienstverwaltungskonsole kann eine Befehlszeilenschnittstelle, eine grafische Schnittstelle oder eine API sein. Der Prozess beginnt bei Block 502, bei dem ein Kunde eine Anforderung, eine Kundenressource mit dem Autorisierungsdienst zu registrieren, über die Dienstverwaltungskonsole übermittelt. Die Anforderung beinhaltet eine Reihe von Parametern, darunter eine Bezeichnung für die Kundenressource und eine Sicherheitsrolle und/oder Sicherheitsgenehmigungen, die der Kundenressource gewährt werden sollen/soll. Durch die Sicherheitsrolle und/oder Sicherheitsgenehmigungen werden/wird die Rechte angegeben, welche die Kundenressource bei Zugriff auf den Onlinedienst haben wird.
  • Bei Block 504 empfängt der Autorisierungsdienst die Anforderung von der Dienstverwaltungskonsole. Der Autorisierungsdienst untersucht die Kundenanmeldeinformationen, die in die Anforderung integriert sind, um zu bestimmen, ob die Kundenressource für die angeforderte(n) Sicherheitsrolle und/oder Sicherheitsgenehmigungen registriert werden soll. Zum Beispiel kann der Kunde einen Benutzernamen und ein Passwort, ein digitales Zertifikat oder eine biometrische Signatur zur Identifizierung des Kunden und zum Ermöglichen, die Anforderung durch den Autorisierungsdienst zu autorisieren, bereitstellen. Wenn die Anforderung autorisiert wurde, fährt die Ausführung mit Block 508 fort. Der Autorisierungsdienst generiert einen Aktivierungscode und eine Ressourcen-ID für die Kundenressource und der Aktivierungscode, die Ressourcen-ID und ein Registrierungszeitstempel werden der Ressourcenregistrierungsdatenbank hinzugefügt. In einigen Implementierungen ist der Aktivierungscode ein alphanumerischer Code zur einmaligen Verwendung, der nach einem Zeitraum oder als Folge einer ersten Verwendung abläuft. Die Gültigkeitsdauer kann durch den Autorisierungsdienst einmal pro Kundenressource oder global für Kundendienste konfiguriert werden, die durch den Autorisierungsdienst autorisiert wurden. Die Gültigkeitsdauer kann in Form eines Zeitstempels, der den aktuellen Zeitpunkt zusammen mit einer Versatzdauer darstellt, oder als ein Zeitstempel festgehalten werden, der einen zukünftigen Zeitpunkt darstellt, zu dem die Gültigkeitsdauer endet. Der Kunde kann eine Gültigkeitsdauer für den Aktivierungscode mit einer Registrierungsanforderung angeben. Wenn der Kunde eine Gültigkeitsdauer mit der Registrierungsanforderung angibt, wird die Gültigkeitsdauer in der Ressourcenregistrierungsdatenbank auf dem Autorisierungsdienst festgehalten. Der Autorisierungsdienst gibt den Aktivierungscode und die Ressourcen-ID an die Dienstverwaltungskonsole aus.
  • Bei Block 510 empfängt die Dienstverwaltungskonsole den Aktivierungscode und die Ressourcen-ID von dem Autorisierungsdienst. Als Reaktion auf das Empfangen der Registrierungsinformationen von dem Autorisierungsdienst initiiert die Dienstverwaltungskonsole die Installation 512 des Autorisierungsagenten auf der Kundenressource. In einigen Implementierungen stellt der Autorisierungsdienst Anweisungen mit dem Aktivierungscode bereit, die den Kunden anweisen, einen Autorisierungsagenten auf der Kundenressource zu installieren. Die Anweisungen können ein Installationsprogramm oder -skript für den Autorisierungsagenten oder Anweisungen zum Herunterladen eines Installationsprogramms oder -skripts für den Autorisierungsagenten beinhalten. Das Installationsprogramm oder -skript verwendet die Registrierungsinformationen, die durch den Autorisierungsdienst bereitgestellt wurden, als Parameter. In einer weiteren Implementierung veranlasst der Autorisierungsdienst die Dienstverwaltungskonsole dazu, ein Skript aufzurufen, das ein ausführbares Bild von dem Autorisierungsagenten auf die Kundenressource kopiert, und ruft den Autorisierungsagenten auf der Kundenressource auf. In noch einer weiteren Implementierung veranlasst der Autorisierungsdienst die Dienstverwaltungskonsole dazu, ein Installationsprogramm auf der Kundenressource aufzurufen, das den Autorisierungsagenten installiert und ausführt.
  • Bei Block 514 wird der Autorisierungsagent auf der Kundenressource installiert. Die Registrierungsinformationen, die der Dienstverwaltungskonsole durch den Autorisierungsdienst bereitgestellt wurden, werden als Teil der Installation an den Autorisierungsagenten weitergeleitet. Der Autorisierungsagent speichert die Ressourcen-ID und den Aktivierungscode zur Verwendung bei der Aktivierung mit dem Autorisierungsdienst. Der Autorisierungsagent generiert 515 ein verschlüsseltes öffentlich-privates Schlüsselpaar. Das öffentlich-private Schlüsselpaar wird durch den Autorisierungsagenten auf der Kundenressource gespeichert und der öffentliche Schlüssel des öffentlich-privaten Schlüsselpaars wird dem Autorisierungsdienst bereitgestellt. Der Autorisierungsagent signierte zukünftige Anforderungen, die an den Autorisierungsdienst gesendet werden, unter Verwendung des privaten Schlüssels des öffentlich-privaten Schlüsselpaars. Bei Block 516 wird der Autorisierungsagent mit dem Autorisierungsdienst aktiviert, indem die Ressourcen-ID, der öffentliche Schlüssel und der Aktivierungscode dem Autorisierungsdienst bereitgestellt werden. Die Aktivierungsanforderung kann mit dem privaten Schlüssel des öffentlich-privaten Schlüsselpaars signiert werden. In einigen Implementierungen generiert der Autorisierungsagent eine pseudo-eindeutige Ressourcen-ID zumindest teilweise auf Grundlage einer Prozessor-ID, einer Hardware-Seriennummer, einer Netzwerkadresse, einer IP-Adresse oder eines Medienzugriffscodes („MAC“) einer Netzwerkschnittstelle, die der Kundenressource zugeordnet ist. Die pseudo-eindeutige Ressourcen-I D wird dem Autorisierungsdienst während der Aktivierung bereitgestellt und kann verwendet werden, um zwischen Ressourcen zu unterscheiden, die während eines Abbildungsprozesses oder Snapshot-Prozesses geklont oder repliziert wurden.
  • Bei Block 518 empfängt der Autorisierungsdienst die Aktivierungsanforderung und bestätigt die Signatur an der Anforderung unter Verwendung des öffentlichen Schlüssels, der mit der Anforderung bereitgestellt wird. Der Autorisierungsdienst bestätigt den Aktivierungscode und die Ressourcen-ID unter Verwendung von Informationen in der Ressourcenregistrierungsdatenbank. Die Aktivierung der Kundenressource wird gewährt, wenn das Aktivierungstoken nicht abgelaufen ist, nicht vorangehend verwendet wurde und an der bereitgestellten Ressourcen-ID registriert ist. Wenn die Aktivierung gewährt wird, registriert 519 der Autorisierungsdienst die Kundenressource bei dem Onlinedienst durch Erwerben eines Autorisierungstokens von einem Autorisierungstokendienst, der dem Onlinedienst zugeordnet ist. Durch das Autorisierungstoken werden die Sicherheitsrollen und/oder Sicherheitsgenehmigungen gewährt, für welche die Kundenressource registriert ist, wenn es einem Onlinedienst mit einer Dienstanforderung bereitgestellt wird. Bei Block 520 wird das Autorisierungstoken dem Autorisierungsagenten bereitgestellt. Der Autorisierungsagent empfängt das Autorisierungstoken von dem Autorisierungsdienst und speichert 522 das Autorisierungstoken zur Verwendung mit Dienstanforderungen, die an den Onlinedienst übermittelt werden.
  • In einigen Implementierungen generiert der Autorisierungsagent bei Block 516 ein öffentlich-privates Schlüsselpaar. Das öffentlich-private Schlüsselpaar wird durch den Autorisierungsagenten zur Verwendung beim Signieren von Nachrichten gespeichert, die zwischen dem Autorisierungsagenten und dem Autorisierungsdienst ausgetauscht werden. Der öffentliche Schlüssel des öffentlich-privaten Schlüsselpaars wird dem Autorisierungsdienst mit dem Aktivierungscode und der Ressourcen-ID in einer Nachricht bereitgestellt, die mit dem privaten Schlüssel des öffentlich-privaten Schlüsselpaars signiert ist. Bei Block 518 bestätigt der Autorisierungsdienst die Signatur unter Verwendung des bereitgestellten öffentlichen Schlüssels und speichert den öffentlichen Schlüssel in einer Ressourcenautorisierungsdatenbank, die durch den Autorisierungsdienst verwaltet wird. Nachrichten, die von dem Autorisierungsdienst an den Autorisierungsagenten gesendet werden, können mit dem öffentlichen Schlüssel signiert werden. Wenn der Autorisierungsdienst zum Beispiel bei Block 520 das Autorisierungstoken an den Autorisierungsagenten sendet, kann das Autorisierungstoken unter Verwendung des öffentlichen Schlüssels verschlüsselt werden und kann der Autorisierungsdienst die Nachricht unter Verwendung des privaten Schlüssels des öffentlich-privaten Schlüsselpaars entschlüsseln.
  • 6 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst, einen Autorisierungsagenten und einen Onlinedienst durchgeführt wird, gemäß einer Ausführungsform eine Onlinedienstanforderung erfüllt, die durch eine Kundenressource übermittelt wird. Ein Swimmlane-Diagramm 700 veranschaulicht Vorgänge, die durch den Autorisierungsdienst, den Autorisierungsagenten und den Onlinedienst durchgeführt werden. Der Autorisierungsdienst gibt als Reaktion auf den in 5 veranschaulichten Prozess ein Autorisierungstoken an den Autorisierungsagenten aus 602, der auf der Kundenressource ausgeführt wird. Der Autorisierungsagent speichert 604 das Autorisierungstoken zur Verwendung mit Dienstanforderungen, die an den Onlinedienst übermittelt werden. Bei Block 606 generiert der Autorisierungsagent eine Dienstanforderung für den Onlinedienst. Die Dienstanforderung wird dem Onlinedienst zusammen mit dem Autorisierungstoken übermittelt 608.
  • Der Onlinedienst authentifiziert 610 den Anfordernden als Reaktion auf Empfangen der Dienstanforderung zumindest teilweise auf Grundlage einer Bestimmung, dass das Token gültig und nicht abgelaufen ist. Wenn die Ressourcen-ID durch den Autorisierungsagenten bereitgestellt wird, bestimmt der Autorisierungsagent, dass das Autorisierungstoken der Ressourcen-ID zugeordnet ist. Bei Block 612 ruft der Onlinedienst die Sicherheitsrolle und/oder Sicherheitsberechtigungen ab, die dem Autorisierungstoken zugeordnet sind/ist. Wenn die Sicherheitsrolle und/oder Sicherheitsgenehmigungen ausreichend sind/ist, um die Anforderung zu erfüllen, fährt die Ausführung mit Block 614 fort und erfüllt der Onlinedienst die Anforderung, die durch die Kundenressource übermittelt wurde. Wenn der Autorisierungstoken nicht gültig ist oder wenn die Sicherheitsrolle oder Sicherheitsgenehmigungen nicht ausreichend ist bzw. sind, wird die Dienstanforderung verweigert.
  • Bei Block 616 empfängt der Autorisierungsagent die Ergebnisse der Dienstanforderung. Wenn die Dienstanforderung erfüllt wurde, können die Ergebnisse an den Absender der Dienstanforderung weitergeleitet werden, wie etwa an ein Anwendungsprogramm, das auf der Kundenressource ausgeführt wird. Wenn die Dienstanforderung verweigert wurde, kann der Autorisierungsagent weitere Maßnahmen ergreifen, wie etwa Anfordern einer Erneuerung des Autorisierungstokens oder erneutes Registrieren der Kundenressource mit dem Autorisierungsdienst.
  • 7 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst, einen Autorisierungsagenten und einen Onlinedienst durchgeführt wird, gemäß einer Ausführungsform ein Autorisierungstoken aktualisiert, das durch eine Kundenressource verwendet wird. In vielen Implementierungen laufen Autorisierungstoken, die an Autorisierungsagenten ausgegeben werden, nach einem Zeitraum ab und werden durch den Autorisierungsagenten aktualisiert, um einen weiteren Zugriff auf den Onlinedienst sicherzustellen. Ein Swimmlane-Diagramm 700 veranschaulicht Vorgänge, die durch den Autorisierungsdienst, den Autorisierungsagenten und den Onlinedienst durchgeführt werden. Bei Block 702 generiert der Autorisierungsagent eine Dienstanforderung für den Onlinedienst. Die Dienstanforderung kann von dem Autorisierungsagenten stammen oder kann als Reaktion auf eine Anforderung von einem Anwendungsprogramm generiert werden, das auf der Kundenressource ausgeführt wird. Der Autorisierungsagent übermittelt 704 die Dienstanforderung zusammen mit dem Autorisierungstoken an den Onlinedienst.
  • Der Onlinedienst versucht, die Dienstanforderung durch Bestätigen, dass das Token ordnungsgemäß an der Kundenressource registriert ist und dass jegliche der Dienstanforderung zugeordnete Anmeldeinformationen oder Signaturen gültige sind, zu authentifizieren 708. Bei Block 710 bestimmt der Onlinedienst, dass das Autorisierungstoken abgelaufen ist, und benachrichtigt den Autorisierungsagenten.
  • Der Autorisierungsagent empfängt die Benachrichtigung, dass das Autorisierungstoken abgelaufen ist, und fordert 712 ein neues Autorisierungstoken von dem Autorisierungsdienst an. Der Autorisierungsagent signiert die Anforderung mit einem privaten Schlüssel eines öffentlich-privaten Schlüsselpaars, das durch den Autorisierungsagenten generiert und während der Registrierung der Kundenressource mit dem Autorisierungsagenten verwendet wird.
  • Als Reaktion auf Empfangen der Anforderung eines neuen Autorisierungstokens authentifiziert 713 der Autorisierungsdienst die Anforderung durch Verifikation der Signatur an der Anforderung unter Verwendung des öffentlichen Schlüssels des öffentlich-privaten Schlüsselpaars, das in der Ressourcenautorisierungsdatenbank verwaltet wird, und erwirbt 714 ein neues Autorisierungstoken. Das neue Autorisierungstoken kann erworben werden, indem die Sicherheitsrollen und/oder Sicherheitsgenehmigungen von der Ressourcenregistrierungsdatenbank abgerufen werden und ein Autorisierungstoken von einem Autorisierungstokendienst angefordert wird, der dem Onlinedienst zugeordnet ist, der von der Kundenressource verwendet wird. Bei Block 716 stellt der Autorisierungsdienst dem Autorisierungsagenten das neue Autorisierungstoken bereit. Das neue Autorisierungstoken kann unter Verwendung des öffentlichen Schlüssels des öffentlich-privaten Schlüsselpaars signiert oder verschlüsselt werden und bei Empfang durch den Autorisierungsagenten entschlüsselt werden.
  • Der Autorisierungsagent empfängt das neue Autorisierungstoken von dem Autorisierungsdienst und speichert 718 das neue Autorisierungstoken zur Verwendung bei der Übermittlung von Dienstanforderungen an den Onlinedienst. Die Dienstanforderung wird durch den Autorisierungsagenten zusammen mit dem neuen Autorisierungstoken erneut an den Onlinedienst übermittelt 720. Dienstanforderungen können dem Onlinedienst unter Verwendung eines sicheren Netzwerkprotokolls, wie etwa TLS oder SSL, an einem IP-Port, der zum Empfangen solcher Anforderung dient, übermittelt werden.
  • Der Onlinedienst empfängt die erneut übermittelte Dienstanforderung und authentifiziert 722 die erneut übermittelte Anforderung unter Verwendung des neuen Autorisierungstokens. Wenn das neue Autorisierungstoken einer Sicherheitsrolle und/oder Sicherheitsgenehmigungen zugeordnet ist, die ermöglichen/ermöglicht, dass die Anforderung erfüllt wird, erfüllt der Onlinedienst 724 die Dienstanforderung und gibt entsprechende Ergebnisse an den Autorisierungsagenten aus.
  • In einigen Implementierungen generiert der Autorisierungsagent eine pseudoeindeutige Ressourcen-ID, die dem Autorisierungsdienst bei dem Anfordern eines neuen Autorisierungstokens bereitgestellt wird. Die pseudo-eindeutige Ressourcen-ID kann durch den Autorisierungsdienst verwendet werden, um zu erfassen, ob der Autorisierungsagent auf einer Kundenressource installiert ist, die von einer anderen Kundenressource geklont wurde, die vorangehend mit dem Autorisierungsdienst registriert wurde. Wenn eine geklonte Kundenressource erfasst wird, kann der Autorisierungsdienst die geklonte Kundenressource als eine neue Kundenressource registrieren, anstatt das aktuell durch die geklonte Kundenressource verwendete zu aktualisieren. In einigen Implementierungen verweigert der Autorisierungsdienst die Anforderung eines neuen Autorisierungstokens, wenn eine geklonte Kundenressource erfasst wird, wodurch der Autorisierungsagent auf der geklonten Kundenressource dazu veranlasst wird, eine Anforderung auszugeben, als eine neue Kundenressource registriert zu werden.
  • In einer weiteren Implementierung generiert der Autorisierungsagent bei Block 702 eine Dienstanforderungsfolgenummer für die Dienstanforderung. Die Dienstanforderungsfolgenummer wird für jede Folgeanforderung inkrementiert, die an den Onlinedienst übermittelt wird. Wenn der Onlinedienst bei Block 708 eine Dienstanforderung empfängt, die eine Folgenummer enthält, vergleicht der Onlinedienst die empfangene Folgenummer mit der vorangehend empfangenen Folgenummer. Wenn die empfangene Folgenummer nicht größer der vorangehen empfangen Folgenummer ist, bestimmt der Onlinedienst, dass der Anforderer eine geklonte Kundenressource ist und verweigert die Dienstanforderung. Wenn der Autorisierungsagent eine Benachrichtigung über eine inkorrekte Folgenummer von dem Onlinedienst empfängt, kann der Autorisierungsagent verschiedene Maßnahmen ergreifen, einschließlich Senden einer Anforderung an den Autorisierungsdienst, den aktuellen Autorisierungstoken ungültig zu machen, Anfordern eines neuen Autorisierungstokens von dem Autorisierungsdienst und Melden der geklonten Ressource über die Dienstverwaltungskonsole an den Kunden.
  • 8 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst durchgeführt wird, gemäß einer Ausführungsform eine Kundenressource zur Verwendung mit einem Onlinedienst registriert. Ein Prozessdiagramm 800 zeigt einen Prozess, der bei Block 802 beginnt, bei dem ein Autorisierungsdienst eine Registrierungsanforderung, eine Kundenressource zu registrieren, von einem Kunden empfängt. Die Registrierungsanforderung kann von einem Kundencomputer stammen, der eine Dienstverwaltungskonsole hostet. Der Kunde greift von dem Kundencomputer auf die Dienstverwaltungskonsole zu, um einen Zugriff auf Onlinedienste von verschiedenen Kundenressourcen zu gewähren oder zu verweigern. Die Registrierungsanforderung kann eine Ressourcenbezeichnung beinhalten und gibt eine oder mehrere Sicherheitsrollen und/oder eine oder mehrere Sicherheitsberechtigungen an. Die Sicherheitsrollen und Berechtigungen definieren Rechte und Privilegien, die der Kundenressource in Bezug auf den Onlinedienst zu gewähren sind. Zum Beispiel können der Kundenressource im Rahmen einer Sicherheitsrolle administrative Zugriffsrechte auf den Onlinedienst gewährt werden oder können Privilegien angegeben sein, durch die der Kundenressource die Fähigkeit eingeräumt wird, einen Lesebefehl von einem Speicherdienst auszuführen, jedoch die Fähigkeit verweigert wird, dem Speicherdienst einen Schreibbefehl zu geben. Die Registrierungsanforderung beinhaltet durch den Kunden zur Verfügung gestellte Anmeldeinformationen. Die Anmeldeinformationen können die Form eines Benutzernamens und Passworts, eines digitalen Zertifikats, einer Zwei-Faktor-Authentifizierungssequenz, einer biometrischen Identifikation oder von anderen Anmeldeinformationen annehmen. Bei Block 804 verifiziert der Autorisierungsdienst die Anmeldeinformationen des Kunden, um die Identität des Kunden zu authentifizieren. Der Autorisierungsdienst bestimmt 806 zumindest teilweise auf Grundlage der Anmeldeinformationen des Kunden, ob der Kunde autorisiert ist, eine Kundenvorrichtung mit den angeforderten Sicherheitsrollen und/oder Privilegien zu registrieren. In einigen Implementierungen beinhalten die Kundenanmeldeinformationen eine Eigenschaft (AssignRole), die angibt, ob der Kunde Kundenressourcen Rollen und Privilegien zuweisen darf. Wenn es die Anmeldeinformationen des Kunden dem Kunden nicht ermöglichen, eine Kundenressource mit den angeforderten Sicherheitsrollen und/oder Privilegien zu registrieren, geht die Ausführung zu Block 808 über und wird die Registrierungsanforderung verweigert.
  • Wenn es die Anmeldeinformationen des Kunden dem Kunden ermöglichen, die Kundenressource zu registrieren, fährt die Ausführung mit Block 810 fort und generiert der Autorisierungsdienst eine Ressourcen-ID für die Ressource. Bei der Ressourcen-ID handelt es sich um eine Kennung, die an den Kunden ausgegeben und der Kundenressource zur Verfügung gestellt wird, wenn die Kundenressource aktiviert ist. Die Ressourcen-ID kann eine alphanumerische Sequenz, eine ganze Zahl, ein Generally Unique Identifier („GUID“), eine binäre Sequenz oder ein Datenbank-Index sein. Bei Block 812 generiert der Autorisierungsdienst einen Aktivierungscode für die Ressource. In einigen Implementierungen handelt es sich bei dem Aktivierungscode um eine alphanumerische Sequenz, wie etwa eine Gruppe aus vier Tupeln, eine ganze Zahl oder eine Sequenz aus Buchstaben, die einen Satz von phonetisch aussprechbaren Silben bildet. Bei dem Aktivierungscode kann es sich zum Beispiel um einen Base-64-codierten 128-Bit-Aktivierungscode (22 Zeichen) handeln, der unter Verwendung einer zufälligen oder pseudozufälligen Zahl generiert wurde. Der Autorisierungsdienst speichert 814 die Ressourcen-ID und den Aktivierungscode zusammen mit der Ressourcenbezeichnung und den Sicherheitsrollen in einer Ressourcenregistrierungsdatenbank, die durch den Autorisierungsdienst verwaltet wird. In einigen Implementierungen speichert der Autorisierungsdienst den Zeitstempel, der den Zeitpunkt festhält, an dem der Aktivierungscode generiert wurde, und läuft der Aktivierungscode nach einem Zeitraum ab, wie etwa einer Stunde.
  • Bei Block 816 gibt der Autorisierungsdienst den Aktivierungscode und die Ressourcen-ID an den Kunden aus. In einigen Implementierungen gibt der Autorisierungsdienst den Aktivierungscode und die Ressourcen-ID über die Dienstverwaltungskonsole an den Kunden aus. Der Autorisierungsdienst kann die Dienstverwaltungskonsole dazu veranlassen, einen Autorisierungsagenten auf der Kundenressource zu installieren. Alternativ kann der Autorisierungsdienst dem Kunden Anweisungen zum Herunterladen und Installieren eines Autorisierungsagenten auf der Kundenressource bereitstellen.
  • 9 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsagenten auf einer Kundenressource durchgeführt wird, gemäß einer Ausführungsform eine Kundenressource aktiviert, um einen Onlinedienst zu verwenden. Ein Prozessdiagramm 900 veranschaulicht einen Prozess, der bei Block 902 beginnt, bei dem ein Autorisierungsagent zum Beispiel durch Befehl durch einen Kunden anfordert, eine Kundenressource zu aktivieren. Dem Autorisierungsagenten kann bei dem Prozess, durch den der Autorisierungsagent auf der Kundenressource installiert wird, der Befehl gegeben werden, die Kundenressource zu aktivieren. Zum Beispiel kann das Installationsprogramm oder Installationsskript, das den Autorisierungsagenten installiert, Parameter verwenden, die einen Aktivierungscode und eine Ressourcen-ID einschließen. Sobald der Agent installiert wurde, initiierte das Installationsskript oder Installationsprogramm den in 9 veranschaulichten Aktivierungsprozess. In einem weiteren Beispiel installiert der Kunde den Autorisierungsagenten und führt der Kunde dann einen Aktivierungsbefehl über eine Schnittstelle aus, die durch den Autorisierungsagenten bereitgestellt wird, wodurch der Aktivierungscode und die Ressourcen-ID als Parameter bereitgestellt werden.
  • Als Reaktion auf Empfangen des Befehls, eine Kundenressource zu aktivieren, erzeugt 904 der Autorisierungsagent eine pseudo-eindeutige Ressourcen-ID. Die pseudoeindeutige Ressourcen-ID kann zumindest teilweise auf Grundlage einer Seriennummer, die der Kundenressource zugeordnet ist, einer Prozessor-ID, einer Netzwerkadresse einer Netzwerkschnittstelle, die der Kundenressource zugeordnet ist, einer Medienzugriffssteuerungsadresse („MAC“) einer Netzwerkschnittstelle, die der Kundenressource zugeordnet ist, oder einer Systemkonfiguration der Kundenressource generiert werden. Die pseudo-eindeutige Ressourcen-ID kann verwendet werden, um Kundenressourcen, die unter Verwendung von Bilddateien oder Snapshots von ihren übergeordneten Kundenressourcen geklont wurden, oder andere geklonte Kundenressourcen zu unterscheiden. Bei Block 906 generiert und speichert der Autorisierungsclient ein öffentlich-privates Schlüsselpaar, wie etwa ein 2048-Bit-RSA-Schlüsselpaar. Das öffentlich-private Schlüsselpaar wird verwendet, um mit einem Autorisierungsdienst zu kommunizieren.
  • Der Autorisierungsagent generiert 908 einen Aktivierungsbefehl, der an einen Autorisierungsdienst übermittelt werden soll. Der Aktivierungsbefehl kann zum Beispiel die Ressourcen-ID, die pseudo-eindeutige Ressourcen-ID, den Aktivierungscode und den öffentlichen Schlüssel des öffentlich-privaten Schlüsselpaars beinhalten. Der Aktivierungsbefehl wird unter Verwendung des privaten Schlüssels des öffentlich-privaten Schlüsselpaars signiert 910. Bei Block 912 wird der Aktivierungsbefehl an den Autorisierungsdienst übertragen. Der Aktivierungsbefehl kann über das Netzwerk und unter Verwendung eines sicheren Protokolls, wie etwa TLS oder SSL, an den Autorisierungsdienst übertragen wegen.
  • Der Autorisierungsdienst gibt die Ergebnisse des Aktivierungsbefehls an den Autorisierungsagenten aus. Wenn der Autorisierungsdienst angibt 914, dass die Aktivierung nicht erfolgreich war, wird ein Zugriff auf den Onlinedienst verweigert 916. Wenn der Autorisierungsdienst angibt 914, dass der Aktivierungsbefehl erfolgreich war, empfängt 918 der Autorisierungsagent ein Autorisierungstoken von dem Autorisierungsdienst, das verwendet werden kann, um gemäß den Sicherheitsrollen und Sicherheitsgenehmigungen, die während der Registrierung der Kundenressource durch den Kunden angegeben werden, auf den Onlinedienst zuzugreifen. Das Autorisierungstoken wird durch den Autorisierungsagenten zur Verwendung mit späteren Dienstanforderungen gespeichert 920.
  • 10 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst durchgeführt wird, gemäß einer Ausführungsform eine Ressourcenaktivierungsanforderung erfüllt. Ein Prozessdiagramm 1000 zeigt einen Prozess, der bei Block 1002 beginnt, bei dem ein Autorisierungsdienst eine Aktivierungsanforderung von einem Autorisierungsagenten empfängt, der auf einer Kundenressource ausgeführt wird. Die Aktivierungsanforderung beinhaltet einen Aktivierungscode, eine Ressourcen-ID, eine pseudo-eindeutige Ressourcen-ID, einen öffentlichen Schlüssel eines öffentlich-privaten Schlüsselpaars, der dem Autorisierungsagenten zugeordnet ist, und einen Zeitstempel. Die Aktivierungsanforderung wird mit einem privaten Schlüssel des öffentlich-privaten Schlüsselpaars signiert. Der Autorisierungsdienst nimmt eine Reihe von Bestimmungen vor, um zu bestimmen, ob die Aktivierungsanforderung zulässig ist oder nicht.
  • Bei Block 1003 bestimmt der Autorisierungsdienst, ob die Aktivierungsanforderung abgelaufen ist. Die Aktivierungsanforderung ist abgelaufen, wenn der in den Aktivierungscode eingeschlossene Zeitstempel über fünf Minuten alt ist. Dies kann verhindern, dass eine Aktivierungsanforderung bei einem Replay-Angriff wiederverwendet wird. Wenn die Aktivierungsanforderung nicht abgelaufen ist, fährt die Ausführung mit Block 1004 fort und bestimmt der Autorisierungsdienst unter Verwendung des öffentlichen Schlüssels, der mit der Aktivierungsanforderung bereitgestellt wurde, ob die Signatur an der Aktivierungsanforderung korrekt ist. Wenn die Signatur gültig ist, fragt der Autorisierungsdienst die Ressourcenregistrierungsdatenbank ab, um zu bestimmen 1006, ob der Aktivierungscode abgelaufen ist. Der Aktivierungscode kann abgelaufen sein, wenn ein Zeitraum über einer Gültigkeitsschwelle abgelaufen ist, seitdem der Aktivierungscode von dem Autorisierungsdienst ausgegeben wurde, oder wenn der Aktivierungscode vorangehend verwendet wurde, um eine Kundenressource mit dem Autorisierungsdienst zu aktivieren. Wenn der Aktivierungscode nicht abgelaufen ist, bestimmt 1008 der Autorisierungsdienst, ob der Aktivierungscode gültig ist. Der Aktivierungscode ist gültig, wenn die Informationen in der Ressourcenregistrierungsdatenbank angeben, dass der Aktivierungscode angemessen an der Kundenressource registriert wurde, die den Autorisierungsagenten hostet. Wenn die vorgehend beschriebenen Bedingungen nicht erfüllt sind, fährt die Ausführung mit Block 1012 fort und verweigert der Autorisierungsdienst die Aktivierungsanforderung. Wenn die vorgehend beschriebenen Bedingungen erfüllt sind, fährt die Ausführung mit Block 1014 fort.
  • Bei Block 1014 hält der Autorisierungsdienst die Aktivierungsinformationen in einer Ressourcenautorisierungsdatenbank fest. Die Aktivierungsinformationen können Folgendes beinhalten: einen Zeitstempel, der angibt, wann die Aktivierungsanforderung gewährt wurde, eine Gültigkeitsdauer für ein Autorisierungstoken, das der Aktivierung zugeordnet ist, die Ressourcen-ID und pseudoeindeutige Ressourcen-ID für die Kundenressource und den öffentlichen Schlüssel des öffentlich-privaten Schlüsselpaars. Bei Block 1016 erwirbt der Autorisierungsdienst das Autorisierungstoken für den Onlinedienst. Ein Autorisierungstoken für den Onlinedienst kann von einem Autorisierungstokendienst erworben werden, der dem Onlinedienst zugeordnet ist. In einigen Implementierungen ist der Autorisierungstokendienst einem Onlinedienstanbieter zugeordnet, der eine Vielzahl von Onlinediensten bereitstellt. In solchen Implementierungen kann ein einziges Autorisierungstoken für die Vielzahl von Onlinediensten verwendet werden.
  • Bei Block 1018 stellt der Autorisierungsdienst dem Autorisierungsagenten das Autorisierungstoken bereit. Das Autorisierungstoken kann mit dem öffentlichen Schlüssel signiert oder verschlüsselt werden, der als Teil der Anforderung durch den Autorisierungsagenten bereitgestellt wird. Das Autorisierungstoken kann durch den Autorisierungsagenten und die zugeordnete Kundenressource verwendet werden, um Dienstanforderungen an den Onlinedienst vorzunehmen.
  • 11 zeigt ein veranschaulichendes Beispiel eines Prozesses, der als Folge davon, dass er durch einen Autorisierungsdienst durchgeführt wird, gemäß einer Ausführungsform ein Aktivierungstoken aktualisiert. Ein Prozessdiagramm 1100 veranschaulicht einen Prozess zum Aktualisieren eines Aktivierungstokens, der bei Block 1102 beginnt, bei dem ein Autorisierungsdienst eine Aktualisierungsanforderung von einem Autorisierungsagenten empfängt. Die Aktualisierungsanforderung beinhaltet einen Zeitstempel für die Anforderung, eine Ressourcen-ID für die Kundenressource und in einigen Ausführungsformen eine pseudo-eindeutige Ressourcen-ID für die Kundenressource. Die Aktualisierungsanforderung wird mit einem privaten Schlüssel eines öffentlich-privaten Schlüsselpaars signiert, das sich im Besitz des Autorisierungsagenten befindet.
  • Der Autorisierungsdienst empfängt die Aktualisierungsanforderung und fragt eine Ressourcenautorisierungsdatenbank ab 1104, um den öffentlichen Schlüssel für den Autorisierungsagenten abzurufen. Der Autorisierungsdienst bestimmt 1106 unter Verwendung des öffentlichen Schlüssels, ob die Aktualisierungsanforderung abgelaufen ist. Der Autorisierungsdienst bestimmt, ob die Aktualisierungsanforderung abgelaufen ist, indem er bestimmt, ob die Differenz zwischen dem Zeitstempel und dem aktuellen Zeitpunkt einen Schwellenwert überschreitet. In einigen Implementierungen beträgt der Schwellenwert fünf Minuten. Wenn die Aktualisierungsanforderung abgelaufen ist, fährt die Ausführung mit Block 1108 fort und wird die Aktualisierungsanforderung verweigert. Wenn der Autorisierungsdienst bestimmt, dass die Aktualisierungsanforderung nicht abgelaufen ist, fährt die Ausführung mit Entscheidungsblock 1110 fort, bei dem der Autorisierungsdienst bestimmt, ob die Signatur an der Aktualisierungsanforderung gültig ist. Wenn der Autorisierungsdienst bestimmt, dass die Signatur an der Aktualisierungsanforderung nicht gültig ist, verweigert der Autorisierungsdienst 1108 die Aktualisierungsanforderung. Wenn der Autorisierungsdienst bestimmt, dass die Signatur an der Aktualisierungsanforderung gültig ist, fährt die Ausführung mit Entscheidungsblock 1114 fort, bei dem der Autorisierungsdienst die Ressourcenautorisierungsdatenbank abfragt, um zu bestimmen, ob der Autorisierungsagent durch eine geklonte Kundenressource gehostet wird. Eine geklonte Ressource kann durch Untersuchen der pseudo-eindeutigen Ressourcen-ID erfasst werden. Wenn die Ressourcenautorisierungsdatenbank einen Eintrag für die Ressourcen-ID beinhaltet, die in der Aktualisierungsanforderung angegeben ist, die pseudo-eindeutige Ressourcen-ID, die mit der Anforderung bereitgestellt wird, jedoch nicht mit der pseudo-eindeutigen Ressourcen-ID in der Ressourcenautorisierungsdatenbank übereinstimmt, bestimmt der Autorisierungsdienst, dass die Kundenressource, die den Autorisierungsagenten hostet, geklont sein kann. Wenn der Autorisierungsdienst bestimmt, dass die Kundenressource geklont sein kann, fährt die Ausführung mit Block 1116 fort und verweigert der Autorisierungsdienst die Aktualisierungsanforderung und gibt an dem Autorisierungsagenten an, dass eine geklonte Ressource erfasst wurde. In einigen Implementierungen erzeugt der Autorisierungsdienst einen neuen Eintrag in der Ressourcenautorisierungsdatenbank und autorisiert die geklonte Ressource mit der Ressourcen-ID, die unter Verwendung der pseudo-eindeutigen Ressourcen-ID von der übergeordneten Kundenressource unterschieden wurde.
  • Wenn keine geklonte Ressource durch den Autorisierungsdienst erfasst wurde, fährt die Ausführung mit Block 1118 fort, wobei der Autorisierungsdienst ein neues Autorisierungstoken für die Rolle bekommt, die während des Registrierungsprozesses für die Kundenressource angefordert wird. Das neue Autorisierungstoken kann von einem Autorisierungstokendienst erworben werden, der einem Onlinedienstanbieter oder dem Onlinedienst zugeordnet ist. Das Autorisierungstoken und Zeitstempel zum Verwalten einer Gültigkeitsdauer des Autorisierungstokens können in der Ressourcenautorisierungsdatenbank gespeichert werden. Bei Block 1120 wird das neue Autorisierungstoken dem Autorisierungsagenten bereitgestellt. Das Autorisierungstoken kann mit dem öffentlichen Schlüssel des öffentlich-privaten Schlüsselpaars signiert oder verschlüsselt werden, der dem Autorisierungsagenten zugeordnet ist.
  • 12 veranschaulicht Aspekte einer beispielhaften Umgebung 1200 für Implementierungsaspekte gemäß verschiedenen Ausführungsformen. Obwohl zu Zwecken der Erläuterung eine webbasierte Umgebung verwendet wird, versteht es sich, dass gegebenenfalls andere Umgebungen verwendet werden können, um verschiedene Ausführungsformen umzusetzen. Die Umgebung beinhaltet eine elektronische Kundenvorrichtung 1202, die eine beliebige zweckmäßige Vorrichtung beinhalten kann, die dazu betrieben werden kann, Aufforderungen, Meldungen oder Informationen über ein zweckmäßiges Netzwerk 1204 zu senden und zu empfangen und in einigen Ausführungsformen Informationen zurück an einen Benutzer der Vorrichtung zu übertragen. Zu Beispielen für derartige Kundenvorrichtungen gehören PCs, Mobiltelefone, tragbare Messaging-Vorrichtungen, Laptop-Computer, Tablet-Computer, Set-Top-Boxen, Personal Data Assistants, eingebettete Computersysteme, E-Book-Reader und dergleichen. Das Netzwerk kann ein beliebiges zweckmäßiges Netzwerk beinhalten, darunter ein Intranet, das Internet, ein Mobilfunknetz, ein lokales Netzwerk, ein Satellitennetzwerk oder ein beliebiges anderes derartiges Netzwerk und/oder eine Kombination daraus. Komponenten, die für ein derartiges System verwendet werden, können zumindest teilweise von der Art des ausgewählten Netzwerks und/oder der ausgewählten Umgebung abhängig sein. Viele Protokolle und Komponenten zum Kommunizieren über ein derartiges Netzwerk sind hinlänglich bekannt und werden hier nicht ausführlich erörtert. Kommunikation über das Netzwerk kann über drahtgebundene oder drahtlose Verbindungen und Kombinationen daraus ermöglicht werden. In diesem Beispiel beinhaltet das Netzwerk das Internet und/oder andere öffentlich zugängliche Kommunikationsnetze, da die Umgebung einen Webserver 1206 zum Empfangen von Aufforderungen und Darbieten von Inhalt als Reaktion darauf beinhaltet, wobei für andere Netzwerke eine alternative Vorrichtung, die einen ähnlichen Zweck erfüllt, verwendet werden könnte, wie es für den Durchschnittsfachmann ersichtlich ist.
  • Die veranschaulichende Umgebung beinhaltet zumindest einen Anwendungsserver 1208 und einen Datenspeicher 1210. Es versteht sich, dass mehrere Anwendungsserver, Schichten oder andere Elemente, Prozesse oder Komponenten vorliegen können, die verkettet oder anderweitig konfiguriert sein können und die interagieren können, um Aufgaben durchzuführen, wie etwa Erhalten von Daten von einem zweckmäßigen Datenspeicher. Server können wie hierin verwendet auf verschiedene Arten implementiert werden, wie etwa als Hardware-Vorrichtung oder virtuelle Computersysteme. In einigen Kontexten kann sich „Server“ auf ein Programmiermodul beziehen, das auf einem Computersystem ausgeführt wird. Es sei denn, etwas anderes ist angegeben oder ergibt sich aus dem Kontext, bezieht sich der Ausdruck „Datenspeicher“ im hier verwendeten Sinne auf eine beliebige Vorrichtung oder Kombination aus Vorrichtungen, die dazu in der Lage ist, Daten zu speichern, darauf zuzugreifen und diese abzurufen, was eine beliebige Kombination und Anzahl von Datenservern, Datenbanken, Datenspeichervorrichtungen und Datenspeichermedien in einer beliebigen standardmäßigen, verteilten, virtuellen oder geclusterten Umgebung einschließen kann. Der Anwendungsserver kann bei Bedarf eine beliebige zweckmäßige Hardware, Software und Firmware zum Integrieren in den Datenspeicher beinhalten, um Aspekte von einer oder mehreren Anwendungen für die Kundenvorrichtung auszuführen und einen Teil des Datenzugriffs und der Geschäftslogik oder den gesamten Datenzugriff und die gesamte Geschäftslogik für eine Anwendung zu handhaben. Der Anwendungsserver kann zusammen mit dem Datenspeicher Zugriffssteuerungsdienste bereitstellen und ist in der Lage, Inhalte zu generieren, darunter unter anderem Text, Grafiken, Audio, Video und/oder andere Inhalte, die zur Bereitstellung für den Benutzer verwendet werden können und die dem Kunden mit dem Webserver in Form von HyperText Markup Language („HTML“), Extensible Markup Language („XML“), JavaScript, Cascading Style Sheets („CSS“), JavaScript Object Notation (JSON) und/oder einer anderen zweckmäßigen clientenseitigen strukturierten Sprache zur Verfügung gestellt werden können. Inhalte, die an eine Kundenvorrichtung übertragen werden, können durch die Kundenvorrichtung verarbeitet werden, um die Inhalte in einer oder mehreren Formen bereitzustellen, darunter unter anderem Formen, die akustisch, visuell und/oder mithilfe anderer Sinne für den Benutzer wahrnehmbar sind. Die Handhabung aller Anforderungen und Reaktionen sowie die Zuführung von Inhalten zwischen der Kundenvorrichtung 1202 und dem Anwendungsserver 1208 können durch den Webserver unter Verwendung von PHP: Hypertext Preprocessor („PHP“), Python, Ruby, Perl, Java, HTML, XML, JSON und/oder in diesem Beispiel eine andere zweckmäßige serverseitige strukturierte Sprache gehandhabt werden. Ferner können Vorgänge, die hierin als durch eine einzige Vorrichtung durchgeführt beschrieben werden, sofern aus dem Kontext nichts anderes hervorgeht, durch mehrere Vorrichtungen gemeinsam ausgeführt werden, die ein verteiltes und/oder virtuelles System bilden können.
  • Der Datenspeicher 1210 kann mehrere separate Datentabellen, Datenbanken, Datendokumente, dynamische Datenspeicherschemata und/oder andere Datenspeichermechanismen und Medien zum Speichern von Daten in Bezug auf einen bestimmten Aspekt der vorliegenden Offenbarung beinhalten. Zum Beispiel kann der veranschaulichte Datenspeicher Mechanismen zum Speichern von Produktionsdaten 1212 und Benutzerinformationen 1216 beinhalten, die dazu verwendet werden können, Inhalt für die Produktionsseite darzubieten. Der Darstellung nach beinhaltet der Datenspeicher außerdem einen Mechanismus zum Speichern von Protokolldaten 1214, die für Berichte, Analysen oder andere solche Zwecke verwendet werden können. Es versteht sich, dass viele andere Aspekte vorhanden sein können, die in dem Datenspeicher gespeichert werden müssen, wie etwa Seitenbildinformationen und Zugriffsrechteinformationen, die gegebenenfalls in einem beliebigen der vorstehend aufgelisteten Mechanismen oder in zusätzlichen Mechanismen in dem Datenspeicher 1210 gespeichert werden können. Der Datenspeicher 1210 kann durch damit assoziierte Logik dazu betrieben werden, Anweisungen von dem Anwendungsserver 1208 zu empfangen und Daten als Reaktion darauf zu erhalten, zu aktualisieren oder anderweitig zu verarbeiten. Der Anwendungsserver 1208 kann als Reaktion auf die empfangenen Anweisungen statische, dynamische oder eine Kombination aus statischen und dynamischen Daten bereitstellen. Dynamische Daten, wie etwa Daten, die in Weblogs (Blogs), Shopping-Anwendungen, Nachrichtendiensten und anderen solchen Anwendungen verwendet werden, können durch serverseitige strukturierte Sprachen generiert werden, wie hierin beschrieben, oder können durch ein Content Management System („CMS“) bereitgestellt werden, das auf dem oder gesteuert von dem Anwendungsserver betrieben wird. In einem Beispiel kann ein Benutzer durch eine durch den Benutzer betriebene Vorrichtung eine Suchanfrage nach einer gewissen Art von Objekt übermitteln. In diesem Fall kann der Datenspeicher auf die Benutzerinformationen zugreifen, um die Identität des Benutzers zu verifizieren, und er kann auf die Katalogdetailinformationen zugreifen, um Informationen über Objekte dieser Art zu erhalten. Die Informationen können dann an den Benutzer ausgegeben werden, wie etwa in einer Ergebnisauflistung auf einer Webseite, die der Benutzer über einen Browser auf der Kundenvorrichtung 1202 betrachten kann. Informationen für ein spezielles Objekt von Interesse können auf einer dedizierten Seite oder in einem dedizierten Fenster des Browsers betrachtet werden. Es ist jedoch anzumerken, dass Ausführungsformen der vorliegenden Offenbarung nicht notwendigerweise auf den Kontext von Webseiten beschränkt sind, sondern allgemeiner auf die Verarbeitung von Anforderungen im Allgemeinen anwendbar sein können, wobei es sich bei den Anforderungen nicht notwendigerweise um Inhaltsanforderungen handelt.
  • Jeder Server beinhaltet üblicherweise ein Betriebssystem, das ausführbare Programmanweisungen für die allgemeine Administration und den allgemeinen Betrieb dieses Servers bereitstellt, und beinhaltet üblicherweise ein computerlesbares Speichermedium (z. B. eine Festplatte, einen Direktzugriffsspeicher, einen Festwertspeicher usw.), auf dem Anweisungen gespeichert sind, die bei Ausführung (d. h. als Reaktion auf eine Ausführung) durch einen Prozessor des Servers ermöglichen, dass der Server seine beabsichtigten Funktionen durchführt.
  • Die Umgebung ist in einer Ausführungsform eine verteilte und/oder virtuelle Datenverarbeitungsumgebung unter Nutzung von mehreren Computersystemen und Komponenten, die über Kommunikationsverknüpfungen unter Verwendung von einem bzw. einer oder mehreren Computernetzwerken oder Direktverbindungen miteinander verbunden sind. Für den Durchschnittsfachmann ist jedoch ersichtlich, dass ein derartiges System in einem System mit einer geringeren oder größeren Anzahl von Komponenten als in 12 veranschaulicht gleichermaßen gut arbeiten könnte. Somit sollte die Darstellung des Systems 1200 in 12 als veranschaulichend und nicht einschränkend in Bezug auf den Umfang der Offenbarung erachtet werden.
  • Zusätzlich können Ausführungsformen der vorliegenden Offenbarung im Hinblick auf die folgenden Sätze beschrieben werden:
    1. 1. Computerimplementiertes Verfahren, umfassend:
      • unter der Steuerung von einem oder mehreren Computersystemen, die mit ausführbaren Anweisungen konfiguriert sind,
      • Empfangen einer Registrierungsanforderung von einem Kunden, wobei in der Registrierungsanforderung eine Sicherheitsrolle angegeben ist, die einer Kundenressource durch einen Onlinedienst gewährt werden soll;
      • Bestimmen, dass Anmeldeinformationen, die mit der Registrierungsanforderung übermittelt wurden, gültig sind;
      • Autorisieren der Registrierungsanforderung;
      • Generieren eines Aktivierungscodes für die Registrierungsanforderung;
      • Generieren einer Ressourcen-ID für die Kundenressource;
      • Speichern von ausreichenden Informationen zur Identifizierung des Aktivierungscodes und von ausreichenden Informationen zur Identifizierung der Ressourcen-ID;
      • Ausgeben des Aktivierungscodes an den Kunden;
      • Veranlassen, dass ein Autorisierungsagent auf der Kundenressource installiert wird; Empfangen einer Aktivierungsanforderung von dem Autorisierungsagenten, wobei die Aktivierungsanforderung die Ressourcen-ID und den Aktivierungscode beinhaltet; Erwerben eines Autorisierungstokens, das es der Kundenressource ermöglicht, den Onlinedienst gemäß der Sicherheitsrolle zu verwenden, von einem Autorisierungstokendienst, der dem Onlinedienst zugeordnet ist; und
      • Bereitstellen des Autorisierungstokens an dem Autorisierungsagenten.
    2. 2. Computerimplementiertes Verfahren nach Satz 1, ferner umfassend:
      • Bestimmen, dass eine Gültigkeitsdauer verstrichen ist oder dass der Aktivierungscode mit einer vorangehenden Aktivierungsanforderung bereitgestellt wurde; und
      • Ungültigmachen des Aktivierungscodes zumindest teilweise auf Grundlage von Bestimmen, dass die Gültigkeitsdauer verstrichen ist oder dass der Aktivierungscode mit einer vorangehenden Aktivierungsanforderung bereitgestellt wurde.
    3. 3. Computerimplementiertes Verfahren nach Satz 1 oder 2, wobei:
      • die Aktivierungsanforderung einen öffentlichen Schlüssel eines öffentlich-privaten Schlüsselpaars beinhaltet;
      • die Aktivierungsanforderung unter Verwendung eines privaten Schlüssels, der dem öffentlich-privaten Schlüsselpaar zugeordnet ist, digital signiert wird; und
      • der öffentliche Schlüssel gespeichert wird.
    4. 4. Computerimplementiertes Verfahren nach einem der Sätze 1-3, ferner umfassend:
      • Empfangen einer pseudo-eindeutigen Ressourcen-ID mit der Aktivierungsanforderung, wobei die pseudo-eindeutige Ressourcen-ID durch den Autorisierungsagenten als eindeutig für die Kundenressource generiert wurde; und
      • Bestimmen zumindest teilweise auf Grundlage der pseudo-eindeutigen Ressourcen-ID, dass die Kundenressource eine geklonte Ressource ist.
    5. 5. System, das zumindest eine Rechenvorrichtung umfasst, die einen Autorisierungsdienst implementiert, wobei der Autorisierungsdienst:
      • eine Registrierungsanforderung empfängt, um eine Kundenressource, die einem Kunden zugeordnet ist, bei einem Onlinedienst zu registrieren;
      • die Registrierungsanforderung zumindest teilweise auf Grundlage von Anmeldeinformationen autorisiert, die dem Kunden zugeordnet sind;
      • dem Kunden als Reaktion auf die Registrierungsanforderung einen Aktivierungscode bereitstellt;
      • eine Aktivierungsanforderung, die den Aktivierungscode beinhaltet, von der Kundenressource empfängt;
      • ein Autorisierungstoken erwirbt, das ermöglicht, dass eine Dienstanforderung durch den Onlinedienst erfüllt wird; und
      • das Autorisierungstoken an dem Autorisierungsagenten bereitstellt.
    6. 6. System nach Satz 5, wobei der Autorisierungsdienst ferner:
      • eine Gültigkeitsdauer mit der Registrierungsanforderung empfängt;
      • die Gültigkeitsdauer speichert;
      • durch Vergleichen der Gültigkeitsdauer mit einem aktuellen Zeitpunkt bestimmt, dass der Aktivierungscode abgelaufen ist; und
      • den Aktivierungscode ungültig macht.
    7. 7. System nach Satz 5 oder 6, wobei eine Dienstverwaltungsschnittstelle einen Autorisierungsagenten auf der Kundenressource installiert.
    8. 8. System nach einem der Sätze 5-7, wobei der Autorisierungsdienst ferner:
      • eine pseudo-eindeutige Ressourcen-ID mit der Aktivierungsanforderung empfängt, wobei die pseudo-eindeutige Ressourcen-ID zumindest teilweise auf einer Prozessor-ID der Kundenressource, einer Vorrichtungsseriennummer der Kundenressource oder einer Netzwerkadresse einer Netzwerkschnittstelle basiert, die der Kundenressource zugeordnet ist; und
      • zumindest teilweise auf Grundlage der pseudo-eindeutigen Ressourcen-ID bestimmt, dass die Kundenressource nicht von einer übergeordneten Kundenressource repliziert wurde.
    9. 9. System nach einem der Sätze 5-8, wobei der Autorisierungsdienst ferner:
      • einen öffentlichen Schlüssel eines öffentlich-privaten Schlüsselpaars mit der Aktivierungsanforderung empfängt; und
      • eine digitale Signatur an der Aktivierungsanforderung unter Verwendung des öffentlichen Schlüssels verifiziert.
    10. 10. System nach einem der Sätze 5-9, wobei der Autorisierungsdienst ferner:
      • bestimmt, dass eine Differenz zwischen einem Zeitstempel an der Aktivierungsanforderung und einem aktuellen Zeitpunkt einen Zeitüberschreitungswert überschreitet; und
      • bestimmt, dass die Aktivierungsanforderung abgelaufen ist, und die Aktivierungsanforderung verweigert.
    11. 11. System nach einem der Sätze 5-10, wobei der Onlinedienst:
      • eine Dienstanforderung empfängt, die einen Zeitstempel beinhaltet; und
      • die Dienstanforderung verweigert, wenn die Differenz zwischen dem Zeitstempel und dem Zeitpunkt, zu dem die Dienstanforderung empfangen wird, größer einem Zeitschwellenwert ist.
    12. 12. System nach einem der Sätze 5-11, wobei:
      • das Autorisierungstoken von einem Autorisierungstokendienst erworben wird, der einem Onlinedienstanbieter zugeordnet ist;
      • der Onlinedienstanbieter eine Vielzahl von Onlinediensten bereitstellt; und
      • das Autorisierungstoken mit mehr als einem Onlinedienst der Vielzahl von Onlinediensten verwendet werden kann.
    13. 13. Nichtflüchtiges computerlesbares Speichermedium, das darauf ausführbare Anweisungen gespeichert hat, die während der Ausführung durch einen oder mehrere Prozessoren einer Kundenressource die Kundenressource zu zumindest Folgendem veranlassen:
      • Erwerben eines Aktivierungscodes und einer Ressourcenkennung, wobei der Aktivierungscode und die Ressourcenkennung durch einen Autorisierungsdienst bereitgestellt werden, der einem Onlinedienstanbieter zugeordnet ist;
      • Generieren eines öffentlich-privaten Schlüsselpaars, das einen öffentlichen Schlüssel und einen privaten Schlüssel beinhaltet;
      • Generieren einer pseudo-eindeutigen Ressourcenkennung für die Kundenressource; Übermitteln eines Aktivierungsbefehls an den Autorisierungsdienst, wobei der Aktivierungsbefehl den öffentlichen Schlüssel, die pseudo-eindeutige Ressourcenkennung, die Ressourcenkennung, den Aktivierungscode und eine digitale Signatur beinhaltet, die mit dem privaten Schlüssel generiert wurde; und
      • Empfangen eines Autorisierungstokens als Reaktion auf den Aktivierungsbefehl.
    14. 14. Nichtflüchtiges computerlesbares Speichermedium nach Satz 13, wobei die Anweisungen ferner Anweisungen umfassen, die während der Ausführung durch den einen oder die mehreren Prozessoren die Kundenressource zu Folgendem veranlassen:
      • Übermitteln einer Dienstanforderung an einen Onlinedienst, der durch den Onlinedienstanbieter bereitgestellt wird, wobei die Dienstanforderung das Autorisierungstoken beinhaltet.
    15. 15. Nichtflüchtiges computerlesbares Speichermedium nach Satz 14, wobei die Anweisungen ferner Anweisungen umfassen, die während der Ausführung durch den einen oder die mehreren Prozessoren die Kundenressource zu Folgendem veranlassen:
      • Bestimmen, dass die Dienstanforderung durch den Onlinedienst verweigert wurde;
      • Übermitteln einer Aktualisierungsanforderung an den Autorisierungsdienst, die den Autorisierungsdienst dazu veranlasst, ein neues Autorisierungstoken auszugeben; und
      • Empfangen eines neuen Autorisierungstokens von dem Autorisierungsdienst.
    16. 16. Nichtflüchtiges computerlesbares Speichermedium nach Satz 15, wobei die Anweisungen, welche die Kundenressource dazu veranlassen, zu bestimmen, dass die Dienstanforderung verweigert wurde, ferner Anweisungen beinhalten, welche die Kundenressource zu Folgendem veranlassen:
      • Bestimmen, dass die Kundenressource eine geklonte Ressource ist; und
      • Registrieren der Kundenressource unter Verwendung einer neuen Ressourcenkennung.
    17. 17. Nichtflüchtiges computerlesbares Speichermedium nach Satz 15 oder 16, wobei die Aktualisierungsanforderung eine digitale Signatur beinhaltet, die unter Verwendung des privaten Schlüssels generiert wurde.
    18. 18. Nichtflüchtiges computerlesbares Speichermedium nach einem der Sätze 13-17, wobei die Anweisungen ferner Anweisungen umfassen, die während der Ausführung durch den einen oder die mehreren Prozessoren die Kundenressource zu Folgendem veranlassen:
      • Empfangen einer Dienstanforderung von einem Onlinedienst, der durch den Onlinedienstanbieter bereitgestellt wird; und
      • Erfüllen der Dienstanforderung.
    19. 19. Nichtflüchtiges computerlesbares Speichermedium nach einem der Sätze 14-18, wobei die Dienstanforderung über ein Computernetzwerk über eine Transport-Layer-Security-(„TLS“-)Verbindung an den Onlinedienst übermittelt wird.
    20. 20. Nichtflüchtiges computerlesbares Speichermedium nach einem der Sätze 14-19, wobei die Anweisungen ferner Anweisungen umfassen, die während der Ausführung durch den einen oder die mehreren Prozessoren die Kundenressource zu Folgendem veranlassen:
      • Generieren einer Folgenummer, die der Dienstanforderung zugeordnet ist;
      • Übermitteln der Folgenummer mit der Dienstanforderung an den Autorisierungsdienst; und
      • Empfangen einer Angabe von dem Autorisierungsdienst, dass die Kundenressource eine geklonte Ressource ist, wobei die Angabe zumindest teilweise auf der Folgenummer basiert.
  • Die verschiedenen Ausführungsformen können ferner in einer breiten Vielfalt von Betriebsumgebungen implementiert sein, zu denen in einigen Fällen ein oder mehrere Benutzercomputer, Rechenvorrichtungen oder Verarbeitungsvorrichtung gehören können, die dazu verwendet werden können, um eine beliebige einer Reihe von Anwendungen zu betreiben. Benutzer- oder Kundenvorrichtungen können einen beliebigen einer Reihe von Computern beinhalten, wie etwa Desktop-, Laptop- oder Tablet-Computer, auf denen ein standardmäßiges Betriebssystem ausgeführt wird, sowie Mobilfunkvorrichtungen, drahtlose und tragbare Vorrichtungen, auf denen mobile Software ausgeführt wird und die dazu in der Lage sind, eine Reihe von Networking- und Messaging-Protokollen zu unterstützen. Ein derartiges System kann außerdem eine Reihe von Workstations beinhalten, auf denen ein beliebiges einer Vielfalt von handelsüblichen Betriebssystemen und sonstige bekannte Anwendungen für Zwecke wie etwa Entwicklung und Datenbankverwaltung ausgeführt werden. Diese Vorrichtungen können außerdem andere elektronische Vorrichtungen beinhalten, wie etwa Dummy Terminals, Thin Clients, Spielesysteme und andere Vorrichtungen, die dazu in der Lage sind, über ein Netzwerk zu kommunizieren. Diese Vorrichtungen können außerdem virtuelle Vorrichtung, wie etwa virtuelle Maschinen, Hypervisoren und andere virtuelle Vorrichtungen beinhalten, die dazu in der Lage sind, über ein Netzwerk zu kommunizieren.
  • Verschiedene Ausführungsformen der vorliegenden Offenbarung nutzen zumindest ein Netzwerk, das einem Fachmann bekannt ist, um Kommunikation unter Verwendung von einem beliebigen einer Vielzahl von handelsüblichen Protokollen zu unterstützen, wie etwa dem Transmission Control Protocol/Internet Protocol („TCP/IP“), dem User Datagram Protocol („UDP“), von Protokollen, die in verschiedenen Schichten des Open-System-Interconnection-Modells („OSI“-Modells) arbeiten, dem File Transfer Protocol („FTP“), Universal Plug and Play („UpnP“), dem Network File System („NFS“), dem Common Internet File System („CIFS“) und AppleTalk. Das Netzwerk kann zum Beispiel ein lokales Netzwerk, ein Weitbereichsnetzwerk, ein virtuelles privates Netzwerk, das Internet, ein Intranet, ein Extranet, ein öffentliches Fernsprechwählnetz, ein Infrarot-Netzwerk, ein Drahtlosnetzwerk, ein Satellitennetzwerk und eine beliebige Kombination daraus sein. In einigen Ausführungsformen können verbindungsorientierte Protokolle verwendet werden, um zwischen Netzwerkendpunkten zu kommunizieren. Verbindungsorientiere Protokolle (gelegentlich als verbindungsbasierte Protokolle bezeichnet) sind in der Lage, Daten in einem geordneten Strom zu übertragen. Verbindungsorientierte Protokolle können zuverlässig oder unzuverlässig sein. Zum Beispiel handelt es sich bei dem TCP-Protokoll um ein zuverlässiges verbindungsorientiertes Protokoll. Bei dem Asynchronous Transfer Mode („ATM“) und Frame Relay handelt es sich um unzuverlässige verbindungsorientierte Protokolle. Verbindungsorientierte Protokolle stehen im Gegensatz zu paketorientierten Protokollen, wie etwa UDP, die Pakete ohne eine garantierte Ordnung übertragen.
  • In Ausführungsformen, die einen Webserver nutzen, kann der Webserver beliebige einer Vielfalt von Server- oder Mid-Tier-Anwendungen ausführen, darunter Server des Hypertext Transfer Protocol („HTTP“), FTP-Server, Server des Common Gateway Interface („CGI“), Datenserver, Java-Server, Apache-Server und Geschäftsanwendungsserver. Der bzw. die Server kann bzw. können zudem dazu in der Lage sein, Programme oder Skripte als Reaktion auf Anforderungen von Benutzervorrichtungen auszuführen, wie etwa durch Ausführen von einer oder mehreren Webanwendungen, die als ein oder mehrere Skripte oder Programme implementiert sein können, die in einer beliebigen Programmiersprache geschrieben sind, wie etwa Java®, C, C# oder C++ oder einer beliebigen Skriptsprache wie etwa Ruby, PHP, Perl, Python oder TCL sowie Kombinationen daraus. Der bzw. die Server kann bzw. können zudem Datenbankserver beinhalten, zu denen unter anderem diejenigen gehören, die von Oracle®, Microsoft®, Sybase® und IBM® im Handel erhältlich sind, sowie Open-Source-Server, wie etwa MySQL, Postgres, SQLite, MongoDB und beliebige andere Server, die in der Lage sind, strukturierte oder unstrukturierte Daten zu speichern, abzurufen und darauf zuzugreifen. Zu Datenbankservern gehören tabellenbasierte Server, dokumentbasierte Server, unstrukturierte Server, relationelle Server, nicht-relationelle Server oder Kombinationen davon und/oder von anderen Datenbankservern.
  • Die Umgebung kann eine Vielfalt von Datenspeichern und anderem Speicher und anderen Speichermedien, wie vorstehend erörtert, beinhalten. Diese können an vielfältigen Stellen angeordnet sein, wie etwa auf einem Speichermedium, das zu einem oder mehreren der Computer lokal (und/oder darin angeordnet) ist oder von beliebigen oder allen der Computer über das Netzwerk hinweg entfernt ist. In einem speziellen Satz von Ausführungsformen können die Informationen in einem Storage Area Network („SAN“), das dem Fachmann bekannt ist, angeordnet sein. Gleichmaßen können beliebige erforderliche Dateien zum Durchführen der Funktionen, die den Computern, Servern oder anderen Netzwerkvorrichtungen zugeschrieben sind, gegebenenfalls lokal und/oder entfernt gespeichert werden. Wenn ein System computergestützte Vorrichtungen beinhaltet, kann jede derartige Vorrichtung Hardwareellemte, beinhalten, die über einen Bus elektrisch gekoppelt sein können, wobei die Elemente zum Beispiel zumindest eine zentrale Verarbeitungseinheit („CPU“ oder „Prozessor“), zumindest eine Eingabevorrichtung (z. B. eine Maus, eine Tastatur, einen Controller, einen Touchscreen oder ein Tastenfeld) und zumindest eine Ausgabevorrichtung (z. B. eine Anzeigevorrichtung, einen Drucker oder einen Lautsprecher) beinhalten. Ein derartiges System kann außerdem eine oder mehrere Speichervorrichtungen umfassen, wie etwa Plattenlaufwerke, optische Speichervorrichtungen und Solid-State-Speichervorrichtungen, wie etwa Direktzugriffsspeicher („RAM“) oder Festwertspeicher („ROM“), sowie entfernbare Medienvorrichtungen, Speicherkarten, Flash-Karten usw.
  • Derartige Vorrichtungen können außerdem ein computerlesbares Speichermedien-Lesegerät, eine Kommunikationsvorrichtung (z. B. ein Modem, eine Netzwerkkarte (drahtlos oder drahtgebunden), eine Infrarot-Kommunikationsvorrichtung usw.) und Arbeitsspeicher beinhalten, wie vorstehend beschrieben. Das computerlesbare Speichermedien-Lesegerät kann mit einem computerlesbaren Speichermedium, das entfernte, lokale, feste und/oder entfernbare Speichervorrichtungen sowie Speichermedien für vorübergehendes und/oder dauerhaftes Enthalten, Speichern, Übertragen und Abrufen von computerlesbaren Information darstellt, verbunden sein oder dazu ausgelegt sein, dieses aufzunehmen. Das System und die verschiedenen Vorrichtungen beinhalten außerdem üblicherweise eine Reihe von Softwareanwendungen, Modulen, Diensten oder anderen Elementen, die innerhalb zumindest einer Arbeitsspeichervorrichtung angeordnet sind, einschließlich eines Betriebssystems und Anwendungsprogrammen, wie etwa einer Kundenanwendung oder eines Webbrowsers. Des Weiteren kann außerdem angepasste Hardware verwendet werden und/oder können spezielle Elemente in Hardware, Software (einschließlich tragbarer Software wie etwa Applets) oder beiden implementiert sein. Ferner kann eine Verbindung zu anderen Rechenvorrichtungen, wie etwa Netzwerk-Eingabe/Ausgabe-Vorrichtungen, implementiert sein.
  • Speichermedien und computerlesbare Medien, die Code oder Teile von Code enthalten, können beliebige zweckmäßige Medien beinhalten, die auf dem Fachgebiet bekannt sind oder verwendet werden, einschließlich Speichermedien und Kommunikationsmedien, wie etwa unter anderem flüchtige und nichtflüchtige, entfernbare und nicht entfernbare Medien, die in einem beliebigen Verfahren oder einer beliebigen Technik zur Speicherung und/oder Übertragung von Informationen implementiert sind, wie etwa computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen oder anderen Daten, darunter RAM, ROM, elektrisch löschbarer programmierbarer Festwertspeicher („EEPROM“), Flash-Speicher oder eine andere Speichertechnik, Compact-Disc-Festwertspeicher („CD-ROM“), Digital Versatile Disk (DVD) oder ein anderer optischer Speicher, Magnetkassetten, ein Magnetband, ein Magnetplattenspeicher oder eine andere Magnetspeichervorrichtungen oder ein beliebiges anderes Medium, das dazu verwendet werden kann, die gewünschten Information zu speichern, und auf das durch eine Systemvorrichtung zugegriffen werden kann. Auf Grundlage der Offenbarung und der hier bereitgestellten Lehren versteht der Durchschnittsfachmann, dass andere Möglichkeiten und/oder Verfahren vorhanden sind, um die verschiedenen Ausführungsformen zu implementieren.
  • Es ist anzumerken, dass der Begriff „digitale Signatur“ jegliche Informationen einschließt, die verwendet werden können, um die Authentizität einer Nachricht kryptographisch zu verifizieren, einschließlich Informationen, die unter Verwendung von Folgendem generiert werden: eines RSA-basierten digitalen Schemas (wie etwa RSA-PSS), des digitalen Signaturalgorithmus (DSA) und des elliptischen Kurvenalgorithmus einer digitalen Signatur, des EIGamal-Signaturschemas, des Schnorr-Signaturschemas, des Pointcheval-Stern-Signaturalgorithmus, des Rabin-Signaturalgorithmus, paarungsbasierten digitalen Signaturschemata (wie etwa dem Boneh-Lynn-Schacham-Signaturschema), unbestreitbaren digitalen Signaturschematas und anderen. Ferner können Nachrichtenauthentifizierungscodes (wie etwa Hash-basierte Nachrichtenauthentifizierungscodes (HMACs)), verschlüsselte kryptographische Hash-Funktionen und andere Arten von Informationen ebenfalls als digitale Signaturen verwendet werden.
  • In verschiedenen Ausführungsformen können Datenobjekte, wie etwa digitale Signaturen, kryptographisch verifizierbar sein. In einem Beispiel werden kryptographisch verifizierbare Datenobjekte erzeugt, um durch das System, an dem das Datenobjekt bereitgestellt werden soll, oder durch ein anderes System, das mit dem System zusammenwirkt, an dem das Datenobjekt bereitgestellt wird, kryptographisch verifizierbar zu sein. Zum Beispiel kann das Datenobjekt verschlüsselt sein, um durch das System entschlüsselt werden zu können, welches das Datenobjekt kryptographisch verifiziert, wobei die Fähigkeit, das Datenobjekt zu entschlüsseln, als eine kryptographische Verifizierung des Datenobjekts dient. Als ein weiteres Beispiel kann das Datenobjekt digital signiert sein (wodurch eine digitale Signatur des Datenobjekts erzeugt wird), sodass die digitale Signatur durch das System verifiziert werden kann, welches das Datenobjekt kryptographisch verifiziert. In anderen Beispielen werden sowohl die Verschlüsselung als auch die digitalen Signaturen zur kryptographischen Verifizierbarkeit und/oder Sicherheit verwendet. Der Schlüssel, der verwendet wird, um das Datenobjekt zu verschlüsseln und/oder digital zu signieren, kann gemäß verschiedenen Ausführungsformen variieren und es wird gegebenenfalls nicht notwendigerweise derselbe Schlüssel für die Verschlüsselung und das digitale Signieren verwendet. In einigen Ausführungsformen handelt es sich bei einem Schlüssel, der zum Verschlüsseln des Datenobjekts verwendet wird, um einen öffentlichen Schlüssel eines öffentlich-privaten Schlüsselpaars, wobei der private Schlüssel des Schlüsselpaars durch das System sicher verwahrt wird, an dem das Datenobjekt bereitgestellt werden soll, wodurch es dem System ermöglicht wird, das Datenobjekt unter Verwendung des privaten Schlüssels des Schlüsselpaars zu entschlüsseln. Das Verwenden des öffentlichen Schlüssels zum Verschlüsseln des Datenobjekts kann Folgendes beinhalten: Generieren eines symmetrischen Schlüssels, Verwenden des symmetrischen Schlüssels, um das Datenobjekt zu verschlüsseln, und Verschlüsseln des symmetrischen Schlüssels unter Verwendung des öffentlichen Schlüssels, wobei der verschlüsselte symmetrische Schlüssel an einem System mit dem verschlüsselten Datenobjekt bereitgestellt wird, um es dem System zu ermöglichen, den entsprechenden privaten Schlüssel zu verwenden, um den symmetrischen Schlüssel zu entschlüsseln und den entschlüsselten symmetrischen Schlüssel zu verwenden, um das Datenobjekt zu entschlüsseln. Ferner wird das Datenobjekt in einigen Ausführungsformen unter Verwendung eines privaten Schlüssels eines öffentlich-privaten Schlüsselpaars digital signiert, der dem Computersystem entspricht, der das Datenobjekt (z. B. eine Benutzervorrichtung) verschlüsselt und/oder digital signiert. Zum Beispiel kann eine Anwendung mit dem privaten Schlüssel vorgesehen sein und kann das Datenobjekt ein Zertifikat für den privaten Schlüssel zur Verwendung durch ein System zur Verifikation der digitalen Signatur des Datenobjekts beinhalten. Andere Variationen, einschließlich Variationen, in denen ein symmetrischer Schlüssel von dem Benutzercomputer und dem System geteilt wird, welches das Datenobjekt kryptographisch verifiziert, können verwendet werden, um das Datenobjekt zu verschlüsseln und/oder digital zu signieren.
  • Es ist anzumerken, dass ein System konfiguriert werden soll, um einem öffentlichen Verschlüsselungsschlüssel zu vertrauen, wenn die Logik, mit der das System zum Betrieb konfiguriert ist, davon abhängig ist, ob ein Versucht, eine digitale Signatur mit dem öffentlichen Verschlüsselungsschlüssel zu verifizieren, erfolgreich ist. Gleichermaßen soll ein System konfiguriert werden, um einem symmetrischen Verschlüsselungsschlüssel zu vertrauen, wenn die Logik, mit der das System zum Betrieb konfiguriert ist, davon abhängig ist, ob ein Versucht, eine digitale Signatur mit dem symmetrischen Verschlüsselungsschlüssel zu verifizieren, erfolgreich ist.
  • Im Allgemeinen können Ausführungsformen der vorliegenden Offenbarung verschiedene Protokolle verwendet, um verschlüsselte Kommunikationssitzungen aufzubauen, wie etwa ein SSL- oder TLS-Protokoll und Erweiterungen davon, wie definiert in Request for Comments (RFC) 2246, RFC 2595, RFC 2712, RFC 2817, RFC 2818, RFC 3207, RFC 3268, RFC 3546, RFC 3749, RFC 3943, RFC 4132, RFC 4162, RFC 4217, RFC 4279, RFC 4347, RFC 4366, RFC 4492, RFC 4680, RFC 4681, RFC 4785, RFC 5054, RFC 5077, RFC 5081, RFC 5238, RFC 5246, RFC 5288, RFC 5289, RFC 5746, RFC 5764, RFC 5878, RFC 5932, RFC 6066, RFC 6083, RFC 6091, RFC 6176, RFC 6209, RFC 6347, RFC 6367, RFC 6460, RFC 6655, RFC 7027 und RFC 7366, die hierin durch Bezugnahme eingeschlossen sind. Andere Protokolle, die unter der Anwendungsschicht des Open-Systems-Interconnect-(OSI-)Modells implementiert sind, können ebenfalls verwendet und/oder angepasst werden, um hierin beschriebene Techniken zu nutzen. Es ist anzumerken, dass die hierin beschriebenen Techniken auf andere Protokolle angepasst werden können, wie etwa auf das Real Time Messaging Protocol (RTMP), das Point-to-Point Tunneling Protocol (PPTP), das Layer 2 Tunneling Protocol, verschiedene virtuelle private Netzwerkprotokolle (VPN-Protokolle), Internet Protocol Security (z. B. wie in RFC 1825 bis 1829, RFC 2401, RFC 2412, RFC 4301, RFC 4303 und RFC 4309 definiert) und andere Protokolle, wie etwa Protokolle zur sicheren Kommunikation, die einen Handshake beinhalten.
  • In der vorangehenden und nachfolgenden Beschreibung werden verschiedene Techniken beschrieben. Zu Zwecken der Erläuterung werden spezifische Konfigurationen und Details dargelegt, um ein umfassendes Verständnis von möglichen Vorgehensweisen bei der Implementierung der Techniken bereitzustellen. Es wird jedoch außerdem ersichtlich, dass die nachfolgend beschriebenen Techniken in unterschiedlichen Konfigurationen ohne die spezifischen Details ausgeführt werden können. Ferner können hinlänglich bekannte Merkmale weggelassen oder vereinfacht dargestellt sein, um zu verhindern, dass die beschriebenen Techniken unkenntlich gemacht werden.
  • Die Beschreibung und die Zeichnungen sind dementsprechend in einem veranschaulichenden und nicht einschränkenden Sinne zu verstehen. Es versteht sich jedoch, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom weiteren Geist und Umfang der Erfindung abzuweichen, die in den Patentansprüchen dargelegt sind.
  • Andere Variationen liegen innerhalb des Umfangs der vorliegenden Offenbarung. Somit können zwar bezüglich der offenbarten Techniken diverse Modifikationen und alternative Konstruktionen vorgenommen werden, bestimmte veranschaulichte Ausführungsformen davon werden jedoch in den Zeichnungen gezeigt und wurden vorangehend ausführlich beschrieben. Allerdings versteht es sich, dass nicht die Absicht verfolgt wird, die Erfindung auf die konkrete(n) offenbarte(n) Form oder Formen einzuschränken, sondern die Absicht ganz im Gegenteil darin besteht, sämtliche Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Geist und Umfang der wie in den beigefügten Ansprüchen definierten Erfindung abzudecken.
  • Die Verwendung der Begriffe „ein“ und „eine“ und „der/die/das“ und ähnlicher Referenten im Zusammenhang der Beschreibung der offenbaren Ausführungsformen (besonders im Zusammenhang der folgenden Patentansprüche) soll so ausgelegt werden, dass sie sowohl den Singular als auch den Plural abdeckt, sofern hierin nicht anderweitig angegeben oder im eindeutigen Widerspruch zum Kontext. Die Begriffe „umfassend“, „aufweisend“, „beinhaltend“ und „enthaltend“ sind als offene Begriffe auszulegen (d. h. in der Bedeutung „einschließlich, jedoch nicht darauf beschränkt“), es sei denn, es ist etwas anderes angegeben. Der Begriff „verbunden“ ist als teilweise oder vollständig ineinander enthalten, aneinander befestigt oder aneinander angefügt auszulegen, wenn er unmodifiziert vorliegt und sich auf physische Verbindungen bezieht, selbst, wenn ein Element dazwischen eingefügt ist. Die Nennung von Wertebereichen hierin soll lediglich als schnelle Methode des einzelnen Bezugnehmens auf jeden separaten Wert dienen, der in den Bereich fällt, es sei denn, hierin ist etwas anderes angegeben, und jeder separate Wert ist in die Beschreibung eingeschlossen, als ob er einzeln hierin wiedergegeben wäre. Die Verwendung des Begriffs „Satz“ (z. B. „ein Satz von Objekten“) oder „Teilsatz“ ist als eine nicht leere Zusammenstellung auszulegen, die ein oder mehrere Elemente umfasst, es sei denn, es ist etwas anderes angemerkt oder dies widerspricht dem Kontext. Ferner bezeichnet der Begriff „Teilsatz“ eines entsprechenden Satzes nicht notwendigerweise einen tatsächlichen Teilsatz des entsprechenden Satzes; vielmehr können der Teilsatz und der entsprechende Satz gleich sein, es sei denn, es ist etwas anderes angemerkt oder dies widerspricht dem Kontext.
  • Verbindende Sprache, wie etwa Ausdrücke der Form „zumindest eines von A, B und C“ oder „mindestens eines von A, B und C“, sind andernfalls in dem Kontext zu verstehen, in dem sie allgemein verwendet werden, um darzustellen, dass ein Objekt, ein Begriff usw. entweder A oder B oder C oder einen beliebigen nicht leeren Teilsatz des Satzes aus A und B und C sein kann, es sei denn, es ist etwas anderes angegeben oder etwas anderes geht eindeutig aus dem Kontext hervor. Zum Beispiel beziehen sich die verbindenden Ausdrücke „zumindest eines von A, B und C“ und „mindestens eines von A, B und C“ in dem veranschaulichenden Beispiel eines Satzes, der drei Elemente aufweist, auf einen der folgenden Sätze: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Somit soll solche verbindende Sprache im Allgemeinen nicht ausdrücken, dass bestimmte Ausführungen erforderlich machen, dass zumindest eines von A, zumindest eines von B und zumindest eines von C vorhanden ist.
  • Hierin beschriebene Vorgänge von Prozessen können in einer beliebigen geeigneten Reihenfolge durchgeführt werden, sofern es hier nicht anders angegeben ist oder der Kontext dem anderweitig eindeutig widerspricht. Hierin beschriebene Prozesse (oder Variationen und/oder Kombinationen davon) können unter der Steuerung von einem oder mehreren Computersystemen ausgeführt werden, die mit ausführbaren Anweisungen konfiguriert sind, und können als Code (z. B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen), die zusammen einen oder mehrere Prozessoren ausführen, durch Hardware oder Kombinationen davon implementiert sein. Der Code kann auf einem computerlesbaren Speichermedium gespeichert sein, zum Beispiel in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die durch einen oder mehrere Prozessoren ausgeführt werden können. Das computerlesbare Speichermedium kann nichtflüchtig sein. In einigen Ausführungsformen ist der Code auf einem Satz von einem oder mehreren nichtflüchtigen computerlesbaren Speichermedien gespeichert, die ausführbare Anweisungen darauf gespeichert haben, die bei Ausführung (d. h. als Folge einer Ausführung oder im Verlauf einer Ausführung) durch einen oder mehrere Prozessoren eines Computersystems das Computersystem dazu veranlassen, hierin beschriebene Vorgänge auszuführen. Der Satz von nichtflüchtigen computerlesbaren Speichermedien kann mehrere nichtflüchtige computerlesbare Speichermedien umfassen und eines oder mehrere einzelne nichtflüchtige Speichermedien der mehreren nichtflüchtigen computerlesbaren Speichermedien verfügt unter Umständen nicht über den gesamten Code, während insgesamt der gesamte Code auf den mehreren nichtflüchtigen computerlesbaren Speichermedien gespeichert ist. Ferner werden die ausführbaren Anweisungen in einigen Beispielen derart ausgeführt, dass unterschiedliche Anweisungen durch unterschiedliche Prozessoren ausgeführt werden. Als ein veranschaulichendes Beispiel kann ein nichtflüchtiges computerlesbares Speichermedium Anweisungen speichern. Eine Haupt-CPU kann einige der Anweisungen ausführen und eine Grafikprozessoreinheit kann andere der Anweisungen ausführen. Im Allgemeinen können unterschiedliche Komponenten eines Computersystems getrennte Prozessoren aufweisen und können unterschiedliche Prozessoren unterschiedliche Teilsätze der Anweisungen ausführen.
  • Dementsprechend sind die Computersysteme in einigen Beispielen konfiguriert, um einen oder mehrere Dienste zu implementieren, die einzeln oder gemeinsam Vorgänge von hierin beschriebenen Prozessen ausführen. Solche Computersysteme können zum Beispiel mit anwendbarer Hardware und/oder Software konfiguriert sein, welche die Durchführung der Vorgänge ermöglichen/ermöglicht. Ferner können Computersysteme, die verschiedene Ausführungsformen der vorliegenden Offenbarung implementieren, in einigen Beispielen einzelne Vorrichtungen sein und in anderen Beispielen verteilte Computersysteme sein, die mehrere Vorrichtungen umfassen, die unterschiedlich betrieben werden, sodass das verteilte Computersystem die hierin beschriebenen Vorgänge ausführt und sodass eine einzelne Vorrichtung unter Umständen nicht alle Vorgänge ausführt.
  • Die Verwendung jeglicher Beispiele oder beispielhafter Wortwahl (z. B. „wie etwa“), die hier bereitgestellt sind, soll lediglich die Ausführungsformen der Erfindung besser veranschaulichen und stellt keine Einschränkung des Umfangs der Erfindung dar, es sei denn, es ist etwas anderes beansprucht. Keinerlei Formulierung in der Beschreibung sollte so ausgelegt werden, dass sie ein beliebiges nichtbeanspruchtes Element als für die Implementierung der Erfindung wesentlich angibt.
  • Hier sind Ausführungsformen dieser Offenbarung einschließlich der besten den Erfindern bekannten Art und Weise zum Ausführen der Erfindung beschrieben. Der Fachmann kann bei der Lektüre der vorstehenden Beschreibung Variationen dieser beschriebenen Ausführungsformen erkennen. Die Erfinder gehen davon aus, dass der Fachmann derlei Variationen im geeigneten Fall anwendet, und die Erfinder sehen vor, dass die Ausführungsformen der vorliegenden Offenbarung anders als hier konkret beschrieben implementiert werden können. Dementsprechend beinhaltet der Umfang der vorliegenden Offenbarung alle Modifikationen und Äquivalente des in den beigefügten Patentansprüchen dargelegten Gegenstands, wie es durch das jeweils geltende Recht zulässig ist. Darüber hinaus ist jede beliebige Kombination der vorstehend beschriebenen Elemente in allen möglichen Variationen davon durch den Umfang der vorliegenden Offenbarung abgedeckt, sofern es hier nicht anders angegeben ist oder der Kontext dem anderweitig eindeutig widerspricht.
  • Jegliche Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patenten, die hierin erwähnt werden, sind hiermit durch Bezugnahme in demselben Maße aufgenommen, als wäre jede Referenz einzeln und spezifisch als durch Referenz eingeschlossen angegeben und in ihrer Gesamtheit hierin ausgeführt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 14984957 [0001]

Claims (16)

  1. BEANSPRUCHT WIRD:
  2. Computerimplementiertes Verfahren, umfassend: unter der Steuerung von einem oder mehreren Computersystemen, die mit ausführbaren Anweisungen konfiguriert sind, Empfangen einer Registrierungsanforderung von einem Kunden, wobei in der Registrierungsanforderung eine Sicherheitsrolle angegeben ist, die einer Kundenressource durch einen Onlinedienst gewährt werden soll; Bestimmen, dass Anmeldeinformationen, die mit der Registrierungsanforderung übermittelt wurden, gültig sind; Autorisieren der Registrierungsanforderung; Generieren eines Aktivierungscodes für die Registrierungsanforderung; Generieren einer Ressourcen-ID für die Kundenressource; Speichern von ausreichenden Informationen zur Identifizierung des Aktivierungscodes und von ausreichenden Informationen zur Identifizierung der Ressourcen-ID; Ausgeben des Aktivierungscodes an den Kunden; Veranlassen, dass ein Autorisierungsagent auf der Kundenressource installiert wird; Empfangen einer Aktivierungsanforderung von dem Autorisierungsagenten, wobei die Aktivierungsanforderung die Ressourcen-ID und den Aktivierungscode beinhaltet; Erwerben eines Autorisierungstokens, das es der Kundenressource ermöglicht, den Onlinedienst gemäß der Sicherheitsrolle zu verwenden, von einem Autorisierungstokendienst, der dem Onlinedienst zugeordnet ist; und Bereitstellen des Autorisierungstokens an dem Autorisierungsagenten.
  3. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, dass eine Gültigkeitsdauer verstrichen ist oder dass der Aktivierungscode mit einer vorangehenden Aktivierungsanforderung bereitgestellt wurde; und Ungültigmachen des Aktivierungscodes zumindest teilweise auf Grundlage von Bestimmen, dass die Gültigkeitsdauer verstrichen ist oder dass der Aktivierungscode mit einer vorangehenden Aktivierungsanforderung bereitgestellt wurde.
  4. Computerimplementiertes Verfahren nach Anspruch 1, wobei: die Aktivierungsanforderung einen öffentlichen Schlüssel eines öffentlich-privaten Schlüsselpaars beinhaltet; die Aktivierungsanforderung unter Verwendung eines privaten Schlüssels, der dem öffentlich-privaten Schlüsselpaar zugeordnet ist, digital signiert wird; und der öffentliche Schlüssel gespeichert wird.
  5. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend: Empfangen einer pseudo-eindeutigen Ressourcen-ID mit der Aktivierungsanforderung, wobei die pseudo-eindeutige Ressourcen-ID durch den Autorisierungsagenten als eindeutig für die Kundenressource generiert wurde; und Bestimmen zumindest teilweise auf Grundlage der pseudo-eindeutigen Ressourcen-ID, dass die Kundenressource eine geklonte Ressource ist.
  6. System, das zumindest eine Rechenvorrichtung umfasst, die einen Autorisierungsdienst implementiert, wobei der Autorisierungsdienst: eine Registrierungsanforderung empfängt, um eine Kundenressource, die einem Kunden zugeordnet ist, bei einem Onlinedienst zu registrieren; die Registrierungsanforderung zumindest teilweise auf Grundlage von Anmeldeinformationen autorisiert, die dem Kunden zugeordnet sind; dem Kunden als Reaktion auf die Registrierungsanforderung einen Aktivierungscode bereitstellt; eine Aktivierungsanforderung, die den Aktivierungscode beinhaltet, von der Kundenressource empfängt; ein Autorisierungstoken erwirbt, das ermöglicht, dass eine Dienstanforderung durch den Onlinedienst erfüllt wird; und das Autorisierungstoken an dem Autorisierungsagenten bereitstellt.
  7. System nach Anspruch 5, wobei der Autorisierungsdienst ferner: eine Gültigkeitsdauer mit der Registrierungsanforderung empfängt; die Gültigkeitsdauer speichert; durch Vergleichen der Gültigkeitsdauer mit einem aktuellen Zeitpunkt bestimmt, dass der Aktivierungscode abgelaufen ist; und den Aktivierungscode ungültig macht.
  8. System nach Anspruch 5, wobei der Autorisierungsdienst ferner: eine pseudo-eindeutige Ressourcen-ID mit der Aktivierungsanforderung empfängt, wobei die pseudo-eindeutige Ressourcen-ID zumindest teilweise auf einer Prozessor-ID der Kundenressource, einer Vorrichtungsseriennummer der Kundenressource oder einer Netzwerkadresse einer Netzwerkschnittstelle basiert, die der Kundenressource zugeordnet ist; und zumindest teilweise auf Grundlage der pseudo-eindeutigen Ressourcen-ID bestimmt, dass die Kundenressource nicht von einer übergeordneten Kundenressource repliziert wurde.
  9. System nach Anspruch 5, wobei der Autorisierungsdienst ferner: bestimmt, dass eine Differenz zwischen einem Zeitstempel an der Aktivierungsanforderung und einem aktuellen Zeitpunkt einen Zeitüberschreitungswert überschreitet; und bestimmt, dass die Aktivierungsanforderung abgelaufen ist, und die Aktivierungsanforderung verweigert.
  10. System nach Anspruch 5, wobei: das Autorisierungstoken von einem Autorisierungstokendienst erworben wird, der einem Onlinedienstanbieter zugeordnet ist; der Onlinedienstanbieter eine Vielzahl von Onlinediensten bereitstellt; und das Autorisierungstoken mit mehr als einem Onlinedienst der Vielzahl von Onlinediensten verwendet werden kann.
  11. Nichtflüchtiges computerlesbares Speichermedium, das darauf ausführbare Anweisungen gespeichert hat, die während der Ausführung durch einen oder mehrere Prozessoren einer Kundenressource die Kundenressource zu zumindest Folgendem veranlassen: Erwerben eines Aktivierungscodes und einer Ressourcenkennung, wobei der Aktivierungscode und die Ressourcenkennung durch einen Autorisierungsdienst bereitgestellt werden, der einem Onlinedienstanbieter zugeordnet ist; Generieren eines öffentlich-privaten Schlüsselpaars, das einen öffentlichen Schlüssel und einen privaten Schlüssel beinhaltet; Generieren einer pseudo-eindeutigen Ressourcenkennung für die Kundenressource; Übermitteln eines Aktivierungsbefehls an den Autorisierungsdienst, wobei der Aktivierungsbefehl den öffentlichen Schlüssel, die pseudo-eindeutige Ressourcenkennung, die Ressourcenkennung, den Aktivierungscode und eine digitale Signatur beinhaltet, die mit dem privaten Schlüssel generiert wurde; und Empfangen eines Autorisierungstokens als Reaktion auf den Aktivierungsbefehl.
  12. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 10, wobei die Anweisungen ferner Anweisungen umfassen, die während der Ausführung durch den einen oder die mehreren Prozessoren die Kundenressource zu Folgendem veranlassen: Übermitteln einer Dienstanforderung an einen Onlinedienst, der durch den Onlinedienstanbieter bereitgestellt wird, wobei die Dienstanforderung das Autorisierungstoken beinhaltet.
  13. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei die Anweisungen ferner Anweisungen umfassen, die während der Ausführung durch den einen oder die mehreren Prozessoren die Kundenressource zu Folgendem veranlassen: Bestimmen, dass die Dienstanforderung durch den Onlinedienst verweigert wurde; Übermitteln einer Aktualisierungsanforderung an den Autorisierungsdienst, die den Autorisierungsdienst dazu veranlasst, ein neues Autorisierungstoken auszugeben; und Empfangen eines neuen Autorisierungstokens von dem Autorisierungsdienst.
  14. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 10, wobei die Anweisungen ferner Anweisungen umfassen, die während der Ausführung durch den einen oder die mehreren Prozessoren die Kundenressource zu Folgendem veranlassen: Empfangen einer Dienstanforderung von einem Onlinedienst, der durch den Onlinedienstanbieter bereitgestellt wird; und Erfüllen der Dienstanforderung.
  15. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei die Dienstanforderung über ein Computernetzwerk über eine Transport-Layer-Security-(„TLS“-)Verbindung an den Onlinedienst übermittelt wird.
  16. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei die Anweisungen ferner Anweisungen umfassen, die während der Ausführung durch den einen oder die mehreren Prozessoren die Kundenressource zu Folgendem veranlassen: Generieren einer Folgenummer, die der Dienstanforderung zugeordnet ist; Übermitteln der Folgenummer mit der Dienstanforderung an den Autorisierungsdienst; und Empfangen einer Angabe von dem Autorisierungsdienst, dass die Kundenressource eine geklonte Ressource ist, wobei die Angabe zumindest teilweise auf der Folgenummer basiert.
DE112016006123.4T 2015-12-30 2016-12-21 Handshake zur Dienstautorisierung Pending DE112016006123T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/984,957 US10075557B2 (en) 2015-12-30 2015-12-30 Service authorization handshake
US14/984,957 2015-12-30
PCT/US2016/068073 WO2017116912A1 (en) 2015-12-30 2016-12-21 Service authorization handshake

Publications (1)

Publication Number Publication Date
DE112016006123T5 true DE112016006123T5 (de) 2018-10-31

Family

ID=57777744

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016006123.4T Pending DE112016006123T5 (de) 2015-12-30 2016-12-21 Handshake zur Dienstautorisierung

Country Status (4)

Country Link
US (2) US10075557B2 (de)
CN (2) CN113141374B (de)
DE (1) DE112016006123T5 (de)
WO (1) WO2017116912A1 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794292B2 (en) * 2015-10-26 2017-10-17 Amazon Technologies, Inc. Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment
US10305901B2 (en) * 2016-05-06 2019-05-28 Blackberry Limited System and method for multi-factor authentication
US11157641B2 (en) * 2016-07-01 2021-10-26 Microsoft Technology Licensing, Llc Short-circuit data access
US10728236B1 (en) * 2016-09-07 2020-07-28 Amazon Technologies, Inc. Augmented reality data exchange
US10637868B2 (en) 2016-11-16 2020-04-28 The Boeing Company Common authorization management service
US10657225B2 (en) * 2016-12-29 2020-05-19 Red Hat, Inc. Providing blockchain-based subscription-as-a-service management
US10462124B2 (en) 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
US10541992B2 (en) * 2016-12-30 2020-01-21 Google Llc Two-token based authenticated session management
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US10999272B2 (en) * 2018-03-30 2021-05-04 Lendingclub Corporation Authenticating and authorizing users with JWT and tokenization
US11108762B2 (en) 2018-06-05 2021-08-31 The Toronto-Dominion Bank Methods and systems for controlling access to a protected resource
EP3594843A1 (de) * 2018-07-10 2020-01-15 Klaxoon Verbesserte skalierbare architektur von servern, die den zugriff auf dateninhalte ermöglichen
US10848301B1 (en) * 2018-07-20 2020-11-24 Verisign, Inc. DNS-based public key infrastructure for digital object architectures
US11516211B2 (en) 2018-09-11 2022-11-29 Citrix Systems, Inc. System for providing a service based upon authorization token and virtual assistant and related methods
US11477196B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Architecture having a protective layer at the data source
US11477197B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Sidecar architecture for stateless proxying to databases
US11477217B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Intruder detection for a network
US11212101B2 (en) * 2018-10-09 2021-12-28 Ca, Inc. Token exchange with client generated token
US11050566B2 (en) * 2018-12-18 2021-06-29 Citrix Systems, Inc. Method for securing the rendezvous connection in a cloud service using routing tokens
CN109726528B (zh) * 2019-03-18 2021-05-04 百度在线网络技术(北京)有限公司 车机服务激活、车机服务请求方法、装置、设备和介质
US11146398B2 (en) * 2019-08-30 2021-10-12 Comcast Cable Communications, Llc Method and apparatus for secure token generation
CN110569667B (zh) * 2019-09-10 2022-03-15 北京字节跳动网络技术有限公司 一种访问控制方法、装置、计算机设备及存储介质
CN113647075B (zh) * 2019-09-12 2023-04-04 Oppo广东移动通信有限公司 设备激活方法、终端设备及计算机存储介质
US11463258B2 (en) * 2020-03-13 2022-10-04 Ebay Inc. Secure token refresh
US11971980B2 (en) * 2020-05-28 2024-04-30 Red Hat, Inc. Using trusted execution environments to perform a communal operation for mutually-untrusted devices
US11947659B2 (en) 2020-05-28 2024-04-02 Red Hat, Inc. Data distribution across multiple devices using a trusted execution environment in a mobile device
US11636221B2 (en) * 2020-08-04 2023-04-25 EMC IP Holding Company LLC Mechanism for multi-factor authentication based on data
CN112153037B (zh) * 2020-09-18 2023-07-14 北京浪潮数据技术有限公司 一种rest请求响应方法、装置、设备及介质
CN112165475B (zh) * 2020-09-22 2023-05-02 成都知道创宇信息技术有限公司 反爬虫方法、装置、网站服务器和可读存储介质
US11848924B2 (en) * 2020-10-12 2023-12-19 Red Hat, Inc. Multi-factor system-to-system authentication using secure execution environments
CN112734230A (zh) * 2021-01-08 2021-04-30 深圳市帧彩影视科技有限公司 基于云平台的视频后期制作的控制方法、装置、云平台
CN116185810A (zh) * 2021-11-29 2023-05-30 微软技术许可有限责任公司 具有改进的扩展性和兼容性的自动化测试
US11411954B1 (en) 2021-12-27 2022-08-09 Coretech LT, UAB Access control policy for proxy services
US20230232224A1 (en) * 2022-01-18 2023-07-20 Teal Communications, Inc. Methods and systems for pushing data to client devices over a telecommunications data network

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2357623A1 (de) * 2003-04-25 2011-08-17 Apple Inc. Grafische Benutzeroberfläche zum Suchen und Präsentieren von Mediendateien
US7239877B2 (en) * 2003-10-07 2007-07-03 Accenture Global Services Gmbh Mobile provisioning tool system
US7224963B2 (en) * 2003-10-17 2007-05-29 Sony Ericsson Mobile Communications Ab System method and computer program product for managing themes in a mobile phone
CA2543796C (en) * 2003-10-28 2015-12-08 Certicom Corp. Method and apparatus for verifiable generation of public keys
US20060184936A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from management and control systems
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US20060184935A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from users and services
US7761573B2 (en) * 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
US20070288247A1 (en) * 2006-06-11 2007-12-13 Michael Mackay Digital life server
GB0710417D0 (en) * 2007-06-01 2007-07-11 Imec Inter Uni Micro Electr A Method for generating a run-time manager based on application meta data
US8464312B1 (en) * 2007-06-29 2013-06-11 Extreme Networks, Inc. Integrated network policy enforcement
US20090089866A1 (en) * 2007-09-27 2009-04-02 Akifumi Yato Access authorization system, access control server, and business process execution system
US8521207B2 (en) * 2009-02-09 2013-08-27 Qualcomm Incorporated Closed-loop power control in multi-carrier high-speed uplink packet access
US8789041B2 (en) * 2009-12-18 2014-07-22 Verizon Patent And Licensing Inc. Method and system for bulk automated virtual machine deployment
CN101841558B (zh) * 2010-03-23 2013-07-03 中国科学院计算技术研究所 P2sp网络中资源的下载方法及系统
US8463882B2 (en) * 2010-10-25 2013-06-11 Verizon Patent And Licensing Inc. Server cloning in a computing-on-demand system
US8244277B1 (en) * 2011-02-16 2012-08-14 Sprint Communications Company L.P. Device experience adaptation based on schedules and events
US8577334B1 (en) * 2011-06-16 2013-11-05 Sprint Communications Company L.P. Restricted testing access for electronic device
US9170798B2 (en) * 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US9047133B2 (en) * 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US8700898B1 (en) * 2012-10-02 2014-04-15 Ca, Inc. System and method for multi-layered sensitive data protection in a virtual computing environment
US9128745B2 (en) * 2012-12-27 2015-09-08 International Business Machines Corporation Automatically managing the storage of a virtual machine
CN104702580B (zh) * 2013-12-10 2017-12-29 北京安讯奔科技有限责任公司 多通讯渠道认证授权平台系统和方法
CN104869102B (zh) * 2014-02-24 2019-04-02 腾讯科技(北京)有限公司 基于xAuth协议的授权方法、装置和系统
US20150341445A1 (en) * 2014-05-23 2015-11-26 Radoslav Nikolov Hybrid applications operating between on-premise and cloud platforms

Also Published As

Publication number Publication date
CN113141374A (zh) 2021-07-20
US20190007525A1 (en) 2019-01-03
US20170195457A1 (en) 2017-07-06
US10075557B2 (en) 2018-09-11
WO2017116912A1 (en) 2017-07-06
CN108702393A (zh) 2018-10-23
CN108702393B (zh) 2022-11-01
US10440151B2 (en) 2019-10-08
CN113141374B (zh) 2023-01-24

Similar Documents

Publication Publication Date Title
DE112016006123T5 (de) Handshake zur Dienstautorisierung
DE102016123651B4 (de) Authentisierungskooperationssystem
US10333937B2 (en) Privilege distribution through signed permissions grants
DE602005001613T2 (de) Einrichten eines sicheren kontexts zur übermittlung von nachrichten zwischen computersystemen
DE60121517T2 (de) Verfahren zur Erzeugung eines Anmeldungszertifikats aus einem fremden PKI-System unter Verwendung eines bestehenden starken PKI-Authentifizierungssystems
KR102177775B1 (ko) 장기 디지털 인증서 검증에 기초한 단기 디지털 인증서 발급
DE102007033615B4 (de) Verfahren und Vorrichtung zum Umwandeln von Authentisierungs-Token zur Ermöglichung von Interaktionen zwischen Anwendungen
DE112010004930B4 (de) Sicherer kerberisierter Zugriff auf ein verschlüsseltes Dateisystem
US10374809B1 (en) Digital signature verification for asynchronous responses
DE60112546T2 (de) Bestätigungsdienst mit öffentlichem schlüssel
US9565190B1 (en) Domain join and managed directory support for virtual computing environments
DE60225378T2 (de) Verfahren und Systeme zur Steuerung des Umfangs der Delegierung von Authentifizierungsdaten
EP1777907B1 (de) Vorrichtungen und Verfahren zum Durchführen von kryptographischen Operationen in einem Server-Client-Rechnernetzwerksystem
DE202016107487U1 (de) Authentifizierung eines lokalen Gerätes
DE102014100173B4 (de) Verfahren zum geschützten Übermitteln eines Datenobjekts
DE102011051498A1 (de) Gesicherter Zugriff auf Daten in einem Gerät
DE102017202423A1 (de) Gesteuerte sichere Codeauthentifizierung
DE112011101729T5 (de) Verwaltung von Ressourcenzugriff
DE102015214267A1 (de) Verfahren und System zum Erzeugen eines sicheren Kommunikationskanals für Endgeräte
EP4357945A2 (de) Verfahren zum lesen eines attributs aus einem id-token
EP3127293A1 (de) Verteiltes authentifizierungssystem und -verfahren
DE112018001559T5 (de) Cachespeicherlose sitzungsticket-unterstützung bei tls-prüfung
DE102017117742A1 (de) Transaktionsbasierte Nachrichtensicherheit
EP3246839A1 (de) Zugangskontrolle mit einem mobilfunkgerät
DE112020000244T5 (de) Initialisierung einer Datenspeicherungsvorrichtung mit einer Managervorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029100000

Ipc: G06F0021620000