Version
Language

OpenIddict Angular UI Migration Guide

Angular Project

  • In environment.ts and environment.prod.ts add a trailing slash at the end of the issuer:

    oAuthConfig: {
        issuer: 'https://localhost:44377/',
        ...
      },
    

Http.Api.Host (Non-Separated IdentityServer)

  • In MyApplication.HttpApi.Host.csproj replace project references:

    <PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="6.0.*" />
    <PackageReference Include="Volo.Abp.Account.Web.IdentityServer" Version="6.0.*" />
    

    with

    <PackageReference Include="Volo.Abp.Account.Web.OpenIddict" Version="6.0.*" />
    
  • In the MyApplicationHttpApiHostModule.cs replace usings and module dependencies:

    using Volo.Abp.AspNetCore.Authentication.JwtBearer;
    ...
    typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
    typeof(AbpAccountWebIdentityServerModule),
    

    with

    using OpenIddict.Validation.AspNetCore;
    ...
    typeof(AbpAccountWebOpenIddictModule),
    
  • In the MyApplicationHttpApiHostModule.cs add PreConfigureServices like below with your application name as the audience:

    public override void PreConfigureServices(ServiceConfigurationContext context)
    {
        PreConfigure<OpenIddictBuilder>(builder =>
        {
            builder.AddValidation(options =>
            {
                options.AddAudiences("MyApplication"); // Replace with your application name
                options.UseLocalServer();
                options.UseAspNetCore();
            });
        });
    }
    
  • In the MyApplicationHttpApiHostModule.cs ConfigureServices method, replace the method call:

    From ConfigureAuthentication(context, configuration); to ConfigureAuthentication(context); and update the method as:

    private void ConfigureAuthentication(ServiceConfigurationContext context)
    {
        context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme);
    }
    
  • In the MyApplicationHttpApiHostModule.cs OnApplicationInitialization method, replace the midware:

    app.UseJwtTokenMiddleware();
    app.UseIdentityServer();
    

    with

    app.UseAbpOpenIddictValidation();
    
  • In the MyApplicationHttpApiHostModule.cs OnApplicationInitialization method, delete c.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); in app.UseAbpSwaggerUI options configurations which is no longer needed.

  • In appsettings.json delete SwaggerClientSecret from the AuthServer section like below:

    "AuthServer": {
        "Authority": "https://localhost:44345",
        "RequireHttpsMetadata": "false",
        "SwaggerClientId": "MyApplication_Swagger"
    },
    

Http.Api.Host (Separated IdentityServer)

  • In the MyApplicationHttpApiHostModule.cs OnApplicationInitialization method, delete c.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); in app.UseAbpSwaggerUI options configurations which is no longer needed.

  • In appsettings.json delete SwaggerClientSecret from the AuthServer section like below:

    "AuthServer": {
        "Authority": "https://localhost:44345",
        "RequireHttpsMetadata": "false",
        "SwaggerClientId": "MyApplication_Swagger"
    },
    

IdentityServer

This project is renamed to AuthServer after v6.0.0. You can also refactor and rename your project to AuthServer for easier updates in the future.

  • In MyApplication.IdentityServer.csproj replace project references:

    <PackageReference Include="Volo.Abp.Account.Web.IdentityServer" Version="6.0.*" />
    

    with

    <PackageReference Include="Volo.Abp.Account.Web.OpenIddict" Version="6.0.*" />
    
  • In the MyApplicationIdentityServerModule.cs replace usings and module dependencies:

    typeof(AbpAccountWebIdentityServerModule),
    

    with

    typeof(AbpAccountWebOpenIddictModule),
    
  • In the MyApplicationIdentityServerModule.cs add PreConfigureServices like below with your application name as the audience:

    public override void PreConfigureServices(ServiceConfigurationContext context)
    {
        PreConfigure<OpenIddictBuilder>(builder =>
        {
            builder.AddValidation(options =>
            {
                options.AddAudiences("MyApplication"); // Replace with your application name
                options.UseLocalServer();
                options.UseAspNetCore();
            });
        });
    }
    
  • In the MyApplicationIdentityServerModule.cs OnApplicationInitialization method, remove the midware:

    app.UseIdentityServer();
    
  • To use the new AuthServer page, replace Index.cshtml.cs with AuthServer Index.cshtml.cs and Index.cshtml file with AuthServer Index.cshtml and rename Ids2OpenId with your application namespace.

    Note: It can be found under the Pages folder.

See Also

Was this page helpful?
Please make a selection.
Thank you for your valuable feedback!

Please note that although we cannot respond to feedback, our team will use your comments to improve the experience.

In this document
Mastering ABP Framework Book
Mastering ABP Framework

This book will help you gain a complete understanding of the framework and modern web application development techniques.