• +45 4949 9091
  • Support
  • Sprog
    • Sprog
    • English
    • Dansk
    • Svenska
    • Norsk
    • Deutsch
    • Nederlands
    • Polski
    • Français
    • Español
    • Italiano
    • Português
  • Tilmeld
  • Log ind
FoxIDs logo
  • Docs & værktøjer
    • Dokumentation
    • Artikler
    • JWT-værktøj
    • SAML 2.0 værktøj
    • Certifikatværktøj
  • Anvendelser
    • Oversigt
    • Kunder
    • Medarbejdere
    • Partnere
    • Kundehistorier
  • Tjenester
  • Platform
    • Deployering
    • Multi-tenant
    • Identitetslogik
    • Compliance
  • Priser
  • Tilmeld
  • Log ind

ITfoxtec Identity Blazor WebAssembly OpenID Connect

ITfoxtec Identity Blazor WebAssembly OpenID Connect er et JavaScript fri OpenID Connect PKCE bibliotek til Blazor WebAssembly.

Biblioteket understøtter login og logout med OpenID Connect ved brug af PKCE i stedet for en client secret. Det validerer ID tokens i browseren ved hjælp af OpenID Provider discovery dokumentet.

Komponenten håndterer automatisk token og session opdateringer med refresh tokens, når offline_access scopet er angivet.

Virksomhedsnavnet ITfoxtec er ændret til FoxIDs men komponenterne vil foreløbigt beholde ITfoxtec navnet som en del af komponentnavnet.

Support

Stil spørgsmål på Stack Overflow og tag med 'itfoxtec-identity-blazor'.

Send en email til support@foxids.com med et link til dit spørgsmål.

Pakke

Udgivelser NuGet ITfoxtec Identity Blazor WebAssembly OpenID Connect

Kode og licens

GitHub kode og sample Open source licens

Sample application

Se venligst sample application.

Sample applikationen er konfigureret til at autentificere med foxids.com med testbruger test1@foxids.com eller test2@foxids.com og adgangskode TestAccess!

For mere information om de europæiske Identity Services FoxIDs, se venligst FoxIDs dokumentation.

Understøttede .NET versioner:

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

IdP konfiguration

  • Response typer: code
  • Aktivér PKCE: true
  • Login call back: ...base URL.../authentication/login_callback
  • Logout call back: ...base URL.../authentication/logout_callback

API kald til et andet domæne

Konfigurationen kan udvides til at understøtte API kald til andre domæner end base domænet. De betroede AuthorizedUris i IdentitySettings konfigurationen konfigureres på AccessTokenMessageHandler.

Tilføj betroede domæner som AuthorizedUris i IdentitySettings konfigurationen.

Når FoxIDs er relevant

Brug open source Blazor biblioteket, når du har brug for en JavaScript fri OpenID Connect klient i din WebAssembly app. FoxIDs er relevant, når du også har brug for en hostet identitetsudbyder, brugeradministration, federation og produktionssupport omkring klientflowet.

  • Kombinér Blazor klienten med en administreret OpenID Connect udbyder
  • Tilføj eksterne loginudbydere, brugerrejser og API beskyttelse
  • Få arkitekturrådgivning, drift og betalt teknisk support
FoxIDs dokumentation Tal med en ekspert Kom gratis i gang

Du kan bruge JWT værktøjet til at afkode tokens og oprette selvsignerede certifikater med certifikatværktøjet.

Sample application

Se venligst sample application for implementeringsdetaljer.

Installér

Installér ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect NuGet pakken via Visual Studio pakkemanageren.

Eller installér via PowerShell med følgende kommando.

Install-Package ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect

Eller via CLI.

dotnet add package ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect

Opsætning og konfiguration

Registrer OpenidConnectPkce, HttpClient og IHttpClientFactory i Program.cs filen.

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

Tilføj appsettings.json og eventuelle appsettings.Development.json konfigurationsfiler under wwwroot med IdentitySettings konfigurationen. Scopet tilføjes som en space separeret liste af værdier.

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

Tilføj bibliotekets namespace @using ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect til Imports.razor.

API kald til et andet domæne

Konfigurationen kan udvides til at understøtte API kald til andre domæner end base domænet. De betroede AuthorizedUris i IdentitySettings konfigurationen konfigureres på 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);
    });
}

Tilføj betroede domæner som AuthorizedUris i IdentitySettings konfigurationen.

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

Periodisk access token validering

Angiv SessionValidationIntervalSeconds i IdentitySettings (standard er 300; sæt til 0 for at deaktivere). Når det er aktiveret, OidcAuthenticationStateProvider kalder periodisk UserInfo endpointet via OidcHelper.ValidateAccessTokenWithUserInfoEndpoint. Hvis valideringen fejler, rydder provideren sessionen og udløser logout eventen, så UI'et kan bede brugeren om at logge ind igen.

Tilføj call back side

Tilføj en Authentication.razor call back side i Pages mappen med følgende indhold.

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

Authorize views

Opdater App.razor til at inkludere AuthorizeRouteView/NotAuthorized med OidcRedirectToLogin elementet. OidcRedirectToLogin starter login flowet, hvis brugeren ikke har adgang.

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

Derved understøttes både Authorize attributten og AuthorizeView.

Login / logout menu

Tilføj LoginDisplay.razor med en login / logout menu med følgende indhold.

@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 tilføjes til MainLayout.razor sådan her.

@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

Udviklet i Danmark. Hostet i Europa.

Udviklere

  • Dokumentation
  • Artikler
  • Udgivelser
  • Cloud-status

Produkt

  • Priser
  • Tjenester
  • Deployering
  • Compliance
  • Tillidscenter

Virksomhed

  • Om
  • SKI-leverandør
  • Kontakt os

Juridisk

  • Brugsbetingelser
  • Vilkår for selvhosting
  • GDPR og databeskyttelsesaftale
  • Privatlivs- og cookiepolitik
© 2026 FoxIDs, version 2.15.13
GitHub LinkedIn

Valg af cookies

FoxIDs bruger nødvendige cookies for at få hjemmesiden til at fungere. Vælg Acceptér alle for også at tillade statistikcookies, som hjælper os med at forstå og forbedre hjemmesiden, eller Afvis alle for kun at bruge nødvendige cookies. Du kan til enhver tid ændre dit valg i vores privatlivs- og cookiepolitik.

Læs privatlivs- og cookiepolitikken