You can use Language management as a different microservice. There is Extracting a Module as Microservice guide showing the Audit Logging module in particular however you can use the similar steps for other modules as well.
We don't have a default solution or a support for this kind of custom authentication flow. And custom authentication flows are related to openid providers mainly (identityServer in this case). You can implement your own flows as you like by using the openid providers (identityServer) .well-known/openid-configuration endpoints.
You can check https://yourAuthServer.com/.well-known/openid-configuration and use the endpoints in your blazor application like
Blazor Server application uses hybrid flow for authentication as it is the recommended approach. This means you need to be redirected to Authentication Server, get authenticated and then redirected back.
The LDAP or any other external connections should be configured at the IdentityServer since it is the external openid provider.
If you want to use login inside the blazor server application, the wheel is already discovered; you can use non-tiered application template which contains the identityserver inside the application..
Do I need to implement https://community.abp.io/posts/patch-for-chrome-login-issue-identityserver4-samesite-cookie-problem-weypwp3n ? Or was this fixed in 5.2 ?
It is not related to ABP so It is not something we can fix.
We also had problems with it so we implemented it: https://github.com/abpframework/eShopOnAbp/blob/d261dd9c4f36ce68790458980d9c7b4fbe2fb268/apps/auth-server/src/EShopOnAbp.AuthServer/SameSiteCookiesServiceCollectionExtensions.cs
Thank you, that's very helpful, you should reference that in the README.MD file under "Deploying in Production". How are you managing the Certificate is it using Let's Encrypt Cert Manager or is it a full-blown SAN / Wildcard Cert?
Thanks.
We use Let's Encrypt in the sample. It is declared in each ingress as you can check https://github.com/abpframework/eShopOnAbp/blob/d261dd9c4f36ce68790458980d9c7b4fbe2fb268/etc/k8s/eshoponabp/charts/administration/templates/administration-ingress.yaml#L10
It seems to be related to HTTPS certificates.
We have a sample running configuration on Kubernetes Helm and docker-compose at https://github.com/abpframework/eShopOnAbp/tree/main/etc.
The different tables are many-to-many tables. They are represented as different tables in EfCore while in MongoDB it is in the related aggregate root.
Hello,
We provide helm charts for microservice templates. You can also check https://github.com/abpframework/eShopOnAbp/tree/main/etc/k8s/eshoponabp sample that has both publish scripts, domain names and values.azure.yaml
with the deployed azure configurations.
They shouldn't be missing, we add MongoDB for all modules.
You can check Commercial NuGet packages at https://abp.io/Packages. They are not listed at https://www.nuget.org.
Some of the commercial modules are using the open-source MongoDB layer while some of them can use the commercial layer.
Q1: What are the existing interface for MongoDB that is equivalent to IPermissionManagementDbContext, ISettingManagementDbContext, etc.. that inherits IAbpMongoDbContext?
You need to use the relevant nuget package. For permission management It is Volo.Abp.PermissionManagement.MongoDB instead of Volo.Abp.PermissionManagement.EntityFrameworkCore. Same goes for all the modules.
Q2: The model builder configuration here are from Volo.Abp.*.EntityFrameworkCore namespace, are there also ones equivalent for MongoDB?
Yes, there are. You need to use the correct NuGet package as I have mentioned above.
IdentityService.MongoDB.csproj should contain packages as below:
<ItemGroup>
<PackageReference Include="Volo.Abp.MongoDB" Version="5.3.0" />
<PackageReference Include="Volo.Abp.Identity.Pro.MongoDB" Version="5.3.0" />
<PackageReference Include="Volo.Abp.IdentityServer.MongoDB" Version="5.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MyFoodStore.IdentityService.Domain\MyFoodStore.IdentityService.Domain.csproj" />
</ItemGroup>
IdentityServiceDbContext should look like:
[ConnectionStringName(IdentityServiceDbProperties.ConnectionStringName)]
public class IdentityServiceDbContext: AbpMongoDbContext, IIdentityProMongoDbContext, IAbpIdentityServerMongoDbContext
{
public IMongoCollection<IdentityUser> Users { get; set; }
public IMongoCollection<IdentityRole> Roles { get; set; }
public IMongoCollection<IdentityClaimType> ClaimTypes { get; set; }
public IMongoCollection<OrganizationUnit> OrganizationUnits { get; set; }
public IMongoCollection<IdentitySecurityLog> SecurityLogs { get; set; }
public IMongoCollection<IdentityLinkUser> LinkUsers { get; set; }
public IMongoCollection<ApiResource> ApiResources { get; set; }
public IMongoCollection<ApiScope> ApiScopes { get; set; }
public IMongoCollection<Client> Clients { get; set; }
public IMongoCollection<IdentityResource> IdentityResources { get; set; }
public IMongoCollection<PersistedGrant> PersistedGrants { get; set; }
public IMongoCollection<DeviceFlowCodes> DeviceFlowCodes { get; set; }
protected override void CreateModel(IMongoModelBuilder modelBuilder)
{
base.CreateModel(modelBuilder);
modelBuilder.ConfigureIdentityPro();
modelBuilder.ConfigureIdentityServer();
}
}
You need to use the correct packages.