OIDC-Token ist ein Werkzeug, das Token von einem OIDC-kompatiblen Identitätsanbieter offenlegt, zuweist, auf sie zugreift und sie aktualisiert. Das ist nützlich, um verschiedene Cloud-Dienste einzurichten, die mit dem Unreal Editor arbeiten, etwa einen Cloud-ADC. Diese Seite bietet Informationen zur Konfiguration des OIDC Token Werkzeug und der Einstellung von Identitätsanbietern.
Konfiguration
Die Konfiguration kann unter Engine\Programs\OidcToken\oidc-configuration.json oder <Game>\Programs\OidcToken\oidc-configuration.jsonabgelegt werden
Es folgt ein Beispiel, wie die Konfiguration aussehen könnte:
{
"OidcToken": {
"Providers": {
"MyOwnProvider": {
"ServerUri": "https://<url-to-your-provider>",
Einen Identitätsanbieter einrichten
Dieser Sektion erläutert, wie Sie einige gewöhnliche Identitätsanbieter (IdP) einrichten.
Okta
Sie müssen die folgenden Gegenstände einrichten, um Okta als IdP zu verwenden:
Ein Client (Anwendung) für die interaktive Anmeldung (durch Nutzer).
Ein Benutzerdefinierter Auth-Server zur Kontrolle darüber, wie Okta Ansprüche und Bereiche zuweist, und einige Gruppen, die Sie Nutzern zuweisen können, um die Zugang zu verwalten.
Wenn Sie dies in einer Build-Farm ausführen möchten, in der eine interaktive Anmeldung nicht möglich ist, müssen Sie einen anderen Client (Anwendung) einrichten, um Anmeldungen zu erlauben.
Okta unterstützt keine OIDC-Anmeldungen ohne benutzerdefinierte Server. Um einen einzurichten, lesen Sie die Okta-Dokumentation zu Auth-Servern.
Um Okta als Identitätsanbieter einzurichten, befolge diese Schritte:
Öffnen Sie das Okta-Admin-Dashboard.
Klicken Sie auf Anwendungen > Anwendungen.
Erstellen Sie den Client für die interaktive Anmeldung und aktivieren Sie folgende Grant-Typen:
Aktualisierungstoken
Autorisierungscode
Wir empfehlen, mehrere URLs zum anmelden unter localhost anzugeben. Zum Beispiel:
http://localhost:8749/oidc-token
http://localhost:8750/oidc-token
http://localhost:8751/oidc-token
http://localhost:8752/oidc-token
http://localhost:8753/oidc-token
http://localhost:8754/oidc-token
Dies ermöglicht es der App, während des Anmeldeprozesses auf mehreren lokalen Ports ausgeführt zu werden, wodurch Probleme mit ausgelasteten Ports vermieden werden.
Die oben aufgeführten Ports sind nur ein Beispiel. Wählt Ports, die euren Bedürfnissen entsprechen.
Richten Sie den Anmeldung-Client nicht anwesend ein, ähnliche dem Client, den Sie in den vorherigen Schritten eingerichtet haben, allerdings mit den folgenden Änderungen:
Verwenden Sie stattdessen den Grant-Typ Client-AnmelIhrformationen.
Sie müssen keine Anmelde-URLs angeben.
Dazu müssen Sie Profiling-Objekte in Ihrem Client verwenden. Beispiele zur Aktualisierung des erstellten Profils finden Sie in der Okta Dokumentation zur Aktualisierung von Profilattributen.
Sobald Sie die Client Anmeldedaten erstellen, die Sie für unbeaufsichtigte Anmeldungen verwenden wollen, senden Sie eine Nutzlast dafür ab, ähnlich wie im folgenden Beispiel:
C++"profile": { "clientCredentialsGroups": [ "app-ue-storage-project-your-project-name" ] }Aktualisieren Sie Ihren Gruppenanspruch im benutzerdefiniert Auth Server entsprechend der folgenden Richtlinien:
Sie können Nutzergruppen beliebig mappen, aber Sie müssen mindestens eine Gruppe erstellen, die genau alle Nutzer umfasst, die Zugang haben sollen. Bei Epic Games haben wir normalerweise einen pro Projekt.
Sie müssen außerdem eine Admin-Gruppe für Benutzer erstellen, die über erhöhte Zugang verfügen.
Nutzen Sie eine Benennungskonvention, die es Ihnen leicht macht, die Gruppen zu identifizieren, die Sie nutzen wollen. So können Sie sicherstellen, dass Sie nur die Gruppen, die für Unreal Engine Dinge anwenden, als Teil der Token senden und nicht alle Gruppen, denen ein Nutzer angehört.
Stellen Sie sicher, dass Sie jeder Gruppe mindestens einen Nutzer zuweisen, wenn Sie diese erstellen.
Konfigurieren Sie auf der Okta Administratorseite den benutzerdefinierten Auth-Server unter Security > API.
Benutzerdefinierte Auth-Server sind ein Add-on für Okta, das für Sie möglicherweise nicht verfügbar ist, aber erforderlich ist, damit Okta OIDC-Anmeldungen verarbeiten kann.
Um den Auth Server zu erstellen, klicken Sie auf Authorisierungsserver erstellen . Dieser Auth Server ist nicht spezifisch für Cloud DDC, sondern das du für jeden Unreal Engine-Service nutzen kannst.
Bearbeiten Sie den Auth-Server und richten Sie Zugangsrichtlinien ein. Erstellen Sie eine Richtlinie für jeden Client und richten Sie sie so ein, dass dieser Client sich anmelden darf.
Öffnen Sie Claims für den Access Token-Typ, richten Sie einen Antrag der Gruppen ein und stellen ihn so ein, dass er die Gruppen herausfiltert, die Sie verwenden wollen, wie auch die Gruppe
clientCredentialsGroupsumfasst. Nutzen Sie diesen benutzerdefinierten Ausdruck:C++(appuser != null) ? Arrays.flatten( Groups.startsWith("OKTA", "app-ue-", 100) == null ? {} : Groups.startsWith("OKTA", "app-ue-", 100) ) : app.profile.clientCredentialsGroup1sDies filtert Gruppen, die mit
app-uebeginnen.Richten Sie einen cache_access-Bereich ein, den Sie für Build-Farm-Anmeldungen verwenden können.
Nachdem Sie die oben genannten Schritte abgeschlossen haben, wird Okta bereit sein, als Ihr Identitätsanbieter zu dienen.
Testen von Okta als Identitätsanbieter
Befolgen Sie diese Schritte, um Okta zu testen:
Gehen Sie auf dem Auth Server zur Token Preview.
Wählen Sie den interaktiven Anmelde-Client mit dem Grant Authorization Code.
auswählen den Nutzer aus, welcher der richtigen Gruppe zugewiesen ist.
Wenn Sie eine Vorschau dieses Tokens betrachten, sollte das angezeigte JSON ein Gruppen-Array umfassen, welches die Namen der Gruppen enthält, die Sie zugewiesen haben.
Microsoft Entra (AzureAD)
Befolgen Sie diese Schritte, um Microsoft Entra als Identität einzurichten:
Wechseln Sie zum Microsoft Azure Portal.
Klicken Sie auf den Dienst Microsoft Entra.
Gehen Sie zu App-Registrierung und erstellen Sie eine neue App Registrierung für die Desktop-Anmeldungen. Er sollte die folgenden Einstellungen haben:
Einzelner Mandant
Enthält eine Reihe von Localhost-Umleitungs-URIs mit der Option öffentlicher Client / nativ. Es folgen einige Beispiele, wie Ihre Redirect-URIs aussehen könnten:
http://localhost:8749/oidc-token
http://localhost:8750/oidc-token
http://localhost:8751/oidc-token
http://localhost:8752/oidc-token
http://localhost:8753/oidc-token
http://localhost:8754/oidc-token
Notieren Sie Ihnen die
Client-IDdieser App.Gehen Sie zu Token-Konfiguration und fügen Sie eine Einstellung hinzu, um Gruppen zu verwenden, die der Anwendung zugewiesen sind.
Erstellen Sie eine neue Sicherheitsgruppe für die Projekt-Nutzerrolle. Weisen Sie diese Gruppe der Rolle zu und fügen Sie dann alle gewünschten Benutzer zur Gruppe hinzu.
Erstellen Sie die folgenden App-Rollen:
Projekt User (normalerweise einer pro Projekt)
Admin
Die Projekt-Rolle muss Nutzern, Gruppen und Anwendungen zugewiesen werden können, während die Admin-Rolle nur für Nutzer da ist.
Gehen Sie zurück zur App-Registrierung und erstellen Sie eine App für den Backend-Service (zum Beispiel "Unreal Cloud DDC").
Fügen Sie einen API-Scopes zu Ihrer neuen App hinzu und benennen ihn
user.access. Weisen Sie dieser API dieClient-IDdes Zugang auf die Desktop App zu.Erstellen Sie eine neue, separate App-Registrierung für Ihre Cooking-Apps und fügen Sie diesen ein Client-Geheimnis hinzu, damit sie sich unbeaufsichtigt anmelden können (oder verwenden Sie eine verwaltete Identität oder ähnliches, wenn Sie das bevorzugen). Dieser App sollte außerdem die Projekt-Nutzer-Rolle zugewiesen werden.
Wenn Sie die Datei
oidc-configuration.JSONerstellen, finden Sie die Server-URI, die Sie für Ihre App-Registrierung verwenden können, unter der Schaltfläche Endpunkte. Dies ist normalerweise[https://login.microsoftonline.com/](https://login.microsoftonline.com/)<directory-tenant-id>/v2.0.Verwenden Sie für Client-ID die
Client-IDvon der von Ihnen erstellten Desktop-App. Der Bereich muss den API-Bereich enthalten. im Backend-Dienst erstellt werden kann, sodass dies normalerweise wie folgt aussieht:offline_access Profil openid api://<api scope guid>/ Nutzer. Zugang.
Nachdem Sie die oben genannten Schritte abgeschlossen haben, sollte Microsoft Azure bereit sein, als Ihre Identität zu dienen.