• +45 4949 9091
  • Support
  • Sprachen
    • Sprachen
    • English
    • Dansk
    • Svenska
    • Norsk
    • Deutsch
    • Nederlands
    • Polski
    • Français
    • Español
    • Italiano
    • Português
  • Registrieren
  • Anmelden
FoxIDs Logo
  • Plattform
    • Bereitstellung
    • Multi-Tenant
    • Identitätslogik
    • Compliance
  • Anwendungsfälle
    • Überblick
    • Kunden
    • Mitarbeitende
    • Partner
    • Kundengeschichten
  • Services
  • Preise
  • Dokumentation & Tools
    • Dokumentation
    • Artikel
    • JWT-Tool
    • SAML 2.0-Tool
    • Zertifikat-Tool
  • Kontakt
  • Registrieren
  • Anmelden

ITfoxtec Identity Blazor WebAssembly OpenID Connect

ITfoxtec Identity Blazor WebAssembly OpenID Connect ist eine JavaScript freie OpenID Connect PKCE Bibliothek für Blazor WebAssembly.

Die Bibliothek unterstützt Login und Logout mit OpenID Connect unter Verwendung von PKCE statt eines Client Secret. Sie validiert ID Tokens im Browser mit dem OpenID Provider Discovery Dokument.

Die Komponente verwaltet Token und Session Updates automatisch mit Refresh Tokens, wenn der offline_access Scope angegeben ist.

Der Firmenname ITfoxtec wurde geändert zu FoxIDs aber die Komponenten behalten den ITfoxtec Namen vorerst als Teil des Komponentennamens bei.

Support

Stellen Sie Fragen auf Stack Overflow und taggen Sie mit 'itfoxtec-identity-blazor'.

E-Mail an support@foxids.com mit einem Link zu Ihrer Frage.

Paket

Veröffentlichungen NuGet ITfoxtec Identity Blazor WebAssembly OpenID Connect

Code und Lizenz

GitHub Code und Beispiel Open-Source-Lizenz

Beispielanwendung

Bitte sehen Sie die Beispielanwendung.

Die Beispielanwendung ist so konfiguriert, dass sie sich mit foxids.com mit Testbenutzer test1@foxids.com oder test2@foxids.com und Passwort TestAccess!

Weitere Informationen zu den European Identity Services FoxIDs finden Sie in der FoxIDs Dokumentation.

Unterstützte .NET Versionen:

.NET 10.0 .NET 9.0 .NET 8.0 .NET 7.0 .NET 6.0 .NET 5.0

IdP Konfiguration

  • Response types: code
  • PKCE aktivieren: true
  • Login call back: ...base URL.../authentication/login_callback
  • Logout call back: ...base URL.../authentication/logout_callback

API Aufrufe zu einer anderen Domain

Die Konfiguration kann erweitert werden, um API Aufrufe zu anderen Domains als der Basisdomain zu unterstützen. Die vertrauenswürdigen AuthorizedUris in der IdentitySettings Konfiguration werden beim AccessTokenMessageHandler konfiguriert.

Fügen Sie vertrauenswürdige Domains als AuthorizedUris in der IdentitySettings Konfiguration hinzu.

Wenn FoxIDs relevant ist

Verwenden Sie die Open-Source Blazor-Bibliothek, wenn Sie einen JavaScript freien OpenID Connect Client in Ihrer WebAssembly App benötigen. FoxIDs ist relevant, wenn Sie zusätzlich einen gehosteten Identity Provider, Benutzerverwaltung, Verbund und Produktionssupport rund um den Client Ablauf benötigen.

  • Kombinieren Sie den Blazor Client mit einem verwalteten OpenID Connect Provider
  • Fügen Sie externe Anmeldeanbieter, User Journeys und API Schutz hinzu
  • Erhalten Sie Architekturberatung, Betrieb und kostenpflichtigen technischen Support
FoxIDs Dokumentation Sprechen Sie mit einem Experten Kostenlos starten

Sie können das JWT Tool verwenden, um Tokens zu decodieren und mit dem Zertifikat Toolselbstsignierte Zertifikate zu erstellen.

Beispielanwendung

Bitte sehen Sie die Beispielanwendung für Implementierungsdetails.

Installieren

Installieren Sie das ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect NuGet Paket über den Visual Studio Paket Manager.

Oder installieren Sie über PowerShell mit folgendem Befehl.

Install-Package ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect

Oder über CLI.

dotnet add package ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect

Setup und Konfiguration

Registrieren Sie OpenidConnectPkce, HttpClient und IHttpClientFactory in der Program.cs Datei.

private static void ConfigureServices(IServiceCollection services, WebAssemblyHostConfiguration configuration, IWebAssemblyHostEnvironment hostEnvironment)
{
    services.AddHttpClient("BlazorWebAssemblyOidcSample.API", client => client.BaseAddress = new Uri(hostEnvironment.BaseAddress))
        .AddHttpMessageHandler<AccessTokenMessageHandler>();

    services.AddTransient(sp => sp.GetRequiredService<IHttpClientFactory>().CreateClient("BlazorWebAssemblyOidcSample.API"));

    services.AddOpenidConnectPkce(settings =>
    {
        configuration.Bind("IdentitySettings", settings);
    });
}

Fügen Sie appsettings.json und gegebenenfalls appsettings.Development.json Konfigurationsdateien unter wwwroot mit der IdentitySettings Konfiguration hinzu. Der Scope wird als durch Leerzeichen getrennte Liste von Werten hinzugefügt.

{
  "IdentitySettings": {
    "Authority": "https://...some authority.../",
    "ClientId": "...client id...",
    "Scope": "...some scope..."
  }
}

Fügen Sie den Bibliotheks Namespace @using ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect zu Imports.razor hinzu.

API Aufrufe zu einer anderen Domain

Die Konfiguration kann erweitert werden, um API Aufrufe zu anderen Domains als der Basisdomain zu unterstützen. Die vertrauenswürdigen AuthorizedUris in der IdentitySettings Konfiguration werden beim AccessTokenMessageHandler konfiguriert.

private static void ConfigureServices(IServiceCollection services, WebAssemblyHostConfiguration configuration, IWebAssemblyHostEnvironment hostEnvironment)
{
    services.AddHttpClient("BlazorWebAssemblyOidcSample.API", client => client.BaseAddress = new Uri(hostEnvironment.BaseAddress))
        .AddHttpMessageHandler(sp =>
        {
            var handler = sp.GetService<AccessTokenMessageHandler>();
            configuration.Bind("IdentitySettings", handler);
            return handler;
        });

    services.AddTransient(sp => sp.GetRequiredService<IHttpClientFactory>().CreateClient("BlazorWebAssemblyOidcSample.API"));

    services.AddOpenidConnectPkce(settings =>
    {
        configuration.Bind("IdentitySettings", settings);
    });
}

Fügen Sie vertrauenswürdige Domains als AuthorizedUris in der IdentitySettings Konfiguration hinzu.

{
  "IdentitySettings": {
    "Authority": "https://...some authority.../",
    "ClientId": "...client id...",
    "Scope": "...some scope...",
    "Resources": [ "...resource..." ],
    "AuthorizedUris": [ "...authorized api Uri..." ]
  }
}

Periodische Access Token Validierung

Setzen Sie SessionValidationIntervalSeconds in IdentitySettings (Standard ist 300; auf 0 setzen, um zu deaktivieren). Wenn aktiviert, OidcAuthenticationStateProvider ruft periodisch den UserInfo Endpoint über OidcHelper.ValidateAccessTokenWithUserInfoEndpoint. Wenn die Validierung fehlschlägt, leert der Provider die Sitzung und löst das Logout Ereignis aus, damit die UI den Benutzer erneut zur Anmeldung auffordert.

Call back Seite hinzufügen

Fügen Sie eine Authentication.razor Call back Seite im Pages Ordner mit folgendem Inhalt hinzu.

@page "/authentication/{action}"
@inherits AuthenticationPageBase

Authorize Views

Aktualisieren Sie App.razor, um AuthorizeRouteView/NotAuthorized mit dem OidcRedirectToLogin Element einzubinden. OidcRedirectToLogin startet den Login Flow, wenn der Benutzer keinen Zugriff hat.

<Router AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
        <AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
            <NotAuthorized>
                <OidcRedirectToLogin />
            </NotAuthorized>
            <Authorizing>
                <h1>Authentication in progress</h1>
                <p>Only visible while authentication is in progress.</p>
            </Authorizing>
        </AuthorizeRouteView>
    </Found>
    <NotFound>
        <CascadingAuthenticationState>
            <LayoutView Layout="@typeof(MainLayout)">
                <h1>Sorry</h1>
                <p>Sorry, there's nothing at this address.</p>
            </LayoutView>
        </CascadingAuthenticationState>
    </NotFound>
</Router>

Damit werden sowohl das Authorize Attribut als auch AuthorizeView unterstützt.

Login / Logout Menü

Fügen Sie LoginDisplay.razor mit einem Login / Logout Menü mit folgendem Inhalt hinzu.

@inject OpenidConnectPkce oenidConnectPkce

<AuthorizeView>
    <Authorized>
        Hello, @context.User.Identity.Name!
        <button class="nav-link btn btn-link" @onclick="LogoutAsync">Logout</button>
    </Authorized>
    <NotAuthorized>
        <button class="nav-link btn btn-link" @onclick="LoginAsync">Login</button>
    </NotAuthorized>
</AuthorizeView>

@code{
    private async Task LoginAsync(MouseEventArgs args)
    {
        await oenidConnectPkce.LoginAsync();
    }

    private async Task LogoutAsync(MouseEventArgs args)
    {
        await oenidConnectPkce.LogoutAsync();
    }
}

LoginDisplay kann dem MainLayout.razor wie folgt hinzugefügt werden.

@inherits LayoutComponentBase

<div class="sidebar">
    <NavMenu />
</div>

<div class="main">
    <div class="top-row px-4">
        <LoginDisplay />
    </div>

    <div class="content px-4">
        @Body
    </div>
</div>
FoxIDs Logo

In Dänemark entwickelt. In Europa gehostet.

Entwickler

  • Dokumentation
  • Artikel
  • Veröffentlichungen
  • Cloud-Status

Produkt

  • Preise
  • Services
  • Bereitstellung
  • Compliance
  • Vertrauenszentrum

Unternehmen

  • Über
  • SKI-Lieferant
  • Kontakt

Rechtliches

  • Nutzungsbedingungen
  • Bedingungen für Self-Hosting
  • DSGVO und Datenschutzvereinbarung
  • Datenschutz- und Cookie-Richtlinie
© 2026 FoxIDs, Version 2.15.19
GitHub LinkedIn

Cookie-Auswahl

FoxIDs verwendet notwendige Cookies, damit die Website funktioniert. Wählen Sie Alle akzeptieren, um zusätzlich Analyse-Cookies zuzulassen, die uns helfen, die Nutzung der Website zu verstehen und sie zu verbessern, oder Alle ablehnen, um nur notwendige Cookies zu verwenden. Sie können Ihre Auswahl jederzeit in unserer Datenschutz- und Cookie-Richtlinie ändern.

Datenschutz- und Cookie-Richtlinie lesen