.NET Samples
Les exemples .NET de FoxIDs montrent :
- Connexion et déconnexion utilisateur avec OpenID Connect 1.0 et SAML 2.0
- Client credential grant avec secret et certificat
- Appels d’API sécurisés avec OAuth 2.0
- Échange de jetons d’un access token vers un access token et d’un SAML 2.0 vers un access token
Trouvez la source des exemples dans le dépôt FoxIDs.Samples.
Les exemples sont préconfigurés dans le tenant de test en ligne FoxIDs test-corp et peuvent être exécutés immédiatement en local dans Visual Studio sur les ports localhost préconfigurés.
Jetez un œil à la configuration de test FoxIDs dans FoxIDs Control : https://control.foxids.com/test-corp
Obtenez un accès en lecture avec l’utilisateurreader@foxids.comet le mot de passegEh#V6kSw
Vous pouvez alternativement configurer les exemples dans votre environnement FoxIDs.
Index des exemples
ASP.NET Core - OpenID Connect - enregistrement d’application
- AspNetCoreOidcAuthCodeAllUpPartiesSample (online) ← Bon point de départ !
- AspNetCoreOidcAuthorizationCodeSample
- AspNetCoreOidcImplicitSample
ASP.NET Core - SAML 2.0 - enregistrement d’application
Blazor - OpenID Connect - enregistrement d’application
Application console - OAuth 2.0 Client credential grant - enregistrement d’application
ASP.NET Core API - OAuth 2.0 - enregistrement d’application
ASP.NET Core - OpenID Connect - méthode d’authentification
ASP.NET Core - SAML 2.0 - méthode d’authentification
ASP.NET Core - API externes
Application console - FoxIDs Control API
Vous pouvez utiliser l’outil JWT et l’outil SAML 2.0 pour décoder les jetons et créer des certificats auto-signés avec l’outil de certificat.
Applications d’exemple
Les exemples montrent différentes applications qui font confiance à FoxIDs en tant qu’IdP.
AspNetCoreOidcAuthCodeAllUpPartiesSample
Exemple (lien code) d’application montrant la connexion et la déconnexion utilisateur avec OpenID Connect (OIDC) en utilisant le flux authorization code en tant que fournisseur de service et en demandant la connexion via toutes les méthodes d’authentification.
Vous pouvez tester cet exemple en ligne.
Cet exemple est un bon point de départ !
Les méthodes d’authentification possibles sont configurées dans l’enregistrement d’application en tant que méthodes d’authentification autorisées. Il est possible de configurer une ou plusieurs méthodes d’authentification autorisées. Toutes les méthodes d’authentification configurées sont sélectionnées avec une étoile au lieu d’un nom de méthode d’authentification.
Prise en charge de la connexion/déconnexion via la page de login FoxIDs, Identity Server, exemple IdP SAML 2.0 et toutes les autres méthodes d’authentification.
Appels d’API :
- Montre comment appeler l’exemple API1 sécurisé avec un access token.
- Montre comment appeler l’exemple API1 sécurisé avec un access token qui appelle ensuite l’exemple API2 en utilisant l’échange de jeton via l’API1.
- Montre comment obtenir un access token par échange de jeton, le client utilise la méthode d’authentification client client_secret_post. Puis appelle l’exemple API2 sécurisé avec l’access token obtenu.
Domaine et port de développement local : https://localhost:44349
AspNetCoreOidcAuthorizationCodeSample
Exemple (lien code) d’application montrant la connexion et la déconnexion utilisateur avec OpenID Connect (OIDC) en utilisant le flux authorization code en tant que fournisseur de service.
Prise en charge de la connexion/déconnexion via la page de login FoxIDs, Identity Server, exemple IdP SAML 2.0 et, si configuré, AD FS avec SAML 2.0.
Montre comment appeler l’exemple API1 sécurisé avec un access token.
Domaine et port de développement local : https://localhost:44340
AspNetCoreOidcImplicitSample
Exemple (lien code) d’application montrant la connexion et la déconnexion utilisateur avec OpenID Connect (OIDC) en utilisant le flux implicite en tant que fournisseur de service.
Prise en charge de la connexion/déconnexion via la page de login FoxIDs, Identity Server, exemple IdP SAML 2.0 et, si configuré, AD FS avec SAML 2.0.
Domaine et port de développement local : https://localhost:44341
AspNetCoreSamlSample
Exemple (lien code) d’application montrant la connexion et la déconnexion utilisateur avec SAML 2.0 en tant que relying party.
Prise en charge de la connexion/déconnexion via la page de login FoxIDs, Identity Server, exemple IdP SAML 2.0 et, si configuré, AD FS avec SAML 2.0.
Montre comment obtenir un access token à partir d’un jeton porteur SAML 2.0 via l’échange de jeton, le client utilise la méthode d’authentification client private_key_jwt (certificat). Puis appelle l’exemple API1 sécurisé avec l’access token obtenu.
Domaine et port de développement local : https://localhost:44343
NetCoreClientCredentialGrantConsoleSample
Exemple (lien code) d’application console (backend) montrant l’authentification client avec OAuth 2.0 Client Credentials Grant en utilisant un secret (méthode d’authentification client client_secret_post).
Montre comment appeler l’exemple API1 et l’exemple API avec deux IdPs sécurisés avec un access token.
NetCoreClientCredentialGrantAssertionConsoleSample
Exemple (lien code) d’application console (backend) montrant l’authentification client avec OAuth 2.0 Client Credentials Grant en utilisant un certificat (méthode d’authentification client private_key_jwt).
Montre comment appeler l’exemple API1 et l’exemple API avec deux IdPs sécurisés avec un access token.
NetFramework4.7ClientCredentialGrantAssertionConsoleSample
Exemple (lien code) d’application console .NET Framework 4.7 (backend) montrant l’authentification client avec OAuth 2.0 Client Credentials Grant en utilisant un certificat (méthode d’authentification client private_key_jwt).
Montre comment appeler l’exemple API1 et l’exemple API avec deux IdPs sécurisés avec un access token.
BlazorBFFAspNetCoreOidcSample
Exemple (lien code client et serveur) d’application montrant la connexion et la déconnexion utilisateur avec OpenID Connect (OIDC) en utilisant le flux authorization code dans une application Blazor BFF (Backend For Frontend) avec un backend ASP.NET Core.
Dans une architecture BFF, le backend gère OIDC, les jetons ne sont jamais partagés avec le client Blazor. À la place, une session basée sur un cookie d’identité sécurise l’application après l’authentification réussie de l’utilisateur.
L’exemple montre comment appeler l’exemple API1 depuis le client Blazor via un proxy API backend qui ajoute l’access token à l’appel API sortant.
Domaine et port de développement local : https://localhost:44348
BlazorOidcPkceSample
Exemple Blazor (lien code) d’application montrant la connexion et la déconnexion utilisateur avec OpenID Connect (OIDC) en utilisant le flux authorization code et PKCE en tant que fournisseur de service.
Montre comment appeler l’exemple API1 sécurisé avec un access token.
Domaine et port de développement local : https://localhost:44345
BlazorServerOidcSample
Exemple Blazor Server (lien code) d’application montrant la connexion et la déconnexion utilisateur avec OpenID Connect (OIDC) en utilisant le flux authorization code en tant que fournisseur de service.
Montre comment appeler l’exemple API1 sécurisé avec un access token.
Domaine et port de développement local : https://localhost:44347
AspNetCoreApi1Sample
Exemple (lien code) d’API montrant comment sécuriser une API avec un access token et comment restreindre l’accès par scopes.
Vous pouvez appeler cet exemple en ligne.
L’API appelle l’exemple API2 sécurisé avec un access token obtenu par échange de jeton où le client utilise la méthode d’authentification client private_key_jwt (certificat).
Domaine et port de développement local : https://localhost:44344
AspNetCoreApi2Sample
Exemple (lien code) d’API montrant comment sécuriser une API avec un access token et comment restreindre l’accès par un scope.
Vous pouvez appeler cet exemple en ligne.
Domaine et port de développement local : https://localhost:44351
AspNetCoreApiOAuthTwoIdPsSample
Exemple (lien code) d’API montrant comment créer une API qui peut accepter des access tokens provenant de deux IdPs différents. Chaque relation IdP - API peut être configurée avec des IDs de ressource et des scopes individuels.
Ce scénario se produit le plus souvent pendant une période de transition lors du passage d’un IdP à un autre. Avoir des APIs avec une prise en charge double IdP permet de déplacer les clients d’un IdP à l’autre indépendamment des APIs.
L’exemple d’API peut être appelé en modifiant le code commenté dans les exemples NetCoreClientCredentialGrantConsoleSample ou NetCoreClientCredentialGrantAssertionConsoleSample.
Domaine et port de développement local : https://localhost:44350
Exemples de méthodes d’authentification
Les exemples de méthodes d’authentification montrent différents IdP connectés à FoxIDs, où FoxIDs fait confiance aux exemples IdP.
AspNetCoreSamlIdPSample
Exemple (lien code) d’application implémentant un fournisseur d’identité SAML 2.0 (IdP) connecté comme méthode d’authentification SAML 2.0 dans FoxIDs. L’exemple montre également comment faire un login initié par l’IdP.
Vous pouvez tester cet exemple en ligne.
Domaine et port de développement local : https://localhost:44342
IdentityServerOidcOpSample
Identity Server (lien code) implémente OpenID Connect (OIDC) et expose un fournisseur OpenID (OP) / fournisseur d’identité (IdP) connecté comme méthode d’authentification OpenID Connect dans FoxIDs.
Domaine et port de développement local : https://localhost:44346
ExternalLoginApiSample
Exemple (lien code) d’application implémentant une API de login externe qui est connectée comme méthode d’authentification login externe dans FoxIDs.
Domaine et port de développement local : https://localhost:44352
ExternalClaimsApiSample
Exemple (lien code) d’application implémentant une API de claims externe qui peut être configurée et appelée depuis une transformation de claims. L’API de claims externe peut ensuite ajouter des claims externes aux claims émis.
Domaine et port de développement local : https://localhost:44353
ExternalExtendedUiApiSample
Exemple (lien code) d’application implémentant une API d’UI étendue externe qui peut être configurée et appelée pour valider des éléments UI dynamiques et, éventuellement, renvoyer des claims supplémentaires.
Domaine et port de développement local : https://localhost:44354
ExternalPasswordApiSample
Exemple (lien code) d’application implémentant une API de mot de passe externe qui est connectée comme API de mot de passe externe dans un environnement FoxIDs.
Domaine et port de développement local : https://localhost:44355
FoxIDsControlApiSample
Exemple (lien code) d’application console montrant comment appeler l’API Control de FoxIDs.
Configurer les exemples dans un environnement FoxIDs
Les exemples peuvent être configurés dans un environnement FoxIDs avec le sample seed tool ou manuellement via le FoxIDs Control Client.
Le sample seed tool se trouve dans la solution d’exemples : tools/SampleSeedTool.
Configurer le sample seed tool
Le sample seed tool est configuré dans le fichier
appsettings.json.
Ajoutez les endpoints FoxIDs et FoxIDs Control API à la configuration du sample seed tool. Ils peuvent être ajoutés en mettant à jour les noms d’instance https://foxids.com et https://control.foxids.com/api. Si vous exécutez FoxIDs localement dans Visual Studio, les endpoints sont configurés vers FoxIDs localhost https://localhost:44330/ et FoxIDs Control API localhost https://localhost:44331/.
"SeedSettings": {
"FoxIDsEndpoint": "https://foxids.com",
"FoxIDsConsolApiEndpoint": "https://control.foxids.com/api"
}
L’accès pour créer la configuration d’exemples dans un environnement est accordé dans l’environnement
master. La configuration d’exemples ne doit pas être ajoutée à l’environnementmaster.
Créez un client OAuth 2.0 du sample seed tool dans le FoxIDs Control Client :
- Sélectionnez l’environnement
masteret créez un enregistrement d’application OAuth 2.0, cliquez surOAuth 2.0 - Client Credentials Grant. - Définissez l’id client à
sample_seed. - Mémorisez le secret client.
- Dans la section resource and scopes, accordez au client sample seed l’accès à la ressource FoxIDs Control API
foxids_control_apiavec le scopefoxids:tenant. - Cliquez sur show advanced.
- Dans la section issue claims, ajoutez un claim nommé
roleavec la valeurfoxids:tenant.admin. Cela accorde au client le rôle d’administrateur.
Le client sample seed tool est ainsi autorisé à mettre à jour le tenant.

Créez un nouvel environnement FoxIDs pour les applications d’exemple ou sélectionnez un environnement existant.
Modifiez le tenant, l’environnement et le secret client du sample seed tool dans la configuration du sample seed tool.
"SeedSettings": {
"Tenant": "xxx",
"Track": "xxx",
"DownParty": "sample_seed",
"ClientSecret": "xxx"
}
Modifiez la configuration du tenant et de l’environnement pour tous les exemples.
Exécuter le sample seed tool
Exécutez l’exécutable SampleSeedTool.exe du sample seed tool ou exécutez le seed tool directement depuis Visual Studio.
- Cliquez sur 'c' pour créer la configuration d’exemples
- Cliquez sur 'd' pour supprimer la configuration d’exemples
Le sample seed tool créera et supprimera les configurations pour tous les exemples.
Les applications d’exemple nécessitent une méthode d’authentification login avec le nom login (gère la connexion utilisateur). Elle est créée par le sample seed tool si elle n’existe pas. La méthode d’authentification login n’est pas supprimée si la configuration d’exemples est supprimée.