.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’utilisateur reader@foxids.com et le mot de passe gEh#V6kSw

Vous pouvez alternativement configurer les exemples dans votre environnement FoxIDs.

Index des exemples

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’environnement master.

Créez un client OAuth 2.0 du sample seed tool dans le FoxIDs Control Client :

  1. Sélectionnez l’environnement master et créez un enregistrement d’application OAuth 2.0, cliquez sur OAuth 2.0 - Client Credentials Grant.
  2. Définissez l’id client à sample_seed.
  3. Mémorisez le secret client.
  4. Dans la section resource and scopes, accordez au client sample seed l’accès à la ressource FoxIDs Control API foxids_control_api avec le scope foxids:tenant.
  5. Cliquez sur show advanced.
  6. Dans la section issue claims, ajoutez un claim nommé role avec la valeur foxids:tenant.admin. Cela accorde au client le rôle d’administrateur.

Le client sample seed tool est ainsi autorisé à mettre à jour le tenant.

FoxIDs Control Client - sample_seed client

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.

Votre confidentialité

Nous utilisons des cookies pour améliorer votre expérience sur nos sites. Cliquez sur « Accepter tous les cookies » pour accepter l'utilisation des cookies. Pour refuser les cookies non essentiels, cliquez sur « Cookies nécessaires uniquement ».

Consultez notre politique de confidentialité pour en savoir plus