• +45 4949 9091
  • Support
  • Språk
    • Språk
    • English
    • Dansk
    • Svenska
    • Norsk
    • Deutsch
    • Nederlands
    • Polski
    • Français
    • Español
    • Italiano
    • Português
  • Registrer
  • Logg inn
FoxIDs logo
  • Plattform
    • Distribusjon
    • Multi-tenant
    • Identitetslogikk
    • Compliance
  • Bruksområder
    • Oversikt
    • Kunder
    • Ansatte
    • Partnere
    • Kundehistorier
  • Tjenester
  • Priser
  • Docs & verktøy
    • Dokumentasjon
    • Artikler
    • JWT-verktøy
    • SAML 2.0-verktøy
    • Sertifikatverktøy
  • Kontakt oss
  • Registrer
  • Logg inn

ITfoxtec Identity Blazor WebAssembly OpenID Connect

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

Biblioteket støtter login og logout med OpenID Connect ved bruk av PKCE i stedet for en client secret. Det validerer ID tokens i nettleseren ved hjelp av OpenID Provider discovery dokumentet.

Komponenten håndterer automatisk token og session oppdateringer med refresh tokens når offline_access scopet er spesifisert.

Firmanavnet ITfoxtec er endret til FoxIDs men komponentene vil foreløpig beholde ITfoxtec navnet som en del av komponentnavnet.

Støtte

Still spørsmål på Stack Overflow og tagg med 'itfoxtec-identity-blazor'.

Send e-post til support@foxids.com med en lenke til spørsmålet ditt.

Pakke

Utgivelser NuGet ITfoxtec Identity Blazor WebAssembly OpenID Connect

Kode og lisens

GitHub kode og sample Åpen kildekode lisens

Sample application

Se sample application.

Sample applikasjonen er konfigurert til å autentisere med foxids.com med testbruker test1@foxids.com eller test2@foxids.com og passord TestAccess!

For mer informasjon om European Identity Services FoxIDs, se FoxIDs dokumentasjon.

Støttede .NET versjoner:

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

IdP konfigurasjon

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

API kall til et annet domene

Konfigurasjonen kan utvides for å støtte API kall til andre domener enn base domenet. De betrodde AuthorizedUris i IdentitySettings konfigurasjonen konfigureres på AccessTokenMessageHandler.

Legg til betrodde domener som AuthorizedUris i IdentitySettings konfigurasjonen.

Når FoxIDs er relevant

Bruk open source Blazor biblioteket når du trenger en JavaScript fri OpenID Connect klient i WebAssembly appen din. FoxIDs er relevant når du også trenger en hostet identitetsleverandør, brukeradministrasjon, føderasjon og produksjonsstøtte rundt klientflyten.

  • Koble Blazor klienten med en administrert OpenID Connect leverandør
  • Legg til eksterne innloggingsleverandører, brukerreiser og API beskyttelse
  • Få arkitekturrådgivning, drift og betalt teknisk support
FoxIDs dokumentasjon Snakk med en ekspert Kom i gang gratis

Du kan bruke JWT verktøyet til å dekode tokens og lage selvsignerte sertifikater med sertifikatverktøyet.

Sample application

Se sample application for implementeringsdetaljer.

Installer

Installer ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect NuGet pakken via Visual Studio pakke manageren.

Eller installer via PowerShell med følgende kommando.

Install-Package ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect

Eller via CLI.

dotnet add package ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect

Oppsett og konfigurasjon

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

Legg til appsettings.json og eventuelle appsettings.Development.json konfigurasjonsfiler under wwwroot med IdentitySettings konfigurasjonen. Scopet legges til som en space separert liste med verdier.

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

Legg til bibliotekets namespace @using ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect i Imports.razor.

API kall til et annet domene

Konfigurasjonen kan utvides for å støtte API kall til andre domener enn base domenet. De betrodde AuthorizedUris i IdentitySettings konfigurasjonen 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);
    });
}

Legg til betrodde domener som AuthorizedUris i IdentitySettings konfigurasjonen.

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

Periodisk access token validering

Sett SessionValidationIntervalSeconds i IdentitySettings (standard er 300; sett til 0 for å deaktivere). Når det er aktivert, OidcAuthenticationStateProvider kaller periodisk UserInfo endpointet via OidcHelper.ValidateAccessTokenWithUserInfoEndpoint. Hvis valideringen mislykkes, rydder provideren sesjonen og utløser logout hendelsen slik at UI kan be brukeren om å logge inn igjen.

Legg til call back side

Legg til en Authentication.razor call back side i Pages mappen med følgende innhold.

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

Authorize views

Oppdater App.razor for å inkludere AuthorizeRouteView/NotAuthorized med OidcRedirectToLogin elementet. OidcRedirectToLogin starter login flyten hvis brukeren ikke har tilgang.

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

Dermed støttes både Authorize attributtet og AuthorizeView.

Login / logout meny

Legg til LoginDisplay.razor med en login / logout meny med følgende innhold.

@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 legges til i MainLayout.razor slik.

@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

Utviklet i Danmark. Driftet i Europa.

Utviklere

  • Dokumentasjon
  • Artikler
  • Utgivelser
  • Skystatus

Produkt

  • Priser
  • Tjenester
  • Distribusjon
  • Compliance
  • Tillitssenter

Selskap

  • Om
  • SKI-leverandør
  • Kontakt oss

Juridisk

  • Bruksvilkår
  • Vilkår for selvhosting
  • GDPR og databeskyttelsesavtale
  • Personvern- og informasjonskapselpolicy
© 2026 FoxIDs, versjon 2.15.19
GitHub LinkedIn

Valg av cookies

FoxIDs bruker nødvendige cookies for at nettstedet skal fungere. Velg Godta alle for også å tillate analysecookies som hjelper oss med å forstå og forbedre nettstedet, eller Avvis alle for å bruke bare nødvendige cookies. Du kan når som helst endre valget ditt i personvern- og cookiepolicyen vår.

Les personvern- og cookiepolicyen