.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ändaren reader@foxids.com och lösenord gEh#V6kSw

Du kan alternativt konfigurera samples i din egna FoxIDs miljö.

Sample index

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.json filen.

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 master miljön. Sample konfigurationen ska inte läggas till i master miljön.

Skapa en sample seed tool OAuth 2.0 klient i FoxIDs Control Client:

  1. Välj master miljön och skapa en OAuth 2.0 applikationsregistrering, klicka OAuth 2.0 - Client Credentials Grant.
  2. Sätt client id till sample_seed.
  3. Kom ihåg client secret.
  4. I resource och scopes sektionen. Ge sample seed klienten tillgång till FoxIDs Control API resource foxids_control_api med scope foxids:tenant.
  5. Klicka show advanced.
  6. I issue claims sektionen. Lägg till en claim med namnet role och värdet foxids:tenant.admin. Detta ger klienten administratörsrollen.

Sample seed tool klienten får därmed åtkomst att uppdatera tenant.

FoxIDs Control Client - sample_seed client

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.

Din integritet

Vi använder cookies för att göra din upplevelse av våra webbplatser bättre. Klicka på 'Acceptera alla cookies' för att godkänna användningen av cookies. För att avstå från icke-nödvändiga cookies, klicka på 'Endast nödvändiga cookies'.

Besök vår integritetspolicy för mer