首页 文章

IdentityServer4 .net核心2身份验证使用OpenIDConnect的多个实例

提问于
浏览
0

我正在使用IdenitityServer4 Hybrid,如下所示 - https://github.com/elanderson/Angular-Core-IdentityServer

问题 - 我需要添加其他项目才能访问 . 另一个.net核心2 web api .

我在尝试 -

services.AddAuthentication(options =>
          {
              options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
              options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
          })
          .AddCookie()
           .AddOpenIdConnect(options =>
            {
                options.Authority = Configuration["IdentityServerAddress"];
                options.RequireHttpsMetadata = false;

                options.ClientId = "mvc";
                options.ClientSecret = "secret";

                options.ResponseType = "code id_token";
                options.Scope.Clear();
                options.Scope.Add("apiApp");
                options.Scope.Add("offline_access");

                options.GetClaimsFromUserInfoEndpoint = true;
                options.SaveTokens = true;
            }).AddOpenIdConnect(options =>
          {
              options.Authority = Configuration["IdentityServerAddress"];
              options.RequireHttpsMetadata = false;

              options.ClientId = "abiApp";
              options.ClientSecret = "secret";

              options.ResponseType = "code id_token";
              options.Scope.Clear();
              options.Scope.Add("abiApp");
              options.Scope.Add("offline_access");

              options.GetClaimsFromUserInfoEndpoint = true;
              options.SaveTokens = true;
          });

我正进入(状态 -

InvalidOperationException:Scheme已存在:OpenIdConnect

没有它 -

抱歉,出现错误:unauthorized_client无效范围

我需要创建两个不同项目的两个入口 . 我该怎么做?

1 回答

  • 0

    为每个配置分配不同的名称 . 您还可以将这些名称与ASP.NET Core身份验证系统的其他部分一起使用,例如 ChallengeAsync .

    .AddOpenIdConnect("scheme1", options => {...})
    .AddOpenIdConnect("scheme2", options => {...});
    

相关问题