![](/img/trans.png)
[英]Security and OpenId Connect Flows with ASP.Net Core 2.1 and React
[英]2 openid connect in asp.net core application
我一直在嘗試將第二個身份提供者添加到我的 web 應用程序,但配置有問題。
該應用程序具有以下配置
builder.Services.AddAuthentication(options =>
{
options.DefaultScheme = "cookie";
options.DefaultSignInScheme = "cookie";
options.DefaultChallengeScheme = "oidc";
options.DefaultSignOutScheme = "oidc";
})
.AddCookie("cookie")
.AddOpenIdConnect("oidc", options =>
{
options.Authority = AppConfig.AuthorizationServerAdress;
options.ClientId = AppConfig.OpenidApp;
options.ClientSecret = AppConfig.OpenidAppSecret;
options.ResponseType = OpenIdConnectResponseType.Code;
options.ResponseMode = OpenIdConnectResponseMode.Query;
options.UsePkce = true;
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
})
.AddCookie("cookie2")
.AddOpenIdConnect("oidc2", options =>
{
options.Authority = AppConfig.AuthorizationExternalServerAdress;
options.ClientId = AppConfig.OpenidExternalApp;
options.ClientSecret = AppConfig.OpenidExternalAppSecret;
options.ResponseType = OpenIdConnectResponseType.Code;
options.ResponseMode = OpenIdConnectResponseMode.Query;
options.UsePkce = true;
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
});
默認情況下,它適用於第一個 oidc 提供商,但如果我使用 oidc2 登錄然后導航到我的應用程序,我將 go 到我的默認 oidc 提供商。 這意味着第二個提供者將被忽略。 有人可以幫我配置嗎?
問題是兩個處理程序都會在 URL /signin-oidc上偵聽來自您的身份提供者的回調請求
因此,要解決它,您需要確保它們不同,例如:
.AddOpenIdConnect("oidc", options =>
{
//other options
options.CallbackPath = new PathString("/oidc/handler1");
}
.AddOpenIdConnect("oidc2", options =>
{
//other options
options.CallbackPath = new PathString("/oidc/handler2");
}
但是,總的來說,我建議您的客戶和應用程序只應該信任一個提供商(令牌發行者),並讓用戶選擇如何通過您的主要提供商進行身份驗證,如下圖所示:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.