[SEO-Zwischenüberschrift]
Diese Anleitung zeigt, wie eine benutzerdefinierte, einfache und skalierbare plattformübergreifende Spielidentitätskomponente bereitgestellt wird. Außerdem werden Schritte zur Verwendung der Identitäten zur Authentifizierung gegenüber benutzerdefinierten Spiel-Backend-Komponenten in AWS erläutert. Diese Anleitung unterstützt Gastidentitäten und verschiedene Identitätssysteme für Spielplattformen. Sie kann auch für beliebige weitere Spieleplattformen, wie z. B. Spielekonsolen, erweitert werden, indem die vorhandenen Integrationen als Vorlagen verwendet werden.
Darüber hinaus stellt dieser Leitfaden Software Development Kits (SDKs) und Beispielcode für die Spiel-Engines Unreal Engine 5, Unity 2021 (und höher) und Godot 4 bereit. Die SDKs lassen sich in die Identitätskomponente dieser Anleitung und Ihre benutzerdefinierten Backend-Features integrieren.
Bitte beachten: [Haftungsausschluss]
Architekturdiagramm
[Beschreibung des Architekturdiagramms]
Schritt 1
Die AWS-Lambda-Funktion generate-keys wird alle 7 Tage aufgerufen.
Schritt 2
Generate-keys ruft die neueste öffentliche jwks.json-Datei vom Amazon Simple Storage Service (Amazon S3) ab, generiert neue öffentliche Schlüssel (JSON Web Key Set (JWKS)) und private Schlüssel und aktualisiert Amazon S3 mit dem neuen öffentlichen Schlüssel und dem vorheriger Schlüssel.
Schritt 3
Generate-keys aktualisiert den privaten Schlüssel, der zum Generieren von JSON Web Tokens (JWT) verwendet wird, für AWS Secrets Manager.
Schritt 4
Der Spiele-Client verwendet das bereitgestellte Software Development Kit (SDK), um eine neue Gastidentität anzufordern. Alternativ kann sich der Spiele-Client mit seiner vorhandenen Gastidentität anmelden, indem er den guest_secret über das Amazon API Gateway sendet, das durch AWS WAF-Regeln geschützt ist.
Schritt 5
Die login-as-guest-Funktion von Lambda validiert die Gastidentität oder erstellt eine neue für die UserTable in Amazon DynamoDB.
Schritt 6
Die Lambda-Funktion fordert den privaten Schlüssel vom Secrets Manager an, generiert ein signiertes JWT-Token für den Client und sendet es zurück.
Schritt 7
Der Spiele-Client kann nun benutzerdefinierte Backend-Komponenten aufrufen, indem er mithilfe des SDK Anfragen mit dem JWT-Token im Header für die Autorisierung sendet.
Schritt 8
Die Backend-Komponenten validieren das Token, indem sie die öffentlichen JWKS-Schlüssel vom öffentlichen Endpunkt über Amazon CloudFront anfordern, das die Datei von Amazon S3 abruft.
Schritt 9
Das SDK aktualisiert das JWT-Zugriffstoken automatisch, indem es die refresh-access-token-Funktion von Lambda über API Gateway aufruft. Die Funktion generiert ein neues Token mit dem privaten Schlüssel von Secrets Manager.
Schritt 10
Darüber hinaus kann der Spiele-Client Zugriffstoken vom spielplattformspezifischen Identitätsanbieter senden, um eine Verknüpfung mit einem vorhandenen Konto herzustellen oder ein neues Konto zu erstellen.
Die Lambda-Funktionen validieren die Token und erstellen die Verknüpfung zum Benutzerkonto in einer bestimmten DynamoDB-Tabelle. Anschließend generiert es mithilfe des privaten Schlüssels vom Secrets Manager ein JWT-Token für den Client.
Erste Schritte
Diese Anleitung anwenden
Well-Architected-Säulen
Das AWS-Well-Architected-Framework hilft Ihnen, die Vor- und Nachteile der Entscheidungen zu verstehen, die Sie beim Aufbau von Systemen in der Cloud treffen. Die sechs Säulen des Frameworks ermöglichen es Ihnen, architektonische bewärhte Methoden für die Entwicklung und den Betrieb zuverlässiger, sicherer, effizienter, kostengünstiger und nachhaltiger Systeme zu erlernen. Mit dem AWS-Well-Architected-Tool, das kostenlos in der AWS-Managementkonsole verfügbar ist, können Sie Ihre Workloads anhand dieser bewährten Methoden überprüfen, indem Sie eine Reihe von Fragen für jede Säule beantworten.
Das obige Architekturdiagramm ist ein Beispiel für eine Lösung, die unter Berücksichtigung der bewährten Methoden von Well-Architected erstellt wurde. Um eine vollständige Well-Architected-Lösung zu erhalten, sollten Sie so viele bewährte Methoden von Well-Architected wie möglich befolgen.
-
Betriebliche Exzellenz
Die benutzerdefinierte Identitätskomponente in dieser Anleitung nutzt AWS X-Ray, das Benutzeranfragen nachverfolgt, und verwendet Lambda Powertools, um detaillierte Informationen aus der Backend-Logik bereitzustellen. Darüber hinaus nutzen alle Komponenten dieser Anleitung Amazon CloudWatch, um Protokolle von Virtual Private Cloud (VPC)-Abläufen, API-Gateway-Zugriff, Amazon-S3-Zugriff, Lambda-Abschlüssen und AWS-Fargate-Aufgaben nach zu verfolgen. Schließlich ermöglicht AWS CDK kontrollierte Änderungen und eine konsistente Konfiguration in allen Umgebungen, sodass Sie Ihre Sicherheits- und Compliance-Anforderungen erfüllen können.
-
Sicherheit
Zur Unterstützung einer robusten Identitätsverwaltung verwaltet die benutzerdefinierte Identitätskomponente dieser Anleitung Spieleridentitäten und Authentifizierung. Alle anderen Feature dieser Anleitung sichern den Zugriff durch die Validierung von JSON-Web-Tokens anhand öffentlicher Schlüssel, die von der Identitätskomponente bereitgestellt werden. Die benutzerdefinierte Identitätskomponente wird durch AWS WAF geschützt, eine Webanwendungs-Firewall, die Anwendungen vor gängigen Web-Angriffen schützt. Außerdem werden alle Daten sowohl im Ruhezustand als auch während der Übertragung verschlüsselt.
-
Zuverlässigkeit
Diese Anleitung nutzt hauptsächlich vollständig verwaltete Services, die standardmäßig über mehrere Availability Zones (AZ) innerhalb einer AWS-Region hochverfügbar sind. Für Fargate wird eine Multi-AZ-Konfiguration für Hochverfügbarkeit verwendet und alle Datenbanktabellen in DynamoDB werden durch zeitpunktbezogener Wiederherstellung geschützt.
-
Leistung und Effizienz
Diese Anleitung kombiniert eine Reihe verschiedener Ansätze, um verschiedene Feature zur Leistungssteigerung zu ermöglichen. Erstens sind die für diese Anleitung ausgewählten Services so konzipiert, dass sie bei Spielstarts und anderen Spitzen im Datenverkehr skalierbar sind, indem sie die automatisch skalierenden Komponenten der Serverless-Services nutzen. Anschließend ermöglichen die von der benutzerdefinierten Identitätskomponente bereitgestellten X-Ray-Daten den Entwicklern, Überlastungen zu erkennen und die Anleitung an ihre Bedürfnisse anzupassen, um die Leistung zu optimieren. Schließlich werden die öffentlichen Schlüssel, die die JSON-Web-Tokens validieren, über CloudFront bereitgestellt, um die Latenz für Backend-Komponenten zu optimieren.
-
Kostenoptimierung
Diese Anleitung nutzt nach Möglichkeit Serverless-Komponenten, sodass Sie nur für genau die Ressourcen bezahlen, die Sie verwenden. Um die Kosten noch weiter zu senken, sollten Sie AWS Savings Plans in Betracht ziehen, mit denen Sie die Kosten für Lambda und Fargate optimieren können. Außerdem können Sie durch den Wechsel von bedarfsgesteuerten On-Demand-Tabellen von DynamoDB zur automatisch skalierten bereitgestellten Kapazität die reservierte Kapazität von DynamoDB nutzen, um Kosten zu senken, wenn der Basis-Datenverkehr bekannt ist.
Alle in dieser Anleitung verwendeten Services sind so konfiguriert, dass sie On-Demand skaliert werden können, einschließlich API Gateway, Lambda, DynamoDB, Amazon S3, Fargate, Secrets Manager und AWS WAF. Dadurch wird sichergestellt, dass nur die minimalen Ressourcen benötigt werden.
-
Nachhaltigkeit
Die Komponenten der Serverless-Services in diesem Leitfaden werden automatisch skaliert, so dass die Komponenten bei kontinuierlicher Übereinstimmung mit der Auslastung mit nur den minimal benötigten Ressourcen skalieren können. Dadurch werden die Umweltauswirkungen der Infrastruktur reduziert, da die Bereitstellung ungenutzter Kapazitäten vermieden wird.
Ähnliche Inhalte
[Titel]
Haftungsausschluss
Der Beispielcode, die Softwarebibliotheken, die Befehlszeilentools, die Machbarkeitsnachweise, die Vorlagen oder andere zugehörige Technologien (einschließlich derjenigen, die von unseren Mitarbeitern bereitgestellt werden) werden Ihnen als AWS-Inhalte im Rahmen der AWS-Kundenvereinbarung oder der entsprechenden schriftlichen Vereinbarung zwischen Ihnen und AWS (je nachdem, was zutrifft) zur Verfügung gestellt. Sie sollten diese AWS-Inhalte nicht in Ihren Produktionskonten oder für Produktions- oder andere kritische Daten verwenden. Sie sind verantwortlich für das Testen, Sichern und Optimieren des AWS-Inhalts, z. B. des Beispielcodes, für die Verwendung in der Produktion auf der Grundlage Ihrer spezifischen Qualitätskontrollverfahren und -standards. Bei der Bereitstellung von AWS-Inhalten können AWS-Gebühren für die Erstellung oder Nutzung von kostenpflichtigen AWS-Ressourcen anfallen, z. B. für den Betrieb von Amazon-EC2-Instances oder die Nutzung von Amazon-S3-Speicher.
Verweise auf Services oder Organisationen von Drittanbietern in diesen Leitlinien bedeuten nicht, dass Amazon oder AWS eine Billigung, Förderung oder Zugehörigkeit zwischen Amazon oder AWS und dem Drittanbieter darstellt. Die Beratung durch AWS ist ein technischer Ausgangspunkt, und Sie können Ihre Integration mit Services von Drittanbietern anpassen, wenn Sie die Architektur bereitstellen.