IdentityServer4 не показывает флажок разрешений - PullRequest
0 голосов
/ 03 апреля 2019

после входа в IdentityServer4 я не вижу флажок permisions и перенаправление после нажатия кнопки разрешения не работает. Таким образом, я могу видеть заголовок «Личная информация» и заголовок «Доступ к приложению», а также флажок для них Я использую Asp.net Core 2.0 и IdentityServer4 Моя конфигурация выглядит так:

public class InMemoryConfiguration
   {
       public static IEnumerable<ApiResource> ApiResources()
       {
           return new[]
           {
               new ApiResource("checklist")
           };
       }

       public static IEnumerable<IdentityResource> IdentityResources()
       {
           return new IdentityResource[]
           {
               new IdentityResources.OpenId(),
               new IdentityResources.Profile(),
               new IdentityResources.Email()
           };
       }

       public static IEnumerable<Client> Clients()
       {
           return new[]
           {
               new Client
               {
                   ClientId = "checklist",
                   ClientSecrets = new [] {new Secret("secret".Sha256())},
                   AllowedGrantTypes = GrantTypes.ResourceOwnerPasswordAndClientCredentials,
                   AllowedScopes = new [] {
                       "checklist"
                   }
               },

               new Client
               {
                   ClientId = "checklist_implicit",
                   ClientSecrets = new [] {new Secret("secret".Sha256())},
                   AllowedGrantTypes = GrantTypes.Implicit,
                   AllowAccessTokensViaBrowser = true,
                   AllowedScopes = new [] {
                       IdentityServerConstants.StandardScopes.OpenId,
                       IdentityServerConstants.StandardScopes.Profile,
                       IdentityServerConstants.StandardScopes.Email,
                       "checklist"
                   },
                   RedirectUris = new [] {
                       "http://localhost:4200/callback"
                   },
                   PostLogoutRedirectUris = {"http://localhost:4200/home"},
                   //RequireConsent=false
               }
           };
       }

       public static IEnumerable<TestUser> Users()
       {
           return new[]
           {
               new TestUser
               {
                   SubjectId = "1",
                   Username = "kuba@wp.pl",
                   Password = "password",
                   Claims = new [] {new Claim("email", "kuba@wp.pl")}
               }
           };
       }
   }

И startup.cs:

        public void ConfigureServices(IServiceCollection services)
        {            
            services.AddCors(options => {

                // this defines a CORS policy called "default"
                options.AddPolicy("default", policy => {
                    policy
                        .SetIsOriginAllowedToAllowWildcardSubdomains()
                        .WithOrigins("http://localhost:4200")
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials();
                });
            });

            services.AddIdentityServer()
                //.AddSigningCredential(new X509Certificate2(@"D:\kuba\git\checklist\certs\IdentityServer4Auth.pfx", "changeit"))
                .AddDeveloperSigningCredential()
                .AddTestUsers(InMemoryConfiguration.Users().ToList())
                .AddInMemoryClients(InMemoryConfiguration.Clients())
                .AddInMemoryIdentityResources(InMemoryConfiguration.IdentityResources())                
                .AddInMemoryApiResources(InMemoryConfiguration.ApiResources());

            services.AddMvc();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole();

            app.UseDeveloperExceptionPage();

            app.UseCors("default");

            app.UseIdentityServer();

            app.UseStaticFiles();

            app.UseMvcWithDefaultRoute();
        }

На стороне клиента я использую угловой

1 Ответ

0 голосов
/ 13 июня 2019

Понятия не имею почему, но в представлении Согласие - index.html,

Изменить это:

<partial name="_ScopeListItem" model="@scope" />

Кому:

@Html.Partial("_ScopeListItem", scope)

И флажки согласия отображаются, как и ожидалось.

...