Esempi .NET

Gli esempi .NET di FoxIDs mostrano:

  • Login e logout utente con OpenID Connect 1.0, SAML 2.0 e WS-Federation
  • Client credential grant con secret e certificato
  • Chiamate API protette con OAuth 2.0
  • Token exchange da access token ad access token e da SAML 2.0 ad access token

Trovi il codice sorgente degli esempi nel repository FoxIDs.Samples.

Gli esempi sono preconfigurati nel tenant di test online test-corp di FoxIDs e possono essere eseguiti immediatamente in locale in Visual Studio sulle porte localhost preconfigurate.

Dai un'occhiata alla configurazione di test FoxIDs in FoxIDs Control: https://control.foxids.com/test-corp
Ottieni accesso in lettura con l'utente reader@foxids.com e la password gEh#V6kSw

In alternativa puoi configurare gli esempi nel tuo ambiente FoxIDs.

Indice esempi

Puoi usare lo strumento JWT e lo strumento SAML 2.0 per decodificare token e creare certificati self-signed con lo strumento certificati.

Applicazioni di esempio

Gli esempi mostrano diverse applicazioni che si fidano di FoxIDs come IdP.

AspNetCoreOidcAuthCodeAllUpPartiesSample

Applicazione sample (code link) che mostra login e logout utente con OpenID Connect (OIDC) usando l'authorization code flow come service provider e richiedendo il login tramite tutti i metodi di autenticazione.

Puoi testare questo sample online.

Questo sample e un buon punto di partenza!

I possibili metodi di autenticazione vengono configurati nella registrazione applicativa come allowed authentication methods. Si puo configurare da uno a molti metodi di autenticazione consentiti. Tutti i metodi di autenticazione configurati vengono selezionati con un asterisco invece del nome del metodo di autenticazione.

Supporta login/logout con la pagina di login FoxIDs, Identity Server, sample IdP SAML 2.0 e tutti gli altri metodi di autenticazione.

Chiamate API:

  • Mostra come chiamare il sample API1 protetto con un access token.
  • Mostra come chiamare il sample API1 protetto con un access token che a sua volta chiama il sample API2 usando token exchange all'interno di API1.
  • Mostra come ottenere un access token tramite token exchange; il client usa il metodo di autenticazione client client_secret_post. Poi chiama il sample API2 protetto con l'access token ottenuto.

Dominio e porta di sviluppo locale: https://localhost:44349

AspNetCoreOidcAuthorizationCodeSample

Applicazione sample (code link) che mostra login e logout utente con OpenID Connect (OIDC) usando l'authorization code flow come service provider.

Supporta login/logout con la pagina di login FoxIDs, Identity Server, sample IdP SAML 2.0 e, se configurato, AD FS usando SAML 2.0.

Mostra come chiamare il sample API1 protetto con un access token.

Dominio e porta di sviluppo locale: https://localhost:44340

AspNetCoreOidcImplicitSample

Applicazione sample (code link) che mostra login e logout utente con OpenID Connect (OIDC) usando l'implicit flow come service provider.

Supporta login/logout con la pagina di login FoxIDs, Identity Server, sample IdP SAML 2.0 e, se configurato, AD FS usando SAML 2.0.

Dominio e porta di sviluppo locale: https://localhost:44341

AspNetCoreSamlSample

Applicazione sample (code link) che mostra login e logout utente con SAML 2.0 come relying party.

Supporta login/logout con la pagina di login FoxIDs, Identity Server, sample IdP SAML 2.0 e, se configurato, AD FS usando SAML 2.0.

Mostra come ottenere un access token da un token bearer SAML 2.0 tramite token exchange; il client usa il metodo di autenticazione client private_key_jwt con certificato. Poi chiama il sample API1 protetto con l'access token ottenuto.

Dominio e porta di sviluppo locale: https://localhost:44343

AspNetCoreWsFedSample

Applicazione sample (code link) che mostra login e logout utente con WS-Federation come relying party.

Il sample può essere configurato come registrazione applicativa WS-Federation in FoxIDs. Mostra realm, reply URL, sign-out cleanup URL, logged out URL e Federation Metadata URL necessari per configurare l’applicazione.

Supporta login/logout con la pagina di login FoxIDs e altri metodi di autenticazione configurati nella registrazione applicativa.

Dominio e porta di sviluppo locale: https://localhost:44358

NetCoreClientCredentialGrantConsoleSample

Applicazione console sample (code link) che mostra autenticazione client con OAuth 2.0 Client Credentials Grant usando un secret, cioe il metodo di autenticazione client client_secret_post.

Mostra come chiamare il sample API1 e il sample API con due IdP protetti con un access token.

NetCoreClientCredentialGrantAssertionConsoleSample

Applicazione console sample (code link) che mostra autenticazione client con OAuth 2.0 Client Credentials Grant usando un certificato, cioe il metodo di autenticazione client private_key_jwt.

Mostra come chiamare il sample API1 e il sample API con due IdP protetti con un access token.

NetFramework4.7ClientCredentialGrantAssertionConsoleSample

Applicazione console .NET Framework 4.7 sample (code link) che mostra autenticazione client con OAuth 2.0 Client Credentials Grant usando un certificato, cioe il metodo di autenticazione client private_key_jwt.

Mostra come chiamare il sample API1 e il sample API con due IdP protetti con un access token.

BlazorBFFAspNetCoreOidcSample

Applicazione sample (code link client e server) che mostra login e logout utente con OpenID Connect (OIDC) usando l'authorization code flow in un'applicazione Blazor BFF (Backend For Frontend) con backend ASP.NET Core.
In un'architettura BFF il backend gestisce OIDC, i token non vengono mai condivisi con il client Blazor. Invece una sessione basata su un identity cookie protegge l'applicazione dopo l'autenticazione utente riuscita.

Il sample mostra come chiamare il sample API1 sia dal client Blazor tramite un proxy API backend che aggiunge l'access token alla chiamata API in uscita.

Dominio e porta di sviluppo locale: https://localhost:44348

BlazorOidcPkceSample

Sample Blazor (code link) che mostra login e logout utente con OpenID Connect (OIDC) usando authorization code flow e PKCE come service provider.

Mostra come chiamare il sample API1 protetto con un access token.

Dominio e porta di sviluppo locale: https://localhost:44345

BlazorServerOidcSample

Sample Blazor server (code link) che mostra login e logout utente con OpenID Connect (OIDC) usando authorization code flow come service provider.

Mostra come chiamare il sample API1 protetto con un access token.

Dominio e porta di sviluppo locale: https://localhost:44347

AspNetCoreApi1Sample

Sample API (code link) che mostra come proteggere un'API con un access token e come limitare l'accesso tramite scope.

Puoi chiamare questo sample online.

L'API chiama il sample API2 protetto con un access token ottenuto tramite token exchange dove il client usa il metodo di autenticazione client private_key_jwt con certificato.

Dominio e porta di sviluppo locale: https://localhost:44344

AspNetCoreApi2Sample

Sample API (code link) che mostra come proteggere un'API con un access token e come limitare l'accesso tramite uno scope.

Puoi chiamare questo sample online.

Dominio e porta di sviluppo locale: https://localhost:44351

AspNetCoreApiOAuthTwoIdPsSample

Sample API (code link) che mostra come creare un'API capace di accettare access token da due IdP diversi. Ogni relazione IdP - API puo essere configurata con resource ID e scope individuali.

Questo scenario si verifica piu spesso in un periodo di transizione quando si passa da un IdP a un altro. Avendo API con supporto dual IdP, i client possono essere spostati da un IdP all'altro indipendentemente dalle API.

La sample API puo essere chiamata decommentando il codice nel sample NetCoreClientCredentialGrantConsoleSample oppure NetCoreClientCredentialGrantAssertionConsoleSample.

Dominio e porta di sviluppo locale: https://localhost:44350

Esempi di metodi di autenticazione

Gli esempi di metodi di autenticazione mostrano diversi IdP collegati a FoxIDs, dove FoxIDs si fida degli IdP sample.

AspNetCoreSamlIdPSample

Applicazione sample (code link) che implementa un identity provider (IdP) SAML 2.0 collegato come metodo di autenticazione SAML 2.0 in FoxIDs. Il sample mostra anche come eseguire login IdP-Initiated.

Puoi testare questo sample online.

Dominio e porta di sviluppo locale: https://localhost:44342

IdentityServerOidcOpSample

Identity Server (code link) che implementa OpenID Connect (OIDC) esponendo un OpenID Provider (OP) / identity provider (IdP) collegato come metodo di autenticazione OpenID Connect in FoxIDs.

Dominio e porta di sviluppo locale: https://localhost:44346

DirectoryConnectorApiSample

Applicazione sample (code link) che implementa una Directory Connector API che valida le password e delega le operazioni del ciclo di vita delle password a una directory esterna.

Dominio e porta di sviluppo locale: https://localhost:44356

ExternalLoginApiSample

External login è obsoleto e verrà eliminato gradualmente. Usa Directory Connector per la validazione esterna delle password.

Applicazione sample (code link) che implementa una external login API collegata come metodo di autenticazione external login in FoxIDs.

Dominio e porta di sviluppo locale: https://localhost:44352

ExternalClaimsApiSample

Applicazione sample (code link) che implementa una external claims API configurabile e richiamabile da una claims transform. L'external claims API puo quindi aggiungere claim esterni ai claim emessi.

Dominio e porta di sviluppo locale: https://localhost:44353

ExternalExtendedUiApiSample

Applicazione sample (code link) che implementa una external extended UI API configurabile e richiamabile per validare elementi UI dinamici e restituire facoltativamente claim aggiuntivi.

Dominio e porta di sviluppo locale: https://localhost:44354

ExternalPasswordApiSample

Applicazione sample (code link) che implementa una external password API collegata come external password API in un ambiente FoxIDs.

Dominio e porta di sviluppo locale: https://localhost:44355

FoxIDsControlApiSample

Applicazione console sample (code link) che mostra come chiamare FoxIDs Control API.

Configurare gli esempi in un ambiente FoxIDs

Gli esempi possono essere configurati in un ambiente FoxIDs con il sample seed tool oppure manualmente tramite FoxIDs Control Client.

Il sample seed tool si trova nella soluzione di esempio: tools/SampleSeedTool.

Configurare il sample seed tool

Il sample seed tool viene configurato nel file appsettings.json.

Aggiungi gli endpoint FoxIDs e FoxIDs Control API alla configurazione del sample seed tool. Possono essere aggiunti aggiornando i nomi istanza https://foxids.com e https://control.foxids.com/api. Se esegui FoxIDs localmente in Visual Studio, gli endpoint sono configurati verso FoxIDs localhost https://localhost:44330/ e FoxIDs Control API localhost https://localhost:44331/.

"SeedSettings": {
    "FoxIDsEndpoint": "https://foxids.com", 
    "FoxIDsConsolApiEndpoint": "https://control.foxids.com/api"
}

L'accesso per creare la configurazione sample in un ambiente viene concesso nell'ambiente master. La configurazione sample non dovrebbe essere aggiunta nell'ambiente master.

Crea un client OAuth 2.0 del sample seed tool in FoxIDs Control Client:

  1. Seleziona l'ambiente master e crea una registrazione applicativa OAuth 2.0, facendo clic su OAuth 2.0 - Client Credentials Grant.
  2. Imposta il client id su sample_seed.
  3. Ricorda il client secret.
  4. Nella sezione resource and scopes, concedi al client sample seed accesso alla resource FoxIDs Control API foxids_control_api con lo scope foxids:tenant.
  5. Fai clic su show advanced.
  6. Nella sezione issue claims, aggiungi un claim con nome role e valore foxids:tenant.admin. Questo concede al client il ruolo amministratore.

Il client sample seed tool ottiene cosi accesso per aggiornare il tenant.

FoxIDs Control Client - sample_seed client

Crea un nuovo ambiente FoxIDs per le applicazioni sample oppure seleziona un ambiente esistente.

Modifica tenant, ambiente e client secret del sample seed tool nella configurazione del sample seed tool.

"SeedSettings": {
  "Tenant": "xxx",
  "Track": "xxx",
  "DownParty": "sample_seed",
  "ClientSecret": "xxx"
}

Cambia la configurazione di tenant e ambiente per tutti gli esempi.

Eseguire il sample seed tool

Esegui l'eseguibile del sample seed tool SampleSeedTool.exe oppure esegui direttamente il seed tool da Visual Studio.

  • Premi 'c' per creare la configurazione sample
  • Premi 'd' per eliminare la configurazione sample

Il sample seed tool creera ed eliminera configurazioni per tutti gli esempi.

Le applicazioni sample richiedono un metodo di autenticazione login con il nome login, che gestisce il login utente. Viene creato dal sample seed tool se non esiste. Il metodo di autenticazione login non viene eliminato se la configurazione sample viene eliminata.

La tua privacy

La tua privacy

Usiamo i cookie per migliorare la tua esperienza sui nostri siti. Fai clic sul pulsante 'Accetta tutti i cookie' per acconsentire all'uso dei cookie. Per rifiutare i cookie non essenziali, fai clic su 'Solo cookie necessari'.

Visita la nostra pagina di Informativa sulla privacy per saperne di più