.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.com i hasłem gEh#V6kSw

Alternatywnie możesz skonfigurować przykłady w własnym środowisku FoxIDs.

Indeks przykładów

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 środowiska master.

Utwórz klienta OAuth 2.0 dla narzędzia seed w FoxIDs Control Client:

  1. Wybierz środowisko master i utwórz rejestrację aplikacji OAuth 2.0, kliknij OAuth 2.0 - Client Credentials Grant.
  2. Ustaw client id na sample_seed.
  3. Zapamiętaj client secret.
  4. W sekcji zasobów i zakresów przyznaj klientowi seed dostęp do zasobu FoxIDs Control API foxids_control_api z zakresem foxids:tenant.
  5. Kliknij show advanced.
  6. W sekcji issue claims dodaj claim o nazwie role i wartości foxids:tenant.admin. To przyzna klientowi rolę administratora.

W ten sposób klient narzędzia seed otrzymuje dostęp do aktualizacji tenanta.

FoxIDs Control Client - sample_seed client

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.

Twoja prywatność

Używamy plików cookie, aby poprawić korzystanie z naszych stron internetowych. Kliknij przycisk „Akceptuj wszystkie pliki cookie”, aby wyrazić zgodę na ich użycie. Aby zrezygnować z nieistotnych plików cookie, kliknij „Tylko niezbędne pliki cookie”.

Odwiedź naszą politykę prywatności, aby dowiedzieć się więcej