OIDC Token es una herramienta que expone, asigna, accede y actualiza tokens de un proveedor de identidad compatible con OIDC. Esto es útil si se quiere configurar varios servicios en la nube para que funcionen con Unreal Editor, como
Configuración
Puedes encontrar el archivo de configuración en Engine\Programs\OidcToken\oidc-configuration.json o <Game>\Programs\OidcToken\oidc-configuration.json
A continuación puedes ver un ejemplo del aspecto que podría tener el archivo de configuración:
{
"OidcToken": {
"Providers": {
"MyOwnProvider": {
"ServerUri": "https://<url-to-your-provider>",
Configuración de un proveedor de identidad
En esta sección se explica cómo configurar algunos proveedores de identidad (IdP) comunes.
Okta
Para usar Okta como proveedor de identidad, debes configurar los siguientes elementos:
Un cliente (aplicación) para el inicio de sesión interactivo (por parte de los usuarios).
Un servidor de autenticación personalizado para controlar cómo Okta asigna las reclamaciones y los ámbitos, así como algunos grupos que puedes asignar a los usuarios para gestionar el control de acceso.
Si quieres ejecutar esto en una granja de compilación donde no es posible el inicio de sesión interactivo, necesitarás configurar otro cliente (aplicación) para permitir inicios de sesión.
Okta no es compatible con inicios de sesión OIDC sin servidores de autenticación personalizados. Para configurar uno, consulta las secciones sobre los servidores de autenticación en la documentación de Okta.
Para configurar Okta como proveedor de identidad, sigue estos pasos:
Abre el panel de administración de Okta.
Haz clic en Applications > Applications.
Crea el cliente para el inicio de sesión interactivo y activa los siguientes tipos de concesión:
Refresh Tokens
Authorization Code
Recomendamos especificar varias URL de inicio de sesión en localhost. Por ejemplo:
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
Esto hace posible que la app se ejecute en varios puertos locales durante el proceso de inicio de sesión, lo que evita problemas con el puerto ocupado.
Los puertos enumerados anteriormente son un ejemplo arbitrario. Elige los puertos que mejor se adapten a tus necesidades.
Configura el cliente de inicio de sesión desatendido, que es similar al cliente que estableciste en los pasos anteriores, pero con los siguientes cambios:
En su lugar, usa el tipo de concesión Client Credentials.
No tienes que especificar ninguna URL de inicio de sesión.
Esto requiere que uses objetos de perfil con tu cliente. Para ver ejemplos de cómo actualizar el perfil creado, consulta las secciones sobre cómo actualizar los atributos del perfil en la documentación de Okta.
Una vez que hayas creado la credencial de cliente que quieras usar para los inicios de sesión desatendidos, envía una carga para ella, como la del siguiente ejemplo:
C++"profile": { "clientCredentialsGroups": [ "app-ue-storage-project-your-project-name" ] }Actualiza tu reclamación de grupos en el servidor de autenticación personalizado con las siguientes pautas:
Puedes agrupar los usuarios como quieras, pero tienes que crear al menos un grupo que incluya con precisión a todos los usuarios a los que quieres dar acceso. En Epic Games solemos tener uno por proyecto.
También tienes que crear un grupo de administradores para los usuarios que tengan acceso elevado.
Usa convenciones de nomenclatura que faciliten la identificación de los grupos que quieres usar. Esto ayuda a asegurarte de que solo envías los grupos que se aplican a los elementos de Unreal Engine como parte de los tokens y no todos los grupos a los que pertenece un usuario.
Asegúrate de asignar al menos un usuario a cada grupo al crearlos.
En la página de administración de Okta, configura el servidor de autenticación personalizado en Security > API.
Los servidores de autenticación personalizados son un complemento de Okta que puede no estar disponible para ti, pero es necesario para que Okta gestione los inicios de sesión OIDC.
Para crear el servidor de autenticación, haz clic en el botón Create Authorization Server . Este servidor de autenticación no es específico de Cloud DDC, sino algo que puedes usar para cualquier servicio de Unreal Engine que quieras usar.
Edita el servidor de autenticación y configura las políticas de acceso. Crea una política para cada cliente y configúrala para permitir que ese cliente inicie sesión.
Abre Claims para el tipo de token de acceso, configura una reclamación de Groups y haz que filtre los grupos que quieras usar, además de incluir
clientCredentialsGroups. Usa esta expresión personalizada:C++(appuser != null) ? Arrays.flatten( Groups.startsWith("OKTA", "app-ue-", 100) == null ? {} : Groups.startsWith("OKTA", "app-ue-", 100) ) : app.profile.clientCredentialsGroup1sEsto filtra los grupos que empiecen por
app-ue.Configura un ámbito cache_access que puedas usar para inicios de sesión en la granja de compilación.
Una vez completados los pasos anteriores, Okta estará listo para actuar como tu proveedor de identidad.
Cómo probar Okta como tu proveedor de identidad
Para probar Okta, sigue estos pasos:
En el servidor de autenticación, ve a Token Preview.
Elige el cliente de Interactive Login con el tipo de concesión Authorization Code.
Selecciona el usuario que está asignado al grupo correcto.
Cuando obtengas una vista previa de este token, el JSON que muestre debería incluir una matriz de grupos que contenga los nombres de los grupos que has asignado.
Microsoft Entra (AzureAD)
Para configurar Microsoft Entra como proveedor de identidad, sigue estos pasos:
Ve al Microsoft Azure Portal.
Haz clic en el servicio Microsoft Entra.
Ve a Registro de aplicaciones y crea un nuevo registro de aplicación para los inicios de sesión en ordenadores. Debería tener los siguientes ajustes:
Inquilino único
Contiene un conjunto de URL de redireccionamiento del host local que usan la opción pública cliente/nativo. A continuación se muestran algunos ejemplos del aspecto que podrían tener tus URI de redireccionamiento:
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
Anota el
identificador de clientede esta aplicación.Ve a Configuración de tokens y añade un ajuste de reclamación de grupos para usar grupos asignados a la aplicación.
Crea un nuevo grupo de seguridad para el rol de usuario del proyecto. Asigna ese grupo de seguridad a la función y, a continuación, añade todos los usuarios que quieras al grupo de seguridad.
Crea los siguientes roles de aplicación:
Usuario del proyecto (normalmente uno por proyecto)
Admin
El rol Usuario del proyecto debe poder asignarse a usuarios, grupos y aplicaciones, mientras que el rol Admin es solo para usuarios.
Vuelve a Registro de aplicaciones y crea una aplicación para el servicio de backend (por ejemplo, Unreal Cloud DDC).
Añade un ámbito de API a tu nueva aplicación y nómbralo
user.access. Asigna elID de clientede la aplicación de escritorio para que acceda a esta API.Crea un nuevo registro de aplicación independiente para tus aplicaciones cooked y añádeles un secreto de cliente para que puedan iniciar sesión sin supervisión (o usa una identidad gestionada o similar, si lo prefieres). Esta aplicación también debería tener asignado el rol Usuario del proyecto.
Cuando crees el archivo
oidc-configuration.json, encontrarás el URI del servidor bajo el botón Puntos finales para el registro de tu aplicación. Suele ser[https://login.microsoftonline.com/](https://login.microsoftonline.com/)<directory-tenant-id>/v2.0.En cuanto al ID de cliente, usa el
ID de clientede la aplicación de escritorio que has creado. El ámbito debe contener el ámbito de la API que has creado en el servicio de backend, por lo que suele acabar siendo:offline_access profile openid api://<api scope guid>/user.access.
Una vez que hayas completado los pasos anteriores, Microsoft Azure debería estar listo para servir como tu proveedor de identidad.