Требование
Я работаю над продуктом, который, как ожидается, потребует входа пользователя в систему, чтобы иметь возможность предлагать его в Интернете. Для начала идея состоит в том, чтобы просто добавить некоторую оболочку/аннотацию/интеграцию, достаточную для перенаправления только на работающий экземпляр приложения ABP (который также можно разработать независимо для других продуктов) и извлечь информацию о роли пользователя и разрешениях.Я могу перенаправиться в работающее приложение идентификации, пройти аутентификацию и вернуться в основное приложение, но я понятия не имею, как настроить службу ICurrentUser из ABP для получения всех необходимых данных из приложения идентификации. Мы хотим посмотреть, насколько это будет полезно для наших сценариев использования, прежде чем полностью переходить на ABP.
Спецификации
Техническая
Версия
.Net
8.0
ABP
8.3.4
DB
MongoDB 6.0
UI
Blazor Server
Я добавил это в класс модуля в основном проекте:
Код: Выделить всё
[DependsOn(
typeof(AbpAspNetCoreModule),
typeof(AbpAutofacModule)
)]
public class APPAbpModule : AbpModule
{
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
// Most of this is in Program.cs
//var app = context.GetApplicationBuilder();
//var env = context.GetEnvironment();
//if (!env.IsDevelopment())
//{
// app.UseHsts();
//}
//app.UseHttpsRedirection();
//app.UseAuthentication();
//app.UseAuthorization();
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
context
.Services
.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie("Cookies", options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(365);
})
.AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>>
{
options.Authority = "https://localhost:44331";
options.ClientId = "APP_Client";
options.ClientSecret = "";
options.CallbackPath = "/";
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.ResponseType = OpenIdConnectResponseType.Code;
options.SaveTokens = true;
options.SkipUnrecognizedRequests = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.RequireHttpsMetadata = true;
options.MapInboundClaims = false;
options.TokenValidationParameters.NameClaimType = JwtRegisteredClaimNames.Name;
options.TokenValidationParameters.RoleClaimType = "roles";
})
;
}
}
Что мне нужно добавить в основной проект, чтобы ABP мог подключаться к службе идентификации и получать необходимую информацию? Целью здесь является минимальное изменение структуры основного продукта.
Подробнее здесь: https://stackoverflow.com/questions/796 ... ing-abp-in
Мобильная версия