Browse Source

Use `PreferredUsername` instead of `Name` for UserName clasim.

pull/12624/head
maliming 4 years ago
parent
commit
1d859069b9
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 10
      modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs
  2. 7
      modules/openiddict/app/OpenIddict.Demo.Server/Program.cs
  3. 2
      modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs
  4. 2
      modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs
  5. 6
      modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs
  6. 2
      modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs
  7. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs

10
modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs

@ -1,7 +1,10 @@
using System.Text;
using Microsoft.EntityFrameworkCore;
using Microsoft.IdentityModel.Tokens;
using OpenIddict.Abstractions;
using OpenIddict.Demo.Server.EntityFrameworkCore;
using OpenIddict.Server.AspNetCore;
using OpenIddict.Validation.AspNetCore;
using Volo.Abp;
using Volo.Abp.Account;
using Volo.Abp.Account.Web;
@ -107,6 +110,13 @@ public class OpenIddictServerModule : AbpModule
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.ConfigureApplicationCookie(options =>
{
options.ForwardDefaultSelector = ctx => ctx.Request.Path.StartsWithSegments("/api")
? OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme
: null;
});
Configure<AbpOpenIddictAspNetCoreOptions>(options =>
{
options.AddDevelopmentEncryptionAndSigningCertificate = false;

7
modules/openiddict/app/OpenIddict.Demo.Server/Program.cs

@ -41,13 +41,6 @@ builder.Services.Configure<AbpLocalizationOptions>(options =>
// options.TokenValidationParameters.TokenDecryptionKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80"));
// });
// builder.Services.ConfigureApplicationCookie(options =>
// {
// options.ForwardDefaultSelector = ctx => ctx.Request.Path.StartsWithSegments("/api")
// ? OtherScheme
// : null;
// });
await builder.AddApplicationAsync<OpenIddictServerModule>();
var app = builder.Build();

2
modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs

@ -40,7 +40,7 @@ public class AbpOpenIddictAspNetCoreModule : AbpModule
{
AbpClaimTypes.UserId = OpenIddictConstants.Claims.Subject;
AbpClaimTypes.Role = OpenIddictConstants.Claims.Role;
AbpClaimTypes.UserName = OpenIddictConstants.Claims.Name;
AbpClaimTypes.UserName = OpenIddictConstants.Claims.PreferredUsername;
AbpClaimTypes.Name = OpenIddictConstants.Claims.GivenName;
AbpClaimTypes.SurName = OpenIddictConstants.Claims.FamilyName;
AbpClaimTypes.PhoneNumber = OpenIddictConstants.Claims.PhoneNumber;

2
modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs

@ -27,7 +27,7 @@ public class AbpDefaultOpenIddictClaimDestinationsProvider : IAbpOpenIddictClaim
switch (claim.Type)
{
case OpenIddictConstants.Claims.Name:
case OpenIddictConstants.Claims.PreferredUsername:
claim.SetDestinations(OpenIddictConstants.Destinations.AccessToken);
if (context.Principal.HasScope(OpenIddictConstants.Scopes.Profile))
{

6
modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs

@ -26,13 +26,13 @@ public partial class TokenController
// will be used to create an id_token, a token or a code.
var identity = new ClaimsIdentity(
TokenValidationParameters.DefaultAuthenticationType,
OpenIddictConstants.Claims.Name, OpenIddictConstants.Claims.Role);
OpenIddictConstants.Claims.PreferredUsername, OpenIddictConstants.Claims.Role);
// Use the client_id as the subject identifier.
identity.AddClaim(OpenIddictConstants.Claims.Subject, await ApplicationManager.GetClientIdAsync(application),
OpenIddictConstants.Destinations.AccessToken, OpenIddictConstants.Destinations.IdentityToken);
identity.AddClaim(OpenIddictConstants.Claims.Name, await ApplicationManager.GetDisplayNameAsync(application),
identity.AddClaim(OpenIddictConstants.Claims.PreferredUsername, await ApplicationManager.GetDisplayNameAsync(application),
OpenIddictConstants.Destinations.AccessToken, OpenIddictConstants.Destinations.IdentityToken);
// Note: In the original OAuth 2.0 specification, the client credentials grant
@ -65,7 +65,7 @@ public partial class TokenController
// whether they should be included in access tokens, in identity tokens or in both.
return claim.Type switch {
OpenIddictConstants.Claims.Name or OpenIddictConstants.Claims.Subject
OpenIddictConstants.Claims.PreferredUsername or OpenIddictConstants.Claims.Subject
=> ImmutableArray.Create(OpenIddictConstants.Destinations.AccessToken,
OpenIddictConstants.Destinations.IdentityToken),

2
modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs

@ -40,7 +40,7 @@ public class UserInfoController : AbpOpenIdDictControllerBase
if (User.HasScope(OpenIddictConstants.Scopes.Profile))
{
claims[AbpClaimTypes.TenantId] = user.TenantId;
claims[OpenIddictConstants.Claims.Name] = user.UserName;
claims[OpenIddictConstants.Claims.PreferredUsername] = user.UserName;
claims[OpenIddictConstants.Claims.FamilyName] = user.Surname;
}

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs

@ -82,8 +82,6 @@ public class MyProjectNameBlazorModule : AbpModule
options.ProviderOptions.DefaultScopes.Add("email");
options.ProviderOptions.DefaultScopes.Add("phone");
});
AbpClaimTypes.UserName = OpenIddictConstants.Claims.Name;
}
private static void ConfigureUI(WebAssemblyHostBuilder builder)

Loading…
Cancel
Save