お世話になっております。
<br/>
他でも同じ内容でご回答いただいておりますが、機能リクエストおよびフィードバックとして投稿させていただきます。
他投稿 : Horde - unable to create session in service account - #16 by anonymous-edc
<br/>
上記投稿では「インタラクティブな認証方法」が途中で回答されていますが、「非インタラクティブな認証方法」であることを強く強調させていただきます。
<br/>
多くのゲームスタジオでは従来使用しているJenkins環境から一気にHordeに移すのではなく、動作確認をしながら段階的にHordeに移す形となるかと思います。
その上で、JenkinsでもUBAの恩恵を受けつつビルド高速化をしたいフェーズが入ってくるため、非インタラクティブな認証方法が欲しくなる、といった流れとなります。
<br/>
現状認証方法としては以下がある認識ですが、サービスアカウントを用いた非インタラクティブな認証方法は非常に使いづらいものとなっています。
<br/>
- インタラクティブな認証方法
- BuildConfigration, UBT引数, Engine.ini, 環境変数のToken(or UBAToken)
- サービスアカウントを用いた非インタラクティブな認証方法
<br/>
使いづらい原因としては、
1. サービスアカウントの認証ではヘッダーが以下の状態になっていることを期待している
> Authorization : ServiceAccount <token>
Engine\Source\Programs\Horde\HordeServer\Authentication\ServiceAccountAuthHandler.cs
<br/>
2. iniファイルやConfigrationなどで設定するTokenは以下形式で送信されてしまうこと
> Authorization : Bearer <token>
Engine\Source\Programs\Shared\EpicGames.Horde\HordeClient.cs
<br/>
その為、表題の問題を解決しようとした場合
- インタラクティブな認証方法を用いつつ、jwtExpiryTimeHoursを限りなく長くする
- 設定値からBearerかServiceAccountかを決められるように、ソースコードを改変する
のどちらかになる認識ですが、あっておりますか?
<br/>
jwtExpiryTimeHoursが手っ取り早いですが、全てのJenkins Agentで一度インタラクティブな認証をする必要があるのは変わらないのと
本来jwtの有効期限は開発現場が許す範囲で短く設定すべきとだと思っています。
<br/>
以上、よろしくお願いいたします。
[Attachment Removed]