OIDC トークンOIDC 対応の ID プロバイダーからトークンを公開、割り当て、アクセス、更新するツールです。 これは、Unreal Editor と連携するクラウドサービス (Cloud DDC など) を設定する際に役立ちます。 このページでは、OIDC トークン ツールの設定および ID プロバイダーの設定に関する情報を提供します。
構成
コンフィギュレーション ファイルは、「ngine\Programs\OidcToken\oidc-configuration.json」または 「Game>\Programs\OidcToken\oidc-configuration.json」に配置できます。
以下は、コンフィギュレーション ファイルがどのように表されるかという例を示したものです。
{
"OidcToken": {
"Providers": {
"MyOwnProvider": {
"ServerUri": "https://<url-to-your-provider>",
ID プロバイダーを設定する
このセクションでは、一般的な ID プロバイダー (IdP) の設定方法について説明します。
Okta
Okta を IdP として使用するには、以下の項目を設定する必要があります。
クライアント (アプリケーション) は、対話型ログイン (ユーザー別) 用です。
Okta がクレームとスコープをマップする方法、およびユーザーにアクセス制御の管理を割り当てることができるグループを制御するための、カスタム認証サーバー。
インタラクティブなログインができないビルドファームでこれを実行する場合は、ログインを許可するために別のクライアント (アプリケーション) を設定する必要があります。
Okta はカスタム認証サーバーを使用しない OIDC ログインをサポートしていません。 設定するには、認証サーバーに関する Okta のドキュメントを参照してください。
Okta を ID プロバイダーとして設定するには、次の手順を実行します。
Okta 管理者ダッシュボードを開きます。
[Applications (アプリケーション)] > [Applications (アプリケーション)] をクリックします。
対話型ログイン用のクライアントを作成し、次のグラントタイプを有効にします。
更新トークン
認証コード
localhost の下に複数のサインイン URL を指定することをお勧めします。 たとえば、次のようになります。
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
これにより、ログイン プロセス中にアプリが複数のローカル ポートで実行できるようになり、ポートがビジー状態になる問題が回避されます。
上記のポートは任意の例です。 ニーズに合うポートを選択してください。
無人ログイン クライアントを設定します。これは前の手順で作成したクライアントと似ていますが、次の違いがあります。
代わりに、クライアント資格情報認可タイプを使用してください。
サインイン URL を指定する必要はありません。
この場合、クライアントでプロファイル オブジェクトを使用する必要があります。 作成したプロファイルの更新例については、「Okta のプロファイル属性更新に関するドキュメント」を参照してください。
無人ログインに使用するクライアント認証情報を作成すると、次の例のようなクライアント認証情報のペイロードを送信します。
C++"profile": { "clientCredentialsGroups": [ "app-ue-storage-project-your-project-name" ] }次のガイドラインに従い、カスタム認証サーバー内のグループ クレームを更新します。
ユーザーのグループは自由にマッピングできますが、アクセス権を付与したいすべてのユーザーを正確に含むグループを少なくとも 1 つ作成する必要があります。 Epic Games では通常、プロジェクトごとに 1 つのグループを持っています。
また、権限の高いユーザー用に管理者グループを作成する必要があります。
使用するグループを識別しやすくする命名規則を使用します。 これにより、ユーザーが属するすべてのグループではなく、トークンの一部として Unreal Engine に適用されるグループのみを送信できるようになります。
グループを作成するとき、各グループに少なくとも 1 人のユーザーを割り当てるようにしてください。
Okta 管理ページで [Security (セキュリティ)] > [API] にてカスタム認証サーバーを設定します。
カスタム認証サーバーは Okta に対するアドオンであり、利用できない場合がありますが、Okta が OIDC ログインを処理するために必要です。
認証サーバーを作成するには、[Create Authorization Server (承認サーバーを作成)] をクリックします。 追加することもできます この認証サーバーは Cloud DDC 固有ではなく、 任意の Unreal Engine サービスで使用できます。
認証サーバーを編集して、アクセス ポリシーを設定します。 各クライアントに 1 つのポリシーを作成し、クライアントがログインできるように設定します。
アクセス トークン タイプの [Claims] (クレーム) を開き、[Groups] (グループ) クレームを設定して使用するグループをフィルタリングし、
clientCredentialsGroupsを含めます。 次のカスタム式を使用します。C++(appuser != null) ? Arrays.flatten( Groups.startsWith("OKTA", "app-ue-", 100) == null ? {} : Groups.startsWith("OKTA", "app-ue-", 100) ) : app.profile.clientCredentialsGroup1sこれにより、
app-ueで始まるグループを除外します。ビルドファームのログインに使用するため、cache_access スコープを設定します。
上記の手順が完了した後、Okta を ID プロバイダーとして使用できるようになります。
ID プロバイダーとして Okta をテストする方法
Okta をテストするには、次の手順を実行します。
認証サーバーで、Token Preview (トークンのプレビュー) に移動します。
認証コード グラント タイプを持つ 対話型ログイン クライアントを選択します。
正しいグループに割り当てられているユーザーを選択します。
このトークンをプレビューすると、表示される JSON には割り当てたグループ名を含むグループ配列が含まれている必要があります。
Microsoft Entra (AzureAD)
Microsoft Entra を ID プロバイダーとして設定するには、次の手順を実行します。
Microsoft Azure Portal に移動します。
Microsoft Entra サービスをクリックします。
アプリの登録に移動し、デスクトップログイン用の新しいアプリ登録を作成します。 次の設定を備えている必要があります。
単一のテナント
パブリックのクライアント/ネイティブ オプションを使用する localhost リダイレクト URI のセットを含みます。 以下は、リダイレクト URI がどのように表されるかという例を示したものです。
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
このアプリの
client idをメモしておきます。[Token Configuration (トークン構成)] に移動して、グループ要求設定を追加し、アプリケーションに割り当てられたグループを使用します。
プロジェクト ユーザーロール用の新しいセキュリティ グループを作成します。 その新しいセキュリティ グループをロールに割り当て、必要なユーザーをすべてセキュリティ グループに追加します。
次のアプリ ロールを作成します。
プロジェクト ユーザー (通常はプロジェクトごとに 1 人)
管理者
プロジェクト ユーザー ロールはユーザー、グループ、およびアプリケーションに割り当てることが可能です。管理者ロールはユーザーにのみ割り当てることが可能です。
アプリの登録 に戻り、バックエンド サービス (例:Unreal Cloud DDC) 用のアプリを作成します。
API スコープを新しいアプリに追加して
user.accessという名前を付けます。 デスクトップアプリのクライアント IDをこの API に割り当てます。クック アプリ用の新しい個別のアプリの登録を作成してクライアント シークレットを追加し、無人ログインできるようにします (または必要に応じて管理された ID や類似した ID を使用します)。 このアプリにはプロジェクト ユーザー ロールを割り当てることもできます。
oidc-configuration.jsonファイルを作成すると、アプリ登録の [エンドポイント] ボタンの下にあるサーバー URI を確認できます。 通常は「https://login.microsoftonline.com/](https://login.microsoftonline.com/)<directory-tenant-id>/v2.0」です。クライアント用のクライアント ID には、作成したデスクトップアプリの
クライアント IDを 使用します。 スコープには、バックエンドサービスで作成した API スコープを含める必要があります。 そのため、通常は次のようになります。offline_access profile openid api://<api scope guid>/user.access
上記の手順が完了した後、Microsoft Azure を ID プロバイダーとして使用できるようになります。