.NET Przykłady
Przykłady .NET dla FoxIDs pokazują:
- Logowanie i wylogowanie użytkownika z użyciem OpenID Connect 1.0 i SAML 2.0
- Grant client credentials z sekretem i certyfikatem
- Wywołania API zabezpieczone OAuth 2.0
- Wymianę tokenów: z access token na access token oraz z SAML 2.0 na access token
Kod źródłowy przykładów znajdziesz w repozytorium FoxIDs.Samples.
Przykłady są wstępnie skonfigurowane w teście online FoxIDs dla tenanta test-corp i mogą od razu uruchomić się lokalnie w Visual Studio na skonfigurowanych portach localhost.
Zobacz testową konfigurację FoxIDs w FoxIDs Control: https://control.foxids.com/test-corp Uzyskaj dostęp do odczytu użytkownikiem
reader@foxids.comi hasłemgEh#V6kSw
Alternatywnie możesz skonfigurować przykłady w własnym środowisku FoxIDs.
Indeks przykładów
ASP.NET Core - OpenID Connect - rejestracja aplikacji
ASP.NET Core - SAML 2.0 - rejestracja aplikacji
Blazor - OpenID Connect - rejestracja aplikacji
Aplikacja konsolowa - OAuth 2.0 Client Credentials Grant - rejestracja aplikacji
ASP.NET Core API - OAuth 2.0 - rejestracja aplikacji
ASP.NET Core - OpenID Connect - metoda uwierzytelniania
ASP.NET Core - SAML 2.0 - metoda uwierzytelniania
ASP.NET Core - Zewnętrzne API
Aplikacja konsolowa - FoxIDs Control API
Możesz użyć narzędzia JWT i narzędzia SAML 2.0, aby dekodować tokeny oraz tworzyć certyfikaty samopodpisane przy użyciu narzędzia certyfikatów.
Aplikacje przykładowe
Przykłady pokazują różne aplikacje, które ufają FoxIDs jako IdP.
AspNetCoreOidcAuthCodeAllUpPartiesSample
Przykład (link do kodu) aplikacji pokazującej logowanie i wylogowanie użytkownika z użyciem OpenID Connect (OIDC) przy przepływie authorization code jako dostawca usług oraz żądanie logowania przez wszystkie metody uwierzytelniania.
Możesz przetestować ten przykład online.
To dobry punkt startu!
Możliwe metody uwierzytelniania konfiguruje się w rejestracji aplikacji jako dozwolone metody. Można skonfigurować jedną lub wiele dozwolonych metod uwierzytelniania. Wszystkie skonfigurowane metody uwierzytelniania wybierane są za pomocą gwiazdki zamiast nazwy metody.
Obsługuje logowanie/wylogowanie przez stronę logowania FoxIDs, Identity Server, przykład IdP SAML 2.0 i wszystkie inne metody uwierzytelniania.
Wywołania API:
- Pokazuje, jak wywołać przykład API1 zabezpieczony tokenem dostępu.
- Pokazuje, jak wywołać przykład API1 zabezpieczony tokenem dostępu, który następnie wywołuje przykład API2 z użyciem wymiany tokenów z API1.
- Pokazuje, jak uzyskać token dostępu przez wymianę tokenów; klient używa metody uwierzytelniania client_secret_post. Następnie wywołuje przykład API2 zabezpieczony uzyskanym tokenem dostępu.
Lokalna domena i port deweloperski: https://localhost:44349
AspNetCoreOidcAuthorizationCodeSample
Przykład (link do kodu) aplikacji pokazującej logowanie i wylogowanie użytkownika z użyciem OpenID Connect (OIDC) w przepływie authorization code jako dostawca usług.
Obsługuje logowanie/wylogowanie przez stronę logowania FoxIDs, Identity Server, przykład IdP SAML 2.0 oraz, jeśli skonfigurowano, AD FS z SAML 2.0.
Pokazuje, jak wywołać przykład API1 zabezpieczony tokenem dostępu.
Lokalna domena i port deweloperski: https://localhost:44340
AspNetCoreOidcImplicitSample
Przykład (link do kodu) aplikacji pokazującej logowanie i wylogowanie użytkownika z użyciem OpenID Connect (OIDC) w przepływie implicit jako dostawca usług.
Obsługuje logowanie/wylogowanie przez stronę logowania FoxIDs, Identity Server, przykład IdP SAML 2.0 oraz, jeśli skonfigurowano, AD FS z SAML 2.0.
Lokalna domena i port deweloperski: https://localhost:44341
AspNetCoreSamlSample
Przykład (link do kodu) aplikacji pokazującej logowanie i wylogowanie użytkownika z użyciem SAML 2.0 jako strona ufająca.
Obsługuje logowanie/wylogowanie przez stronę logowania FoxIDs, Identity Server, przykład IdP SAML 2.0 oraz, jeśli skonfigurowano, AD FS z SAML 2.0.
Pokazuje, jak uzyskać token dostępu z tokenu nośnego SAML 2.0 przy użyciu wymiany tokenów; klient używa metody uwierzytelniania private_key_jwt (certyfikat). Następnie wywołuje przykład API1 zabezpieczony uzyskanym tokenem dostępu.
Lokalna domena i port deweloperski: https://localhost:44343
NetCoreClientCredentialGrantConsoleSample
Przykład (link do kodu) aplikacji konsolowej (backend) pokazującej uwierzytelnianie klienta przy OAuth 2.0 Client Credentials Grant z użyciem sekretu (metoda uwierzytelniania client_secret_post).
Pokazuje, jak wywołać przykład API1 i przykład API z dwoma IdP zabezpieczone tokenem dostępu.
NetCoreClientCredentialGrantAssertionConsoleSample
Przykład (link do kodu) aplikacji konsolowej (backend) pokazującej uwierzytelnianie klienta przy OAuth 2.0 Client Credentials Grant z użyciem certyfikatu (metoda uwierzytelniania private_key_jwt).
Pokazuje, jak wywołać przykład API1 i przykład API z dwoma IdP zabezpieczone tokenem dostępu.
NetFramework4.7ClientCredentialGrantAssertionConsoleSample
Przykład (link do kodu) aplikacji konsolowej .NET Framework 4.7 (backend) pokazującej uwierzytelnianie klienta przy OAuth 2.0 Client Credentials Grant z użyciem certyfikatu (metoda uwierzytelniania private_key_jwt).
Pokazuje, jak wywołać przykład API1 i przykład API z dwoma IdP zabezpieczone tokenem dostępu.
BlazorBFFAspNetCoreOidcSample
Przykład (link do kodu klient i serwer) aplikacji pokazującej logowanie i wylogowanie użytkownika z użyciem OpenID Connect (OIDC) w przepływie authorization code w aplikacji Blazor BFF (Backend For Frontend) z backendem ASP.NET Core. W architekturze BFF backend obsługuje OIDC, a tokeny nigdy nie są udostępniane klientowi Blazor. Zamiast tego po pomyślnym uwierzytelnieniu użytkownika aplikacja jest zabezpieczona sesją opartą o cookie tożsamości.
Przykład pokazuje, jak wywołać przykład API1 zarówno z klienta Blazor, jak i przez backendowy proxy API, które dodaje token dostępu do wychodzącego wywołania API.
Lokalna domena i port deweloperski: https://localhost:44348
BlazorOidcPkceSample
Przykład Blazor (link do kodu) aplikacji pokazującej logowanie i wylogowanie użytkownika z użyciem OpenID Connect (OIDC) w przepływie authorization code i PKCE jako dostawca usług.
Pokazuje, jak wywołać przykład API1 zabezpieczony tokenem dostępu.
Lokalna domena i port deweloperski: https://localhost:44345
BlazorServerOidcSample
Przykład Blazor Server (link do kodu) aplikacji pokazującej logowanie i wylogowanie użytkownika z użyciem OpenID Connect (OIDC) w przepływie authorization code jako dostawca usług.
Pokazuje, jak wywołać przykład API1 zabezpieczony tokenem dostępu.
Lokalna domena i port deweloperski: https://localhost:44347
AspNetCoreApi1Sample
Przykład (link do kodu) API pokazujący, jak zabezpieczyć API tokenem dostępu oraz jak ograniczać dostęp za pomocą zakresów (scopes).
Możesz wywołać ten przykład online.
API wywołuje przykład API2 zabezpieczony tokenem dostępu uzyskanym przez wymianę tokenów, gdzie klient używa metody uwierzytelniania private_key_jwt (certyfikat).
Lokalna domena i port deweloperski: https://localhost:44344
AspNetCoreApi2Sample
Przykład (link do kodu) API pokazujący, jak zabezpieczyć API tokenem dostępu oraz jak ograniczać dostęp zakresem (scope).
Możesz wywołać ten przykład online.
Lokalna domena i port deweloperski: https://localhost:44351
AspNetCoreApiOAuthTwoIdPsSample
Przykład (link do kodu) API pokazujący, jak zbudować API, które akceptuje tokeny dostępu z dwóch różnych IdP. Każdą relację IdP - API można skonfigurować z indywidualnymi identyfikatorami zasobów i zakresami.
Taki scenariusz najczęściej występuje w okresie przejściowym podczas migracji z jednego IdP na inny. API obsługujące dwa IdP umożliwia przenoszenie klientów z jednego IdP do drugiego niezależnie od API.
API przykładowe można wywołać po odkomentowaniu kodu w przykładach NetCoreClientCredentialGrantConsoleSample lub NetCoreClientCredentialGrantAssertionConsoleSample.
Lokalna domena i port deweloperski: https://localhost:44350
Przykłady metod uwierzytelniania
Przykłady metod uwierzytelniania pokazują różne IdP podłączone do FoxIDs, gdzie FoxIDs ufa przykładowym IdP.
AspNetCoreSamlIdPSample
Przykład (link do kodu) aplikacji implementującej dostawcę tożsamości SAML 2.0 (IdP) podłączonego jako metoda uwierzytelniania SAML 2.0 w FoxIDs. Przykład pokazuje także logowanie inicjowane przez IdP.
Możesz przetestować ten przykład online.
Lokalna domena i port deweloperski: https://localhost:44342
IdentityServerOidcOpSample
Identity Server (link do kodu) implementujący OpenID Connect (OIDC), udostępniający OpenID Provider (OP) / dostawcę tożsamości (IdP) podłączonego jako metoda uwierzytelniania OpenID Connect w FoxIDs.
Lokalna domena i port deweloperski: https://localhost:44346
ExternalLoginApiSample
Przykład (link do kodu) aplikacji implementującej zewnętrzne API logowania, które jest podłączone jako zewnętrzna metoda uwierzytelniania logowania w FoxIDs.
Lokalna domena i port deweloperski: https://localhost:44352
ExternalClaimsApiSample
Przykład (link do kodu) aplikacji implementującej zewnętrzne API claimów, które można skonfigurować i wywoływać z transformacji claimów. Zewnętrzne API claimów może następnie dodawać zewnętrzne claimy do wystawianych claimów.
Lokalna domena i port deweloperski: https://localhost:44353
ExternalExtendedUiApiSample
Przykład (link do kodu) aplikacji implementującej zewnętrzne API rozszerzonego UI, które można skonfigurować i wywoływać w celu walidacji dynamicznych elementów UI oraz opcjonalnego zwracania dodatkowych claimów.
Lokalna domena i port deweloperski: https://localhost:44354
ExternalPasswordApiSample
Przykład (link do kodu) aplikacji implementującej zewnętrzne API haseł, które jest podłączone jako zewnętrzne API haseł w środowisku FoxIDs.
Lokalna domena i port deweloperski: https://localhost:44355
FoxIDsControlApiSample
Przykład (link do kodu) aplikacji konsolowej pokazującej, jak wywołać FoxIDs Control API.
Skonfiguruj przykłady w środowisku FoxIDs
Przykłady można skonfigurować w środowisku FoxIDs przy użyciu narzędzia seed lub ręcznie przez FoxIDs Control Client.
Narzędzie seed znajduje się w rozwiązaniu przykładowym: tools/SampleSeedTool.
Skonfiguruj narzędzie seed
Narzędzie seed jest konfigurowane w pliku
appsettings.json.
Dodaj endpointy FoxIDs i FoxIDs Control API do konfiguracji narzędzia seed. Można je dodać, aktualizując nazwy instancji https://foxids.com i https://control.foxids.com/api. Jeśli uruchamiasz FoxIDs lokalnie w Visual Studio, endpointy są skonfigurowane na FoxIDs localhost https://localhost:44330/ oraz FoxIDs Control API localhost https://localhost:44331/.
"SeedSettings": {
"FoxIDsEndpoint": "https://foxids.com",
"FoxIDsConsolApiEndpoint": "https://control.foxids.com/api"
}
Dostęp do utworzenia konfiguracji przykładowej w środowisku jest przyznawany w środowisku
master. Konfiguracja przykładowa nie powinna być dodawana do środowiskamaster.
Utwórz klienta OAuth 2.0 dla narzędzia seed w FoxIDs Control Client:
- Wybierz środowisko
masteri utwórz rejestrację aplikacji OAuth 2.0, kliknijOAuth 2.0 - Client Credentials Grant. - Ustaw client id na
sample_seed. - Zapamiętaj client secret.
- W sekcji zasobów i zakresów przyznaj klientowi seed dostęp do zasobu FoxIDs Control API
foxids_control_apiz zakresemfoxids:tenant. - Kliknij show advanced.
- W sekcji issue claims dodaj claim o nazwie
rolei wartościfoxids:tenant.admin. To przyzna klientowi rolę administratora.
W ten sposób klient narzędzia seed otrzymuje dostęp do aktualizacji tenanta.

Utwórz nowe środowisko FoxIDs dla aplikacji przykładowych lub wybierz istniejące środowisko.
Zmień tenant, środowisko i sekret klienta narzędzia seed w konfiguracji narzędzia seed.
"SeedSettings": {
"Tenant": "xxx",
"Track": "xxx",
"DownParty": "sample_seed",
"ClientSecret": "xxx"
}
Zmień konfigurację tenanta i środowiska dla wszystkich przykładów.
Uruchom narzędzie seed
Uruchom narzędzie seed SampleSeedTool.exe lub uruchom je bezpośrednio z Visual Studio.
- Kliknij 'c', aby utworzyć konfigurację przykładów
- Kliknij 'd', aby usunąć konfigurację przykładów
Narzędzie seed utworzy i usunie konfiguracje dla wszystkich przykładów.
Aplikacje przykładowe wymagają metody uwierzytelniania login o nazwie login (obsługuje logowanie użytkownika). Jest ona tworzona przez narzędzie seed, jeśli nie istnieje. Metoda uwierzytelniania login nie jest usuwana, jeśli konfiguracja przykładów zostanie usunięta.