mirror of https://github.com/abpframework/abp.git
committed by
GitHub
2 changed files with 76 additions and 4 deletions
@ -0,0 +1,76 @@ |
|||||
|
# Migration Identity Server to OpenIddict Guides |
||||
|
|
||||
|
The startup template will use `OpenIddict` as the auth server by default since version 6.x. |
||||
|
|
||||
|
We are not removing IDS packages and will continue to release new versions of IDS related Nuget/NPM packages. That means you won't have an issue while upgrading to v6.0 (when it is released). We will continue to fix bugs in our packages for a while. ABP 7.0 will be based on .NET 7. If IDS continue to work with .NET 7, we will continue to ship nuget packages for our IDS integration. |
||||
|
|
||||
|
BTW, IDS itself is canceling support for the open source IDS in the end of this year. They are moved to Duende IDS you know. We won't migrate to Duende IDS. |
||||
|
|
||||
|
## Steps |
||||
|
|
||||
|
* Update all `Volo's` packages to `6.x`. |
||||
|
* Replace all `Volo's` `IdentityServer.*` packages with corresponding `OpenIddict.*` packages. eg `Volo.Abp.IdentityServer.Domain` to `Volo.Abp.OpenIddict.Domain`, `Volo.Abp.Account.Web.IdentityServer` to `Volo.Abp.Account.Web.OpenIddict`. |
||||
|
* Replace all `IdentityServer` modules with corresponding `OpenIddict` modules. eg `AbpIdentityServerDomainModule` to `AbpOpenIddictDomainModule`, `AbpAccountWebIdentityServerModule` to `AbpAccountWebOpenIddictModule`. |
||||
|
* Rename the `ConfigureIdentityServer` to `ConfigureOpenIddict` in your `ProjectNameDbContext` class. |
||||
|
* Remove the `UseIdentityServer` and add `UseAbpOpenIddictValidation` after `UseAuthentication`. |
||||
|
* Add follow code to your startup module. |
||||
|
```cs |
||||
|
public override void PreConfigureServices(ServiceConfigurationContext context) |
||||
|
{ |
||||
|
PreConfigure<OpenIddictBuilder>(builder => |
||||
|
{ |
||||
|
builder.AddValidation(options => |
||||
|
{ |
||||
|
options.AddAudiences("ProjectName"); // Change ProjectName to your project name. |
||||
|
options.UseLocalServer(); |
||||
|
options.UseAspNetCore(); |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
``` |
||||
|
* If your project is not separate AuthServer please also add `ForwardIdentityAuthenticationForBearer` |
||||
|
```cs |
||||
|
private void ConfigureAuthentication(ServiceConfigurationContext context) |
||||
|
{ |
||||
|
context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme); |
||||
|
} |
||||
|
``` |
||||
|
* Remove the `IdentityServerDataSeedContributor` from the `Domain` project. |
||||
|
* Create a new version of the project, with the same name as your existing project. |
||||
|
* Copy the `ProjectName.Domain\OpenIddict\OpenIddictDataSeedContributor.cs` of new project into your project and update `appsettings.json` base on `ProjectName.DbMigrator\appsettings.json`, Be careful to change the port number. |
||||
|
* Copy the `Index.cshtml.cs` and `Index.cs` of new project to your project if you're using `IClientRepository` in `IndexModel`. |
||||
|
* Update the scope name from `role` to `roles` in `AddAbpOpenIdConnect` method. |
||||
|
* Remove `options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]);` from `HttpApi.Host` project. |
||||
|
* AuthServer no longer requires `JWT bearer authentication`. Please remove it. eg `AddJwtBearer` and `UseJwtTokenMiddleware`. |
||||
|
* Try compiling the project in the IDE and following the errors to remove and reference the code and namespaces. |
||||
|
* Add migrations and update the database if you are using EF Core as the database provider. |
||||
|
|
||||
|
## Module packages |
||||
|
### Open source side |
||||
|
* Volo.Abp.OpenIddict.Domain (`AbpOpenIddictDomainModule`) |
||||
|
* Volo.Abp.OpenIddict.Domain.Shared (`AbpOpenIddictDomainSharedModule`) |
||||
|
* Volo.Abp.OpenIddict.EntityFrameworkCore (`AbpOpenIddictEntityFrameworkCoreModule`) |
||||
|
* Volo.Abp.OpenIddict.AspNetCore (`AbpOpenIddictAspNetCoreModule`) |
||||
|
* Volo.Abp.OpenIddict.MongoDB (`AbpOpenIddictMongoDbModule`) |
||||
|
* Volo.Abp.Account.Web.OpenIddict (`AbpAccountWebOpenIddictModule`) |
||||
|
* Volo.Abp.PermissionManagement.Domain.OpenIddict (`AbpPermissionManagementDomainOpenIddictModule`) |
||||
|
|
||||
|
### Commercial side |
||||
|
* Volo.Abp.OpenIddict.Pro.Application.Contracts (`AbpOpenIddictProApplicationContractsModule`) |
||||
|
* Volo.Abp.OpenIddict.Pro.Application (`AbpOpenIddictProApplicationModule`) |
||||
|
* Volo.Abp.OpenIddict.Pro.HttpApi.Client (`AbpOpenIddictProHttpApiClientModule`) |
||||
|
* Volo.Abp.OpenIddict.Pro.HttpApi (`AbpOpenIddictProHttpApiModule`) |
||||
|
* Volo.Abp.OpenIddict.Pro.Blazor(`AbpOpenIddictProBlazorModule`) |
||||
|
* Volo.Abp.OpenIddict.Pro.Blazor.Server (`AbpOpenIddictProBlazorServerModule`) |
||||
|
* Volo.Abp.OpenIddict.Pro.Blazor.WebAssembly (`AbpOpenIddictProBlazorWebAssemblyModule`) |
||||
|
* Volo.Abp.OpenIddict.Pro.Web (`AbpOpenIddictProWebModule`) |
||||
|
|
||||
|
## Source code of samples and module |
||||
|
|
||||
|
[Open source tiered & separate auth server application migrate Identity Server to OpenIddct](https://github.com/abpframework/abp-samples/tree/master/Ids2OpenId) |
||||
|
|
||||
|
[Commercial tiered & separate auth server application migrate Identity Server to OpenIddct](https://abp.io/Account/Login?returnUrl=/api/download/samples/Ids2OpenId) |
||||
|
|
||||
|
[OpenIddict module document](https://docs.abp.io/en/abp/6.0/Modules/OpenIddict) |
||||
|
|
||||
|
[OpenIddict module source code](https://github.com/abpframework/abp/tree/rel-6.0/modules/openiddict) |
||||
Loading…
Reference in new issue