我正在使用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 范围无效
我需要创建两个不同项目的两个入口。 我该怎么办?
答案 0 :(得分:0)
为每个配置指定不同的名称。您还可以将这些名称与ASP.NET Core身份验证系统的其他部分一起使用,例如ChallengeAsync
。
.AddOpenIdConnect("scheme1", options => {...})
.AddOpenIdConnect("scheme2", options => {...});