Enregistrement d’application OAuth 2.0
Un enregistrement d’application OAuth 2.0 FoxIDs représente soit une ressource API protégée, soit une application backend utilisant l’authentification machine à machine. Enregistrez une API pour exposer des scopes, et une Backend Application pour obtenir des jetons d’accès avec Client Credentials Grant.
Les principales fonctionnalités comprennent plusieurs audiences API dans un même jeton d’accès, l’accès aux API limité par des scopes, l’authentification client avec des secrets ou des certificats, la transformation des revendications et l’échange de jetons.
Configuration
Dans FoxIDs Control :
- Sélectionnez l’environnement dans lequel l’API ou l’application backend doit être enregistrée.
- Ouvrez Applications et cliquez sur Add application.
- Activez Show all options.
- Choisissez API ou Backend Application.
- Configurez l’application et cliquez sur Create.

Après la création, cliquez sur Change application pour consulter ou modifier tous les paramètres de l’application. Activez Show advanced uniquement lorsque le paramètre requis est avancé.
API OAuth 2.0
Choisissez API pour enregistrer une API backend protégée en tant que ressource OAuth 2.0. L’enregistrement de l’API définit son nom de ressource, ses scopes et l’audience utilisée dans les jetons d’accès.
L’exemple suivant enregistre une API Customers :
- Saisissez
Customerscomme Name. - Saisissez
customers-apicomme Resource name. - Ajoutez les scopes
readetwrite. - Cliquez sur Create.

Les valeurs complètes des scopes sont customers-api:read et customers-api:write. Un client demande l’une de ces valeurs ou les deux au point de terminaison de jeton, et le jeton d’accès obtenu inclut customers-api comme audience.
L’API doit valider l’émetteur, l’audience, la durée de validité et le scope requis du jeton d’accès. L’accès d’une application appelante est accordé séparément en ajoutant la ressource API et les scopes qu’elle peut demander.
Application backend et Client Credentials Grant
Choisissez Backend Application pour un service, un daemon, une tâche planifiée ou un processus en arrière-plan. FoxIDs la crée comme client confidentiel qui demande un jeton d’accès sans utilisateur au moyen de Client Credentials Grant.
L’exemple suivant crée le service appelant :
- Saisissez
Backend servicecomme Name. - Saisissez
backend-servicecomme Client ID, ou laissez FoxIDs le générer. - Copiez le Client secret généré avant de quitter le résultat de la création. Le secret généré complet n’est affiché que pendant la création.
- Cliquez sur Create.

Accorder l’accès à une API
Après avoir créé l’application backend, cliquez sur Change application et configurez Resource and scopes dans l’onglet OAuth 2.0 Client :
- Laissez Default resource 'backend-service' for the application itself décoché, car ce client n’agit pas comme sa propre API.
- Cliquez sur Add Resource and scopes.
- Saisissez
customers-apicomme Resource. - Ajoutez les scopes
readetwrite. - Cliquez sur Update.

L’application backend peut désormais demander customers-api:read, customers-api:write ou les deux. Les scopes demandés par le client sont validés par rapport aux scopes exposés par l’enregistrement de l’API.
Les jetons d’accès peuvent contenir plusieurs audiences et ainsi accorder l’accès à plusieurs API enregistrées comme ressources OAuth 2.0 dans FoxIDs. Ajoutez à l’application backend chaque ressource requise et les scopes autorisés correspondants.
Authentification client
La méthode d’authentification client par défaut au point de terminaison de jeton est client secret post. Pour la modifier, cliquez sur Change application, activez Show advanced, puis sélectionnez :
client secret basicpour envoyer l’ID client et le secret au moyen de l’authentification HTTP Basic.client secret postpour envoyer l’ID client et le secret dans le corps de la requête de jeton.private key JWTpour s’authentifier avec une assertion client signée.

Vous pouvez configurer jusqu’à 10 secrets et 4 certificats client afin de permettre la rotation des identifiants. Stockez les secrets et les clés privées de manière sécurisée et ne les inscrivez pas dans le code source ni dans les journaux.
La requête suivante utilise la méthode client secret post par défaut pour obtenir un jeton d’accès destiné à l’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 réponse de jeton contient un jeton d’accès pour l’audience customers-api avec le scope customers-api:read.
S’authentifier avec un certificat
Sélectionnez private key JWT et téléversez le certificat client après avoir créé l’application backend. Le client conserve la clé privée correspondante et signe une assertion client de courte durée pour chaque requête de jeton.
Enregistrez les certificats avec une période de chevauchement avant de remplacer un certificat arrivant à expiration, afin que le client puisse effectuer la rotation des clés sans interrompre les requêtes de jeton.
Secrets client
FoxIDs hache les secrets client à l’aide de l’algorithme de hachage des mots de passe configuré. Un secret généré ne peut pas être récupéré après sa création. Pour les secrets de plus de 20 caractères, FoxIDs conserve les trois premiers caractères comme information d’identification et les affiche suivis de points de suspension, par exemple 6j9....
Ajoutez un secret de remplacement avant de supprimer le précédent afin d’effectuer la rotation des identifiants sans interruption.
Les revendications émises à un client ou une API peuvent être modifiées avec les transformations et tâches de revendications.
Resource Owner Password Credentials Grant
FoxIDs ne prend pas en charge Resource Owner Password Credentials Grant, car il impose à l’application de traiter le mot de passe de l’utilisateur et ne convient pas à une authentification moderne et sécurisée.