• +45 4949 9091
  • Ondersteuning
  • Talen
    • Talen
    • English
    • Dansk
    • Svenska
    • Norsk
    • Deutsch
    • Nederlands
    • Polski
    • Français
    • Español
    • Italiano
    • Português
  • Registreren
  • Inloggen
FoxIDs logo
  • Docs & tools
    • Documentatie
    • Artikelen
    • JWT tool
    • SAML 2.0 tool
    • Certificaat tool
  • Toepassingen
    • Overzicht
    • Klanten
    • Medewerkers
    • Partners
    • Klantverhalen
  • Diensten
  • Platform
    • Uitrol
    • Multi-tenant
    • Identiteitslogica
    • Compliance
  • Prijzen
  • Registreren
  • Inloggen

ITfoxtec Identity Blazor WebAssembly OpenID Connect

ITfoxtec Identity Blazor WebAssembly OpenID Connect is een JavaScript vrije OpenID Connect PKCE bibliotheek voor Blazor WebAssembly.

De bibliotheek ondersteunt login en logout met OpenID Connect met PKCE in plaats van een client secret. Het valideert ID tokens in de browser met het OpenID Provider discovery document.

De component verwerkt automatisch token en session updates met refresh tokens wanneer de offline_access scope is opgegeven.

De bedrijfsnaam ITfoxtec is gewijzigd in FoxIDs maar de componenten behouden voorlopig de ITfoxtec naam als onderdeel van de componentnaam.

Support

Stel vragen op Stack Overflow en tag met 'itfoxtec-identity-blazor'.

Stuur een e-mail naar support@foxids.com met een link naar je vraag.

Pakket

Releases NuGet ITfoxtec Identity Blazor WebAssembly OpenID Connect

Code en licentie

GitHub code en sample Open-source licentie

Sample application

Zie de sample application.

De sample applicatie is geconfigureerd om te authenticeren met foxids.com met testgebruiker test1@foxids.com of test2@foxids.com en wachtwoord TestAccess!

Voor meer informatie over de European Identity Services FoxIDs, zie de FoxIDs documentatie.

Ondersteunde .NET versies:

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

IdP configuratie

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

API calls naar een ander domein

De configuratie kan worden uitgebreid om API calls naar andere domeinen dan het basisdomein te ondersteunen. De vertrouwde AuthorizedUris in de IdentitySettings configuratie worden geconfigureerd op de AccessTokenMessageHandler.

Voeg vertrouwde domeinen toe als AuthorizedUris in de IdentitySettings configuratie.

Wanneer FoxIDs relevant is

Gebruik de open source Blazor bibliotheek wanneer je een JavaScript vrije OpenID Connect client nodig hebt in je WebAssembly app. FoxIDs is relevant wanneer je ook een gehoste identiteitsprovider, gebruikersbeheer, federatie en productiesupport rond de clientflow nodig hebt.

  • Combineer de Blazor client met een beheerde OpenID Connect provider
  • Voeg externe loginproviders, user journeys en API bescherming toe
  • Krijg architectuuradvies, beheer en betaalde technische ondersteuning
FoxIDs documentatie Praat met een expert Start gratis

Je kunt de JWT tool gebruiken om tokens te decoderen en zelfondertekende certificaten te maken met de certificaattool.

Sample application

Zie de sample application voor implementatiedetails.

Installeren

Installeer het ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect NuGet pakket via de Visual Studio package manager.

Of installeer via PowerShell met het volgende commando.

Install-Package ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect

Of via CLI.

dotnet add package ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect

Setup en configuratie

Registreer OpenidConnectPkce, HttpClient en IHttpClientFactory in het Program.cs bestand.

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);
    });
}

Voeg appsettings.json en eventuele appsettings.Development.json configuratiebestanden toe onder wwwroot met de IdentitySettings configuratie. De scope wordt toegevoegd als een spatie gescheiden lijst van waarden.

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

Voeg de bibliotheek namespace @using ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect toe aan Imports.razor.

API calls naar een ander domein

De configuratie kan worden uitgebreid om API calls naar andere domeinen dan het basisdomein te ondersteunen. De vertrouwde AuthorizedUris in de IdentitySettings configuratie worden geconfigureerd op de AccessTokenMessageHandler.

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);
    });
}

Voeg vertrouwde domeinen toe als AuthorizedUris in de IdentitySettings configuratie.

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

Periodieke access token validatie

Stel SessionValidationIntervalSeconds in IdentitySettings (standaard is 300; zet op 0 om uit te schakelen). Wanneer ingeschakeld, OidcAuthenticationStateProvider roept periodiek het UserInfo endpoint aan via OidcHelper.ValidateAccessTokenWithUserInfoEndpoint. Als validatie faalt, wist de provider de session en activeert de logout gebeurtenis zodat de UI de gebruiker kan vragen opnieuw in te loggen.

Call back pagina toevoegen

Voeg een Authentication.razor call back pagina toe in de Pages map met de volgende inhoud.

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

Authorize views

Werk App.razor bij om AuthorizeRouteView/NotAuthorized op te nemen met het OidcRedirectToLogin element. OidcRedirectToLogin start de login flow als de gebruiker geen toegang heeft.

<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>

Daarmee worden zowel het Authorize attribuut als AuthorizeView ondersteund.

Login / logout menu

Voeg LoginDisplay.razor toe met een login / logout menu met de volgende inhoud.

@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 kan aan MainLayout.razor worden toegevoegd zoals dit.

@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

Ontwikkeld in Denemarken. Gehost in Europa.

Ontwikkelaars

  • Documentatie
  • Artikelen
  • Releases
  • Cloud status

Product

  • Prijzen
  • Diensten
  • Uitrol
  • Compliance
  • Trust Center

Bedrijf

  • Over
  • SKI leverancier
  • Neem contact op

Juridisch

  • Servicevoorwaarden
  • Voorwaarden voor self-hosting
  • AVG en gegevensbeschermingsovereenkomst
  • Privacy- en cookiebeleid
© 2026 FoxIDs, versie 2.15.13
GitHub LinkedIn

Cookiekeuzes

FoxIDs gebruikt noodzakelijke cookies om de website te laten werken. Kies Alles accepteren om ook analytische cookies toe te staan die ons helpen het gebruik van de website te begrijpen en de website te verbeteren, of Alles weigeren om alleen noodzakelijke cookies te gebruiken. U kunt uw keuze op elk moment wijzigen in ons privacy- en cookiebeleid.

Lees ons privacy- en cookiebeleid