Registro de aplicaciones OAuth 2.0
Un registro de aplicación OAuth 2.0 de FoxIDs representa un recurso de API protegido o una aplicación backend que utiliza autenticación de máquina a máquina. Registra una API para exponer ámbitos y una Backend Application para obtener tokens de acceso con Client Credentials Grant.
Entre las principales capacidades se incluyen varias audiencias de API en un único token de acceso, acceso a API limitado por ámbitos, autenticación de cliente con secretos o certificados, transformación de notificaciones e intercambio de tokens.
Configuración
En FoxIDs Control:
- Selecciona el entorno en el que se debe registrar la API o la aplicación backend.
- Abre Applications y haz clic en Add application.
- Activa Show all options.
- Elige API o Backend Application.
- Configura la aplicación y haz clic en Create.

Después de crearla, haz clic en Change application para revisar o cambiar toda la configuración de la aplicación. Activa Show advanced únicamente cuando el ajuste necesario sea avanzado.
API OAuth 2.0
Elige API para registrar una API backend protegida como recurso OAuth 2.0. El registro de la API define su nombre de recurso, sus ámbitos y la audiencia utilizada en los tokens de acceso.
El siguiente ejemplo registra una API Customers:
- Introduce
Customerscomo Name. - Introduce
customers-apicomo Resource name. - Añade los ámbitos
readywrite. - Haz clic en Create.

Los valores completos de los ámbitos son customers-api:read y customers-api:write. Un cliente solicita uno o ambos valores en el punto de conexión de tokens, y el token de acceso resultante incluye customers-api como audiencia.
La API debe validar el emisor, la audiencia, la vigencia y el ámbito requerido del token de acceso. El acceso de una aplicación cliente se concede por separado, añadiendo el recurso de API y los ámbitos que puede solicitar.
Aplicación backend y Client Credentials Grant
Elige Backend Application para un servicio, daemon, trabajo programado o proceso en segundo plano. FoxIDs la crea como un cliente confidencial que solicita un token de acceso sin un usuario mediante Client Credentials Grant.
El siguiente ejemplo crea el servicio cliente:
- Introduce
Backend servicecomo Name. - Introduce
backend-servicecomo Client ID o permite que FoxIDs lo genere. - Copia el Client secret generado antes de salir del resultado de la creación. El secreto generado completo solo se muestra durante la creación.
- Haz clic en Create.

Conceder acceso a una API
Después de crear la aplicación backend, haz clic en Change application y configura Resource and scopes en la pestaña OAuth 2.0 Client:
- Mantén desmarcada la opción Default resource 'backend-service' for the application itself, porque este cliente no actúa como su propia API.
- Haz clic en Add Resource and scopes.
- Introduce
customers-apicomo Resource. - Añade los ámbitos
readywrite. - Haz clic en Update.

La aplicación backend ahora puede solicitar customers-api:read, customers-api:write o ambos. Los ámbitos solicitados por el cliente se validan con respecto a los ámbitos expuestos por el registro de la API.
Los tokens de acceso pueden contener varias audiencias y, por tanto, conceder acceso a varias API registradas como recursos OAuth 2.0 en FoxIDs. Añade a la aplicación backend cada recurso necesario y sus ámbitos permitidos.
Autenticación de cliente
El método predeterminado de autenticación de cliente en el punto de conexión de tokens es client secret post. Para cambiarlo, haz clic en Change application, activa Show advanced y selecciona:
client secret basicpara enviar el ID de cliente y el secreto mediante autenticación HTTP Basic.client secret postpara enviar el ID de cliente y el secreto en el cuerpo de la solicitud de token.private key JWTpara autenticarse con una aserción de cliente firmada.

Se pueden configurar hasta 10 secretos y 4 certificados de cliente para facilitar la rotación de credenciales. Guarda los secretos y las claves privadas de forma segura y no los escribas en el código fuente ni en los registros.
La siguiente solicitud utiliza el método predeterminado client secret post para obtener un token de acceso para la API Customers:
POST https://foxids.com/tenant-x/environment-y/backend-service(*)/oauth/token HTTP/1.1
Host: foxids.com
Content-Type: application/x-www-form-urlencoded
client_id=backend-service
&client_secret=<client-secret>
&grant_type=client_credentials
&scope=customers-api%3Aread
La respuesta de token contiene un token de acceso para la audiencia customers-api con el ámbito customers-api:read.
Autenticarse con un certificado
Selecciona private key JWT y carga el certificado de cliente después de crear la aplicación backend. El cliente conserva la clave privada correspondiente y firma una aserción de cliente de corta duración para cada solicitud de token.
Registra certificados con periodos solapados antes de sustituir un certificado próximo a caducar, para que el cliente pueda rotar las claves sin interrumpir las solicitudes de tokens.
Secretos de cliente
FoxIDs aplica hash a los secretos de cliente mediante el algoritmo de hash de contraseñas configurado. Un secreto generado no se puede recuperar después de la creación. En los secretos de más de 20 caracteres, FoxIDs conserva los tres primeros caracteres como información de identificación y los muestra seguidos de puntos suspensivos, por ejemplo 6j9....
Añade un secreto de sustitución antes de eliminar el anterior para rotar las credenciales sin tiempo de inactividad.
Las notificaciones emitidas a un cliente o una API se pueden modificar mediante transformaciones y tareas de notificaciones.
Resource Owner Password Credentials Grant
FoxIDs no admite Resource Owner Password Credentials Grant porque requiere que la aplicación gestione la contraseña del usuario y no es adecuado para una autenticación moderna y segura.