.NET Samples

De FoxIDs .NET samples laten zien:

  • Gebruiker login en logout met OpenID Connect 1.0 en SAML 2.0
  • Client credential grant met secret en certificaat
  • API calls beveiligd met OAuth 2.0
  • Token exchange van access token naar access token en SAML 2.0 naar access token

Vind de sample broncode in de FoxIDs.Samples repository.

De samples zijn vooraf geconfigureerd in de FoxIDs online test tenant test-corp en kunnen direct lokaal in Visual Studio draaien op de vooraf geconfigureerde localhost poorten.

Bekijk de FoxIDs test configuratie in FoxIDs Control: https://control.foxids.com/test-corp
Krijg read access met gebruiker reader@foxids.com en wachtwoord gEh#V6kSw

U kunt de samples ook configureren in uw eigen FoxIDs omgeving.

Sample index

U kunt de JWT tool en SAML 2.0 tool gebruiken om tokens te decoderen en self-signed certificaten te maken met de certificate tool.

Sample applicaties

De samples tonen verschillende applicaties die FoxIDs vertrouwen als IdP.

AspNetCoreOidcAuthCodeAllUpPartiesSample

Sample (code link) applicatie die gebruiker login en logout toont met OpenID Connect (OIDC) met authorization code flow als service provider en login aanvraagt bij alle authenticatiemethoden.

U kunt deze sample online testen.

Deze sample is een goed startpunt!

De mogelijke authenticatiemethoden worden in de applicatieregistratie geconfigureerd als toegestane authenticatiemethoden. Er kunnen één tot meerdere toegestane authenticatiemethoden worden geconfigureerd. Alle geconfigureerde authenticatiemethoden worden geselecteerd met een ster in plaats van een authenticatiemethode naam.

Ondersteunt login/logout met de FoxIDs login pagina, Identity Server, SAML 2.0 IdP sample en alle andere authenticatiemethoden.

API calls:

  • Laat zien hoe je de API1 sample aanroept beveiligd met een access token.
  • Laat zien hoe je de API1 sample aanroept beveiligd met een access token die vervolgens de API2 sample aanroept via token exchange binnen API1.
  • Laat zien hoe je een access token verkrijgt via token exchange, de client gebruikt client authentication method client_secret_post. En roept vervolgens de API2 sample aan beveiligd met het verkregen access token.

Lokale ontwikkelingsdomein en poort: https://localhost:44349

AspNetCoreOidcAuthorizationCodeSample

Sample (code link) applicatie die gebruiker login en logout toont met OpenID Connect (OIDC) met authorization code flow als service provider.

Ondersteunt login/logout met de FoxIDs login pagina, Identity Server, SAML 2.0 IdP sample en indien geconfigureerd AD FS met SAML 2.0.

Laat zien hoe je de API1 sample aanroept beveiligd met een access token.

Lokale ontwikkelingsdomein en poort: https://localhost:44340

AspNetCoreOidcImplicitSample

Sample (code link) applicatie die gebruiker login en logout toont met OpenID Connect (OIDC) met implicit flow als service provider.

Ondersteunt login/logout met de FoxIDs login pagina, Identity Server, SAML 2.0 IdP sample en indien geconfigureerd AD FS met SAML 2.0.

Lokale ontwikkelingsdomein en poort: https://localhost:44341

AspNetCoreSamlSample

Sample (code link) applicatie die gebruiker login en logout toont met SAML 2.0 als relying party.

Ondersteunt login/logout met de FoxIDs login pagina, Identity Server, SAML 2.0 IdP sample en indien geconfigureerd AD FS met SAML 2.0.

Laat zien hoe je een access token verkrijgt uit een SAML 2.0 bearer token via token exchange, de client gebruikt client authentication method private_key_jwt (certificaat). En roept vervolgens de API1 sample aan beveiligd met het verkregen access token.

Lokale ontwikkelingsdomein en poort: https://localhost:44343

NetCoreClientCredentialGrantConsoleSample

Sample (code link) console applicatie (backend) die client authenticatie toont met OAuth 2.0 Client Credentials Grant met een secret (client authentication method client_secret_post).

Laat zien hoe je de API1 sample en API met twee IdP's sample aanroept beveiligd met een access token.

NetCoreClientCredentialGrantAssertionConsoleSample

Sample (code link) console applicatie (backend) die client authenticatie toont met OAuth 2.0 Client Credentials Grant met een certificaat (client authentication method private_key_jwt).

Laat zien hoe je de API1 sample en API met twee IdP's sample aanroept beveiligd met een access token.

NetFramework4.7ClientCredentialGrantAssertionConsoleSample

Sample (code link) .NET Framework 4.7 console applicatie (backend) die client authenticatie toont met OAuth 2.0 Client Credentials Grant met een certificaat (client authentication method private_key_jwt).

Laat zien hoe je de API1 sample en API met twee IdP's sample aanroept beveiligd met een access token.

BlazorBFFAspNetCoreOidcSample

Sample (code link client en server) applicatie die gebruiker login en logout toont met OpenID Connect (OIDC) met authorization code flow in een Blazor BFF (Backend For Frontend) applicatie met een ASP.NET Core backend.
In een BFF architectuur handelt de backend OIDC af, de tokens worden nooit gedeeld met de Blazor client. In plaats daarvan beveiligt een sessie op basis van een identity cookie de applicatie na succesvolle gebruikersauthenticatie.

De sample laat zien hoe je de API1 sample aanroept vanuit zowel de Blazor client via een backend API proxy die het access token aan het uitgaande API call toevoegt.

Lokale ontwikkelingsdomein en poort: https://localhost:44348

BlazorOidcPkceSample

Blazor sample (code link) applicatie die gebruiker login en logout toont met OpenID Connect (OIDC) met authorization code flow en PKCE als service provider.

Laat zien hoe je de API1 sample aanroept beveiligd met een access token.

Lokale ontwikkelingsdomein en poort: https://localhost:44345

BlazorServerOidcSample

Blazor server sample (code link) applicatie die gebruiker login en logout toont met OpenID Connect (OIDC) met authorization code flow als service provider.

Laat zien hoe je de API1 sample aanroept beveiligd met een access token.

Lokale ontwikkelingsdomein en poort: https://localhost:44347

AspNetCoreApi1Sample

Sample (code link) API die laat zien hoe je een API beveiligt met een access token en hoe je toegang beperkt met scopes.

U kunt deze sample online aanroepen.

De API roept de API2 sample aan beveiligd met een access token verkregen via token exchange waarbij de client client authentication method private_key_jwt (certificaat) gebruikt.

Lokale ontwikkelingsdomein en poort: https://localhost:44344

AspNetCoreApi2Sample

Sample (code link) API die laat zien hoe je een API beveiligt met een access token en hoe je toegang beperkt via een scope.

U kunt deze sample online aanroepen.

Lokale ontwikkelingsdomein en poort: https://localhost:44351

AspNetCoreApiOAuthTwoIdPsSample

Sample (code link) API die laat zien hoe je een API maakt dat access tokens van twee verschillende IdP's kan accepteren. Elke IdP - API relatie kan worden geconfigureerd met individuele resource IDs en scopes.

Dit scenario komt het vaakst voor in een overgangsperiode waarin van de ene IdP naar de andere IdP wordt gemigreerd. Met API's met dual IdP support kunnen clients van de ene IdP naar de andere IdP worden verplaatst onafhankelijk van de API's.

De sample API kan worden aangeroepen door code uit te commenten in de samples NetCoreClientCredentialGrantConsoleSample of NetCoreClientCredentialGrantAssertionConsoleSample.

Lokale ontwikkelingsdomein en poort: https://localhost:44350

Authenticatiemethode samples

De authenticatiemethode samples tonen verschillende IdP's die aan FoxIDs zijn gekoppeld, waarbij FoxIDs de IdP samples vertrouwt.

AspNetCoreSamlIdPSample

Sample (code link) applicatie die een SAML 2.0 identity provider (IdP) implementeert die is gekoppeld als SAML 2.0 authenticatiemethode in FoxIDs. De sample laat ook zien hoe je IdP-Initiated login uitvoert.

U kunt deze sample online testen.

Lokale ontwikkelingsdomein en poort: https://localhost:44342

IdentityServerOidcOpSample

Identity Server (code link) implementeert OpenID Connect (OIDC) en exposeert een OpenID Provider (OP) / identity provider (IdP) die is gekoppeld als OpenID Connect authenticatiemethode in FoxIDs.

Lokale ontwikkelingsdomein en poort: https://localhost:44346

ExternalLoginApiSample

Sample (code link) applicatie die een externe login API implementeert die is gekoppeld als external login authenticatiemethode in FoxIDs.

Lokale ontwikkelingsdomein en poort: https://localhost:44352

ExternalClaimsApiSample

Sample (code link) applicatie die een externe claims API implementeert die kan worden geconfigureerd en aangeroepen vanuit een claims transform. De externe claims API kan vervolgens externe claims toevoegen aan de uitgegeven claims.

Lokale ontwikkelingsdomein en poort: https://localhost:44353

ExternalExtendedUiApiSample

Sample (code link) applicatie die een externe extended UI API implementeert die kan worden geconfigureerd en aangeroepen om dynamische UI elementen te valideren en optioneel extra claims terug te geven.

Lokale ontwikkelingsdomein en poort: https://localhost:44354

ExternalPasswordApiSample

Sample (code link) applicatie die een externe wachtwoord API implementeert die is gekoppeld als een externe wachtwoord API in een FoxIDs omgeving.

Lokale ontwikkelingsdomein en poort: https://localhost:44355

FoxIDsControlApiSample

Sample (code link) console applicatie die laat zien hoe je FoxIDs Control API aanroept.

Configureer samples in FoxIDs omgeving

De samples kunnen in een FoxIDs omgeving worden geconfigureerd met de sample seed tool of handmatig via de FoxIDs Control Client.

De sample seed tool is te vinden in de sample solution: tools/SampleSeedTool.

Configureer de sample seed tool

De sample seed tool wordt geconfigureerd in het appsettings.json bestand.

Voeg de FoxIDs en FoxIDs Control API endpoints toe aan de sample seed tool configuratie. Ze kunnen worden toegevoegd door de instance namen https://foxids.com en https://control.foxids.com/api te updaten. Als u FoxIDs lokaal in Visual Studio draait zijn de endpoints geconfigureerd naar FoxIDs localhost https://localhost:44330/ en FoxIDs Control API localhost https://localhost:44331/.

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

Toegang om de sample configuratie in een omgeving aan te maken wordt verleend in de master omgeving. De sample configuratie moet niet worden toegevoegd aan de master omgeving.

Maak een sample seed tool OAuth 2.0 client aan in de FoxIDs Control Client:

  1. Selecteer de master omgeving en maak een OAuth 2.0 applicatieregistratie aan, klik OAuth 2.0 - Client Credentials Grant.
  2. Stel de client id in op sample_seed.
  3. Onthoud de client secret.
  4. In de resource en scopes sectie. Geef de sample seed client toegang tot de FoxIDs Control API resource foxids_control_api met de scope foxids:tenant.
  5. Klik show advanced.
  6. In de issue claims sectie. Voeg een claim toe met de naam role en de waarde foxids:tenant.admin. Hiermee krijgt de client de administrator rol.

De sample seed tool client krijgt hiermee toegang om de tenant te updaten.

FoxIDs Control Client - sample_seed client

Maak een nieuwe FoxIDs omgeving voor de sample applicaties of selecteer een bestaande omgeving.

Wijzig de tenant, de omgeving en de sample seed tool client secret in de sample seed tool configuratie.

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

Wijzig de tenant en de omgeving configuratie voor alle samples.

Voer de sample seed tool uit

Start de sample seed tool executable SampleSeedTool.exe of voer de seed tool direct uit vanuit Visual Studio.

  • Klik 'c' om de sample configuratie aan te maken
  • Klik 'd' om de sample configuratie te verwijderen

De sample seed tool zal configuraties voor alle samples aanmaken en verwijderen.

De sample applicaties vereisen een login authenticatiemethode met de naam login (verwerkt gebruiker login). Deze wordt door de sample seed tool aangemaakt als deze nog niet bestaat. De login authenticatiemethode wordt niet verwijderd als de sample configuratie wordt verwijderd.

Uw privacy

We gebruiken cookies om uw ervaring op onze websites te verbeteren. Klik op de knop 'Alle cookies accepteren' om akkoord te gaan met het gebruik van cookies. Om niet-noodzakelijke cookies te weigeren, klikt u op 'Alleen noodzakelijke cookies'.

Bezoek onze privacyverklaring voor meer informatie