I've read many post about but I think the problem of email mapping is still alive. AspnetZero configured to use Abp.Io as Oaut2 server.
Abp.Io configuration says that email is returned (and is true)
{
"issuer": "https://localhost:44322",
"jwks_uri": "https://localhost:44322/.well-known/openid-configuration/jwks",
"authorization_endpoint": "https://localhost:44322/connect/authorize",
"token_endpoint": "https://localhost:44322/connect/token",
"userinfo_endpoint": "https://localhost:44322/connect/userinfo",
"end_session_endpoint": "https://localhost:44322/connect/endsession",
"check_session_iframe": "https://localhost:44322/connect/checksession",
"revocation_endpoint": "https://localhost:44322/connect/revocation",
"introspection_endpoint": "https://localhost:44322/connect/introspect",
"device_authorization_endpoint": "https://localhost:44322/connect/deviceauthorization",
"frontchannel_logout_supported": true,
"frontchannel_logout_session_supported": true,
"backchannel_logout_supported": true,
"backchannel_logout_session_supported": true,
"scopes_supported": ["openid", "profile", "email", "address", "phone", "role", "AccountService", "IdentityService", "AdministrationService", "SaasService", "ProductService", "offline_access"],
"claims_supported": ["sub", "birthdate", "family_name", "gender", "given_name", "locale", "middle_name", "name", "nickname", "picture", "preferred_username", "profile", "updated_at", "website", "zoneinfo", "email", "email_verified", "address", "phone_number", "phone_number_verified", "role"],
"grant_types_supported": ["authorization_code", "client_credentials", "refresh_token", "implicit", "password", "urn:ietf:params:oauth:grant-type:device_code", "LinkLogin", "Impersonation"],
"response_types_supported": ["code", "token", "id_token", "id_token token", "code id_token", "code token", "code id_token token"],
"response_modes_supported": ["form_post", "query", "fragment"],
"token_endpoint_auth_methods_supported": ["client_secret_basic", "client_secret_post"],
"id_token_signing_alg_values_supported": ["RS256"],
"subject_types_supported": ["public"],
"code_challenge_methods_supported": ["plain", "S256"],
"request_parameter_supported": true
}
The email address is returned after a succesfull login
The email is not mapped in database
Open id configuration:
"OpenId": {
"IsEnabled": "true",
"ClientId": "UnoIns",
"Authority": "https://localhost:44322",
"LoginUrl": "https://localhost:44322/connect/authorize",
"ValidateIssuer": "false",
"ClaimsMapping": [
{
"claim": "name",
"key": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
},
{
"claim": "email",
"key": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
},
{
"claim": "unique_name",
"key": "preferred_username"
}
]
},
Angular configuration:
private getOpenIdConnectConfig(loginProvider: ExternalLoginProvider): AuthConfig {
let authConfig = new AuthConfig();
authConfig.loginUrl = loginProvider.additionalParams['LoginUrl'];
authConfig.issuer = loginProvider.additionalParams['Authority'];
authConfig.skipIssuerCheck = loginProvider.additionalParams['ValidateIssuer'] === 'false';
authConfig.clientId = loginProvider.clientId;
authConfig.responseType = 'id_token';
authConfig.redirectUri = window.location.origin + '/account/login';
authConfig.scope = 'openid profile email';
authConfig.requestAccessToken = false;
return authConfig;
}
What I'm missing?
Thank you.
Hi, I need to register users with a space (one o more) in the user name. This is a constraint and cannot be changed because the login auth is external to Abp. Where can I configure Abp to achive this requirement? This is the error: (Abp.UI.UserFriendlyException: User name 'DE ROSSI01' is invalid, can only contain letters or digits.
Thank you.
We need to configure Quartz to use SQL storage, but we can not store the connection string in the static quartz.config
file. In the AbpQuartzModule.PreInitialize()
the AbpQuartzConfiguration
is registred to resolve from the StdSchedulerFactory.GetDefaultScheduler()
, but we would need to register our own implementation of IAbpQuartzConfiguration
to create a scheduler with our configuration.
class AbpCustomQuartzConfiguration : IAbpQuartzConfiguration
{
public IScheduler Scheduler
{
get
{
var builder = SchedulerBuilder.Create();
builder.UsePersistentStore(options =>
{
options.UseClustering();
options.UseSqlServer(sqlServerOptions =>
{
sqlServerOptions.ConnectionString = "...";
});
options.UseSerializer<JsonObjectSerializer>();
});
builder.SchedulerId = StdSchedulerFactory.AutoGenerateInstanceId;
builder.MisfireThreshold = TimeSpan.FromMinutes(5);
var scheduler = builder.BuildScheduler().Result;
scheduler.JobFactory = new AbpQuartzJobFactory(IocManager.Instance);
scheduler.ListenerManager.AddJobListener(IocManager.Instance.Resolve<IJobListener>());
return scheduler;
}
}
}
How can we accomplish this?
Hi, I need to user the MediatR library but I have a problem with the registration of interfaces. My code is loaded through plugins directory so I need to manually discover the assemblies because are not referenced directly. In the ConfigureServices, just after services.AddAbp<... I have this code:
var pluginTypes = AppDomain.CurrentDomain.GetAssemblies() .AsParallel() .Where(a => a.FullName.StartsWith("MyDll.")) .SelectMany(x => x.GetTypes()) .ToArray(); services.AddMediatR(pluginTypes);
But at this point, my plugins aren't not loaded yet and so AddMediatR fails.
I do the same with SignalR but it works because is after app.UseAbp in Configure method.
So, how can I register my plugins to MediatoR ?
Thank you.
I've enabled IdentityServer and the login process works fine with user and password but if a user has ShouldChangePassword flag, IdentityServer allow the authentication. Which are the property in common with AspNetZero and IdentityServer ?
Thank you
Hi, I have many clients ( devices and server to server services) that need to connect with AbpZero (version >= 9.1). I have enabled identityserver4 with "client_credentials" as AllowedGrantTypes but Abp don't recognize as autheticated the token issued.
The problem is similiar to https://support.aspnetzero.com/QA/Questions/5145/API-call-requiring--Authirization-by-using-IdentityServer
These clients don't need user and password and I don't want to create many fake users beacuse isn't required permissions or roles. Only authentication is required. How can I obtain this requirements?
Thank you
I have enabled IdentityServer4 integration and I've noted that this issue is still present. https://support.aspnetzero.com/QA/Questions/7673/IDX10501-Signature-validation-failed---when-attempting-to-run-ConsoleApiClient
During debug sessions is very annoying beacuse ValidateToken in FrameworkJwtSecurityTokenHandler breaks the flow every time for failed validation. Have you solved it somehow?
Thank you
Hi, I need to run two or more instance of ABP (AspNetCore + Angular version >=9.1.0) hosted in Azure AppService (Docker or files deploy) with autobalancing. There are many things to consider when two instance are running simultaneously. AspnetZero provide a out-of-box solution for shared cache with native Redis support. But what about background and recurring jobs? And what about SignalR ? These services cannot run twice in the same time otherwise data locks, data duplicates and many other problems can happen.
How do you sugguest to setup AspNetZero to support this scenario? Thank you for your advices
Hi, we are planning to migrate from version 7.x to 9.x (core 2.2 => core 3.1). As there are many improvements and changes , I need to evaluate all the changes to the framework. The log at https://docs.aspnetzero.com/en/common/latest/Change-Logs says that there is a full version but I don't know where is on github. Can you provide the link to the full change log ?
Thank you
Hi, has you know, when Windows 10 is shutdown, actually it enters in a semi hibernation state. When it is turned on again, all the events on modules (PreInitialize, Initialize, PostInitilized) are not raised. Worse, all quartz's triggers are still alives and so we loose many events. We have a very complex scenario and a dedicated procedure during initilization take care of "what should had been happened" while the server was turned off and after, creates the trigger. (Is not possible to use misfire configuration and we need the all triggers are destroyed) But, if the events never happens, we have a problems.
Do you have some advices about this "behaviour" ? How to recognize a shutdown and restart all the modules ?
Thank you.