.NET Samples
FoxIDs .NET samples visar:
- Användarlogin och logout med OpenID Connect 1.0 och SAML 2.0
- Client credential grant med secret och certifikat
- API anrop säkrade med OAuth 2.0
- Token exchange från access token till access token och SAML 2.0 till access token
Hitta sample källkod i FoxIDs.Samples repository.
Samples är förkonfigurerade i FoxIDs online test tenant test-corp och kan direkt köras lokalt i Visual Studio på de förkonfigurerade localhost portarna.
Ta en titt på FoxIDs test konfigurationen i FoxIDs Control: https://control.foxids.com/test-corp
Få read access med användarenreader@foxids.comoch lösenordgEh#V6kSw
Du kan alternativt konfigurera samples i din egna FoxIDs miljö.
Sample index
ASP.NET Core - OpenID Connect - applikationsregistrering
ASP.NET Core - SAML 2.0 - applikationsregistrering
Blazor - OpenID Connect - applikationsregistrering
Console app - OAuth 2.0 Client credential grant - applikationsregistrering
ASP.NET Core API - OAuth 2.0 - applikationsregistrering
ASP.NET Core - OpenID Connect - autentiseringsmetod
ASP.NET Core - SAML 2.0 - autentiseringsmetod
ASP.NET Core - External APIs
Console app - FoxIDs Control API
Du kan använda JWT tool och SAML 2.0 tool för att dekoda tokens och skapa self-signed certifikat med certificate tool.
Sample applikationer
Samples visar olika applikationer som litar på FoxIDs som IdP.
AspNetCoreOidcAuthCodeAllUpPartiesSample
Sample (code link) applikation som visar användarlogin och logout med OpenID Connect (OIDC) med authorization code flow som service provider och begär login via alla autentiseringsmetoder.
Du kan testa denna sample online.
Denna sample är ett bra startpunkt!
De möjliga autentiseringsmetoderna konfigureras i applikationsregistreringen som tillåtna autentiseringsmetoder. Det kan konfigureras en till många tillåtna autentiseringsmetoder. Alla de konfigurerade autentiseringsmetoderna väljs med en stjärna istället för ett autentiseringsmetod namn.
Stödjer login/logout med FoxIDs login sida, Identity Server, SAML 2.0 IdP sample och alla andra autentiseringsmetoder.
API anrop:
- Visar hur man anropar API1 sample säkrad med ett access token.
- Visar hur man anropar API1 sample säkrad med ett access token som i sin tur anropar API2 sample med token exchange inne i API1.
- Visar hur man erhåller ett access token via token exchange, klienten använder client authentication method client_secret_post. Och anropar sedan API2 sample säkrad med det erhållna access token.
Lokal utvecklingsdomän och port: https://localhost:44349
AspNetCoreOidcAuthorizationCodeSample
Sample (code link) applikation som visar användarlogin och logout med OpenID Connect (OIDC) med authorization code flow som service provider.
Stödjer login/logout med FoxIDs login sida, Identity Server, SAML 2.0 IdP sample och om konfigurerad AD FS med SAML 2.0.
Visar hur man anropar API1 sample säkrad med ett access token.
Lokal utvecklingsdomän och port: https://localhost:44340
AspNetCoreOidcImplicitSample
Sample (code link) applikation som visar användarlogin och logout med OpenID Connect (OIDC) med implicit flow som service provider.
Stödjer login/logout med FoxIDs login sida, Identity Server, SAML 2.0 IdP sample och om konfigurerad AD FS med SAML 2.0.
Lokal utvecklingsdomän och port: https://localhost:44341
AspNetCoreSamlSample
Sample (code link) applikation som visar användarlogin och logout med SAML 2.0 som relying party.
Stödjer login/logout med FoxIDs login sida, Identity Server, SAML 2.0 IdP sample och om konfigurerad AD FS med SAML 2.0.
Visar hur man erhåller ett access token från ett SAML 2.0 bearer token med token exchange, klienten använder client authentication method private_key_jwt (certifikat). Och anropar sedan API1 sample säkrad med det erhållna access token.
Lokal utvecklingsdomän och port: https://localhost:44343
NetCoreClientCredentialGrantConsoleSample
Sample (code link) console applikation (backend) som visar klientautentisering med OAuth 2.0 Client Credentials Grant med ett secret (client authentication method client_secret_post).
Visar hur man anropar API1 sample och API med två IdP'er sample säkrade med ett access token.
NetCoreClientCredentialGrantAssertionConsoleSample
Sample (code link) console applikation (backend) som visar klientautentisering med OAuth 2.0 Client Credentials Grant med ett certifikat (client authentication method private_key_jwt).
Visar hur man anropar API1 sample och API med två IdP'er sample säkrade med ett access token.
NetFramework4.7ClientCredentialGrantAssertionConsoleSample
Sample (code link) .NET Framework 4.7 console applikation (backend) som visar klientautentisering med OAuth 2.0 Client Credentials Grant med ett certifikat (client authentication method private_key_jwt).
Visar hur man anropar API1 sample och API med två IdP'er sample säkrade med ett access token.
BlazorBFFAspNetCoreOidcSample
Sample (code link client och server) applikation som visar användarlogin och logout med OpenID Connect (OIDC) med authorization code flow i en Blazor BFF (Backend For Frontend) applikation med en ASP.NET Core backend.
I en BFF arkitektur hanterar backend OIDC, tokens delas aldrig med Blazor klienten. Istället säkrar en session baserad på en identity cookie applikationen efter lyckad användarautentisering.
Sample visar hur man anropar API1 sample från både Blazor klienten via en backend API proxy som lägger access token till det utgående API anropet.
Lokal utvecklingsdomän och port: https://localhost:44348
BlazorOidcPkceSample
Blazor sample (code link) applikation som visar användarlogin och logout med OpenID Connect (OIDC) med authorization code flow och PKCE som service provider.
Visar hur man anropar API1 sample säkrad med ett access token.
Lokal utvecklingsdomän och port: https://localhost:44345
BlazorServerOidcSample
Blazor server sample (code link) applikation som visar användarlogin och logout med OpenID Connect (OIDC) med authorization code flow som service provider.
Visar hur man anropar API1 sample säkrad med ett access token.
Lokal utvecklingsdomän och port: https://localhost:44347
AspNetCoreApi1Sample
Sample (code link) API som visar hur man säkrar ett API med ett access token och hur man begränsar åtkomst med scopes.
Du kan anropa denna sample online.
API:et anropar API2 sample säkrad med ett access token erhållet via token exchange där klienten använder client authentication method private_key_jwt (certifikat).
Lokal utvecklingsdomän och port: https://localhost:44344
AspNetCoreApi2Sample
Sample (code link) API som visar hur man säkrar ett API med ett access token och hur man begränsar åtkomst med ett scope.
Du kan anropa denna sample online.
Lokal utvecklingsdomän och port: https://localhost:44351
AspNetCoreApiOAuthTwoIdPsSample
Sample (code link) API som visar hur man skapar ett API som kan acceptera access tokens från två olika IdP'er. Varje IdP - API relation kan konfigureras med individuella resource IDs och scopes.
Detta scenario uppstår oftast i en övergångsperiod där man flyttar från en IdP till en annan IdP. Med API:er med dual IdP support kan klienter flyttas från en IdP till en annan IdP oberoende av API:erna.
Sample API:et kan anropas genom att kommentera ut kod i samples NetCoreClientCredentialGrantConsoleSample eller NetCoreClientCredentialGrantAssertionConsoleSample.
Lokal utvecklingsdomän och port: https://localhost:44350
Autentiseringsmetod samples
Autentiseringsmetod samples visar olika IdP'er kopplade till FoxIDs, där FoxIDs litar på IdP samples.
AspNetCoreSamlIdPSample
Sample (code link) applikation som implementerar en SAML 2.0 identity provider (IdP) kopplad som en SAML 2.0 autentiseringsmetod i FoxIDs. Sample visar även hur man gör IdP-Initiated login.
Du kan testa denna sample online.
Lokal utvecklingsdomän och port: https://localhost:44342
IdentityServerOidcOpSample
Identity Server (code link) implementerar OpenID Connect (OIDC) och exponerar en OpenID Provider (OP) / identity provider (IdP) kopplad som en OpenID Connect autentiseringsmetod i FoxIDs.
Lokal utvecklingsdomän och port: https://localhost:44346
ExternalLoginApiSample
Sample (code link) applikation som implementerar ett externt login API som är kopplat som en external login autentiseringsmetod i FoxIDs.
Lokal utvecklingsdomän och port: https://localhost:44352
ExternalClaimsApiSample
Sample (code link) applikation som implementerar ett externt claims API som kan konfigureras och anropas från en claims transform. Det externa claims API kan sedan lägga till externa claims till de utfärdade claims.
Lokal utvecklingsdomän och port: https://localhost:44353
ExternalExtendedUiApiSample
Sample (code link) applikation som implementerar ett externt extended UI API som kan konfigureras och anropas för att validera dynamiska UI element och valfritt returnera ytterligare claims.
Lokal utvecklingsdomän och port: https://localhost:44354
ExternalPasswordApiSample
Sample (code link) applikation som implementerar ett externt lösenord API som är kopplat som ett externt lösenord API i ett FoxIDs miljö.
Lokal utvecklingsdomän och port: https://localhost:44355
FoxIDsControlApiSample
Sample (code link) console applikation som visar hur man anropar FoxIDs Control API.
Konfigurera samples i FoxIDs miljö
Samples kan konfigureras i en FoxIDs miljö med sample seed tool eller manuellt via FoxIDs Control Client.
Sample seed tool finns i sample solution: tools/SampleSeedTool.
Konfigurera sample seed tool
Sample seed tool konfigureras i
appsettings.jsonfilen.
Lägg till FoxIDs och FoxIDs Control API endpoints till sample seed tool konfigurationen. De kan läggas till genom att uppdatera instansnamnen https://foxids.com och https://control.foxids.com/api. Om du kör FoxIDs lokalt i Visual Studio är endpoints konfigurerade till FoxIDs localhost https://localhost:44330/ och FoxIDs Control API localhost https://localhost:44331/.
"SeedSettings": {
"FoxIDsEndpoint": "https://foxids.com",
"FoxIDsConsolApiEndpoint": "https://control.foxids.com/api"
}
Åtkomst för att skapa sample konfigurationen i en miljö ges i
mastermiljön. Sample konfigurationen ska inte läggas till imastermiljön.
Skapa en sample seed tool OAuth 2.0 klient i FoxIDs Control Client:
- Välj
mastermiljön och skapa en OAuth 2.0 applikationsregistrering, klickaOAuth 2.0 - Client Credentials Grant. - Sätt client id till
sample_seed. - Kom ihåg client secret.
- I resource och scopes sektionen. Ge sample seed klienten tillgång till FoxIDs Control API resource
foxids_control_apimed scopefoxids:tenant. - Klicka show advanced.
- I issue claims sektionen. Lägg till en claim med namnet
roleoch värdetfoxids:tenant.admin. Detta ger klienten administratörsrollen.
Sample seed tool klienten får därmed åtkomst att uppdatera tenant.

Skapa en ny FoxIDs miljö för sample applikationerna eller välj en befintlig miljö.
Ändra tenant, miljö och sample seed tool client secret i sample seed tool konfigurationen.
"SeedSettings": {
"Tenant": "xxx",
"Track": "xxx",
"DownParty": "sample_seed",
"ClientSecret": "xxx"
}
Ändra tenant och miljö konfigurationen för alla samples.
Kör sample seed tool
Kör sample seed tool executable SampleSeedTool.exe eller kör seed tool direkt från Visual Studio.
- Klicka 'c' för att skapa sample konfiguration
- Klicka 'd' för att ta bort sample konfiguration
Sample seed tool skapar och tar bort konfigurationer för alla samples.
Sample applikationerna kräver en login autentiseringsmetod med namnet login (hanterar användarlogin). Den skapas av sample seed tool om den inte finns. Login autentiseringsmetoden tas inte bort om sample konfigurationen tas bort.