.NET Samples
Die FoxIDs .NET Samples zeigen:
- Benutzer Login und Logout mit OpenID Connect 1.0 und SAML 2.0
- Client Credentials Grant mit Secret und Zertifikat
- API Aufrufe gesichert mit OAuth 2.0
- Token exchange von Access Token zu Access Token und SAML 2.0 zu Access Token
Den Sample Quellcode finden Sie im FoxIDs.Samples Repository.
Die Samples sind in der FoxIDs Online Test Tenant test-corp vorkonfiguriert und können sofort lokal in Visual Studio auf den vorkonfigurierten localhost Ports ausgeführt werden.
Sehen Sie sich die FoxIDs Test Konfiguration in FoxIDs Control an: https://control.foxids.com/test-corp
Erhalten Sie read access mit dem Benutzerreader@foxids.comund PasswortgEh#V6kSw
Alternativ können Sie die Samples in Ihrem eigenen FoxIDs Umfeld konfigurieren.
Sample Index
ASP.NET Core - OpenID Connect - Applikationsregistrierung
ASP.NET Core - SAML 2.0 - Applikationsregistrierung
Blazor - OpenID Connect - Applikationsregistrierung
Console App - OAuth 2.0 Client Credentials Grant - Applikationsregistrierung
ASP.NET Core API - OAuth 2.0 - Applikationsregistrierung
ASP.NET Core - OpenID Connect - Authentifizierungsmethode
ASP.NET Core - SAML 2.0 - Authentifizierungsmethode
ASP.NET Core - External APIs
Console App - FoxIDs Control API
Sie können das JWT tool und das SAML 2.0 tool verwenden, um Tokens zu dekodieren und selbstsignierte Zertifikate mit dem certificate tool zu erstellen.
Sample Applikationen
Die Samples zeigen unterschiedliche Applikationen, die FoxIDs als IdP vertrauen.
AspNetCoreOidcAuthCodeAllUpPartiesSample
Sample (code link) Applikation, die Benutzer Login und Logout mit OpenID Connect (OIDC) unter Verwendung des authorization code flow als Service Provider zeigt und Login über alle Authentifizierungsmethoden anfordert.
Sie können dieses sample online testen.
Dieses Sample ist ein guter Einstieg!
Die möglichen Authentifizierungsmethoden werden in der Applikationsregistrierung als erlaubte Authentifizierungsmethoden konfiguriert. Es können eine bis viele erlaubte Authentifizierungsmethoden konfiguriert werden. Alle konfigurierten Authentifizierungsmethoden werden mit einem Stern statt einem Authentifizierungsmethoden Namen ausgewählt.
Unterstützt Login/Logout mit der FoxIDs Login Seite, Identity Server, SAML 2.0 IdP sample und allen anderen Authentifizierungsmethoden.
API Aufrufe:
- Zeigt, wie die API1 sample gesichert mit einem Access Token aufgerufen wird.
- Zeigt, wie die API1 sample gesichert mit einem Access Token aufgerufen wird, die wiederum die API2 sample mit token exchange innerhalb von API1 aufruft.
- Zeigt, wie ein Access Token durch token exchange erhalten wird, der Client verwendet client authentication method client_secret_post. Und ruft dann die API2 sample gesichert mit dem erhaltenen Access Token auf.
Lokale Entwicklungsdomain und Port: https://localhost:44349
AspNetCoreOidcAuthorizationCodeSample
Sample (code link) Applikation, die Benutzer Login und Logout mit OpenID Connect (OIDC) unter Verwendung des authorization code flow als Service Provider zeigt.
Unterstützt Login/Logout mit der FoxIDs Login Seite, Identity Server, SAML 2.0 IdP sample und wenn konfiguriert AD FS mit SAML 2.0.
Zeigt, wie die API1 sample gesichert mit einem Access Token aufgerufen wird.
Lokale Entwicklungsdomain und Port: https://localhost:44340
AspNetCoreOidcImplicitSample
Sample (code link) Applikation, die Benutzer Login und Logout mit OpenID Connect (OIDC) unter Verwendung des implicit flow als Service Provider zeigt.
Unterstützt Login/Logout mit der FoxIDs Login Seite, Identity Server, SAML 2.0 IdP sample und wenn konfiguriert AD FS mit SAML 2.0.
Lokale Entwicklungsdomain und Port: https://localhost:44341
AspNetCoreSamlSample
Sample (code link) Applikation, die Benutzer Login und Logout mit SAML 2.0 als Relying Party zeigt.
Unterstützt Login/Logout mit der FoxIDs Login Seite, Identity Server, SAML 2.0 IdP sample und wenn konfiguriert AD FS mit SAML 2.0.
Zeigt, wie ein Access Token aus einem SAML 2.0 Bearer Token durch token exchange erhalten wird, der Client verwendet client authentication method private_key_jwt (Zertifikat). Und ruft dann die API1 sample gesichert mit dem erhaltenen Access Token auf.
Lokale Entwicklungsdomain und Port: https://localhost:44343
NetCoreClientCredentialGrantConsoleSample
Sample (code link) Console Applikation (backend), die Client Authentifizierung mit OAuth 2.0 Client Credentials Grant unter Verwendung eines Secret (client authentication method client_secret_post) zeigt.
Zeigt, wie die API1 sample und API mit zwei IdP sample gesichert mit einem Access Token aufgerufen werden.
NetCoreClientCredentialGrantAssertionConsoleSample
Sample (code link) Console Applikation (backend), die Client Authentifizierung mit OAuth 2.0 Client Credentials Grant unter Verwendung eines Zertifikats (client authentication method private_key_jwt) zeigt.
Zeigt, wie die API1 sample und API mit zwei IdP sample gesichert mit einem Access Token aufgerufen werden.
NetFramework4.7ClientCredentialGrantAssertionConsoleSample
Sample (code link) .NET Framework 4.7 Console Applikation (backend), die Client Authentifizierung mit OAuth 2.0 Client Credentials Grant unter Verwendung eines Zertifikats (client authentication method private_key_jwt) zeigt.
Zeigt, wie die API1 sample und API mit zwei IdP sample gesichert mit einem Access Token aufgerufen werden.
BlazorBFFAspNetCoreOidcSample
Sample (code link client und server) Applikation, die Benutzer Login und Logout mit OpenID Connect (OIDC) unter Verwendung des authorization code flow in einer Blazor BFF (Backend For Frontend) Applikation mit einem ASP.NET Core backend zeigt.
In einer BFF Architektur verarbeitet das backend OIDC, die Tokens werden niemals mit dem Blazor client geteilt. Stattdessen sichert eine Session basierend auf einem Identity Cookie die Applikation nach erfolgreicher Benutzer Authentifizierung.
Das Sample zeigt, wie die API1 sample sowohl vom Blazor client über einen backend API proxy aufgerufen wird, der dem ausgehenden API Aufruf das Access Token hinzufügt.
Lokale Entwicklungsdomain und Port: https://localhost:44348
BlazorOidcPkceSample
Blazor Sample (code link) Applikation, die Benutzer Login und Logout mit OpenID Connect (OIDC) unter Verwendung des authorization code flow und PKCE als Service Provider zeigt.
Zeigt, wie die API1 sample gesichert mit einem Access Token aufgerufen wird.
Lokale Entwicklungsdomain und Port: https://localhost:44345
BlazorServerOidcSample
Blazor Server Sample (code link) Applikation, die Benutzer Login und Logout mit OpenID Connect (OIDC) unter Verwendung des authorization code flow als Service Provider zeigt.
Zeigt, wie die API1 sample gesichert mit einem Access Token aufgerufen wird.
Lokale Entwicklungsdomain und Port: https://localhost:44347
AspNetCoreApi1Sample
Sample (code link) API, die zeigt, wie ein API mit einem Access Token gesichert wird und wie der Zugriff über Scopes eingeschränkt wird.
Sie können dieses sample online aufrufen.
Die API ruft die API2 sample gesichert mit einem Access Token auf, das durch token exchange erhalten wurde, wobei der Client client authentication method private_key_jwt (Zertifikat) verwendet.
Lokale Entwicklungsdomain und Port: https://localhost:44344
AspNetCoreApi2Sample
Sample (code link) API, die zeigt, wie ein API mit einem Access Token gesichert wird und wie der Zugriff durch einen Scope eingeschränkt wird.
Sie können dieses sample online aufrufen.
Lokale Entwicklungsdomain und Port: https://localhost:44351
AspNetCoreApiOAuthTwoIdPsSample
Sample (code link) API, die zeigt, wie ein API erstellt wird, das Access Tokens von zwei verschiedenen IdP akzeptieren kann. Jede IdP - API Beziehung kann mit individuellen resource IDs und scopes konfiguriert werden.
Dieses Szenario tritt am häufigsten in einer Übergangsphase auf, wenn von einer IdP zu einer anderen IdP gewechselt wird. Mit APIs mit Dual IdP Support können Clients unabhängig von den APIs von einer IdP zu einer anderen IdP verschoben werden.
Das Sample API kann durch Auskommentieren von Code in den Samples NetCoreClientCredentialGrantConsoleSample oder NetCoreClientCredentialGrantAssertionConsoleSample aufgerufen werden.
Lokale Entwicklungsdomain und Port: https://localhost:44350
Authentifizierungsmethode Samples
Die Authentifizierungsmethode Samples zeigen verschiedene IdPs, die mit FoxIDs verbunden sind, wobei FoxIDs den IdP Samples vertraut.
AspNetCoreSamlIdPSample
Sample (code link) Applikation, die einen SAML 2.0 Identity Provider (IdP) implementiert, der als SAML 2.0 Authentifizierungsmethode in FoxIDs verbunden ist. Das Sample zeigt auch, wie IdP-Initiated Login durchgeführt wird.
Sie können dieses sample online testen.
Lokale Entwicklungsdomain und Port: https://localhost:44342
IdentityServerOidcOpSample
Identity Server (code link) implementiert OpenID Connect (OIDC) und stellt einen OpenID Provider (OP) / Identity Provider (IdP) bereit, der als OpenID Connect Authentifizierungsmethode in FoxIDs verbunden ist.
Lokale Entwicklungsdomain und Port: https://localhost:44346
ExternalLoginApiSample
Sample (code link) Applikation, die ein externes Login API implementiert, das als external login Authentifizierungsmethode in FoxIDs verbunden ist.
Lokale Entwicklungsdomain und Port: https://localhost:44352
ExternalClaimsApiSample
Sample (code link) Applikation, die ein externes Claims API implementiert, das konfiguriert und von einer Claims Transform aufgerufen werden kann. Das externe Claims API kann dann externe Claims zu den ausgegebenen Claims hinzufügen.
Lokale Entwicklungsdomain und Port: https://localhost:44353
ExternalExtendedUiApiSample
Sample (code link) Applikation, die ein externes extended UI API implementiert, das konfiguriert und aufgerufen werden kann, um dynamische UI Elemente zu validieren und optional zusätzliche Claims zurückzugeben.
Lokale Entwicklungsdomain und Port: https://localhost:44354
ExternalPasswordApiSample
Sample (code link) Applikation, die ein externes Passwort API implementiert, das als externes Passwort API in einer FoxIDs Umgebung verbunden ist.
Lokale Entwicklungsdomain und Port: https://localhost:44355
FoxIDsControlApiSample
Sample (code link) Console Applikation, die zeigt, wie die FoxIDs Control API aufgerufen wird.
Samples in FoxIDs Umfeld konfigurieren
Die Samples können in einem FoxIDs Umfeld mit dem sample seed tool oder manuell über den FoxIDs Control Client konfiguriert werden.
Das sample seed tool befindet sich in der sample solution: tools/SampleSeedTool.
Sample seed tool konfigurieren
Das sample seed tool wird in der
appsettings.jsonDatei konfiguriert.
Fügen Sie die FoxIDs und FoxIDs Control API Endpoints zur sample seed tool Konfiguration hinzu. Sie können hinzugefügt werden, indem die Instanznamen https://foxids.com und https://control.foxids.com/api aktualisiert werden. Wenn Sie FoxIDs lokal in Visual Studio ausführen, sind die Endpoints auf FoxIDs localhost https://localhost:44330/ und FoxIDs Control API localhost https://localhost:44331/ konfiguriert.
"SeedSettings": {
"FoxIDsEndpoint": "https://foxids.com",
"FoxIDsConsolApiEndpoint": "https://control.foxids.com/api"
}
Zugriff zum Erstellen der sample Konfiguration in einer Umgebung wird in der
masterUmgebung gewährt. Die sample Konfiguration sollte nicht zurmasterUmgebung hinzugefügt werden.
Erstellen Sie einen sample seed tool OAuth 2.0 Client im FoxIDs Control Client:
- Wählen Sie die
masterUmgebung und erstellen Sie eine OAuth 2.0 Applikationsregistrierung, klicken SieOAuth 2.0 - Client Credentials Grant. - Setzen Sie die Client ID auf
sample_seed. - Merken Sie sich das Client Secret.
- Im Abschnitt resource und scopes: Gewähren Sie dem sample seed Client Zugriff auf die FoxIDs Control API Resource
foxids_control_apimit dem Scopefoxids:tenant. - Klicken Sie show advanced.
- Im Abschnitt issue claims: Fügen Sie eine Claim mit dem Namen
roleund dem Wertfoxids:tenant.adminhinzu. Damit wird dem Client die Administrator Rolle gewährt.
Der sample seed tool Client erhält dadurch Zugriff, um den Tenant zu aktualisieren.

Erstellen Sie eine neue FoxIDs Umgebung für die sample Applikationen oder wählen Sie eine vorhandene Umgebung.
Ändern Sie den Tenant, die Umgebung und das sample seed tool Client Secret in der sample seed tool Konfiguration.
"SeedSettings": {
"Tenant": "xxx",
"Track": "xxx",
"DownParty": "sample_seed",
"ClientSecret": "xxx"
}
Ändern Sie die Tenant und Umgebungs Konfiguration für alle Samples.
Sample seed tool ausführen
Führen Sie das sample seed tool executable SampleSeedTool.exe aus oder starten Sie das seed tool direkt in Visual Studio.
- Klicken Sie 'c', um die sample Konfiguration zu erstellen
- Klicken Sie 'd', um die sample Konfiguration zu löschen
Das sample seed tool erstellt und löscht Konfigurationen für alle Samples.
Die sample Applikationen erfordern eine Login Authentifizierungsmethode mit dem Namen login (behandelt Benutzer Login). Sie wird vom sample seed tool erstellt, wenn sie nicht vorhanden ist. Die Login Authentifizierungsmethode wird nicht gelöscht, wenn die sample Konfiguration gelöscht wird.