Hello, I’m trying to use the Okta.AspNet libraries (pre-Core) and the redirect/Okta-hosted model. My primary issue is that the middleware is assigning the “Name” property of User.Identity as “{firstname} {lastname}” and the existing application requires the User.Identity.Name to be the username. This appears to be coming back to me from Okta (in some form, at least) in the claims as “preferred_username” but all my attempts to map the value appropriately have been fruitless. I’m instantiating as follows, and I’m grateful for any assistance you can provide.
app.UseOktaMvc(new OktaMvcOptions()
{
GetClaimsFromUserInfoEndpoint = true,
OktaDomain = ConfigurationManager.AppSettings["okta:OktaDomain"],
ClientId = ConfigurationManager.AppSettings["okta:ClientId"],
ClientSecret = ConfigurationManager.AppSettings["okta:ClientSecret"],
AuthorizationServerId = string.Empty,
RedirectUri = ConfigurationManager.AppSettings["okta:RedirectUri"],
PostLogoutRedirectUri = ConfigurationManager.AppSettings["okta:PostLogoutRedirectUri"],
Scope = new List<string> { "openid", "email", "profile" },
OpenIdConnectEvents = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenReceived = (context) =>
{
context.Options.TokenValidationParameters.NameClaimType = "preferred_username";
return Task.CompletedTask;
}
},
});