C# 如何在ASP.NET CORE 2.1 API的AddAuthentication()中使用多个Aws Cognito用户池

C# 如何在ASP.NET CORE 2.1 API的AddAuthentication()中使用多个Aws Cognito用户池,c#,amazon-web-services,api,asp.net-core,amazon-cognito,C#,Amazon Web Services,Api,Asp.net Core,Amazon Cognito,我目前的问题是,我有一个ASP.NET核心API,我们使用Aws Cognito用户授权访问该API,这非常有效。现在我们需要使用第二个用户池进行授权,以便两个不同的用户池可以访问API。 如何在AddAuthentication/AddJwtBearer中添加多个audieces/authorities,我遇到了一些麻烦,似乎这些方法不能采用两个同名“Bearer”的模式,有人知道如何做到这一点吗 我已经尝试添加多个AddJwtBearer,这会使API崩溃。尝试了不同的方法,但大多数解决方案

我目前的问题是,我有一个ASP.NET核心API,我们使用Aws Cognito用户授权访问该API,这非常有效。现在我们需要使用第二个用户池进行授权,以便两个不同的用户池可以访问API。 如何在AddAuthentication/AddJwtBearer中添加多个audieces/authorities,我遇到了一些麻烦,似乎这些方法不能采用两个同名“Bearer”的模式,有人知道如何做到这一点吗

我已经尝试添加多个AddJwtBearer,这会使API崩溃。尝试了不同的方法,但大多数解决方案使用多个受众,但如果有意义的话,永远不会同时谈论多个权限

现在是这样

 services.AddAuthentication("Bearer")
                   .AddJwtBearer(options =>
                   {
                       options.Audience = "AUDIENCE";
                       options.Authority = "AUTHORITY";
                   });
 services.AddAuthentication("Bearer")
                   .AddJwtBearer(options =>
                   {
                       options.Audience = "AUDIENCE";
                       options.Authority = "AUTHORITY";
                   })
                  .AddJwtBearer(options =>
                   {
                       options.Audience = "AUDIENCE2";
                       options.Authority = "AUTHORITY2";
                   });
我想要这样的东西

 services.AddAuthentication("Bearer")
                   .AddJwtBearer(options =>
                   {
                       options.Audience = "AUDIENCE";
                       options.Authority = "AUTHORITY";
                   });
 services.AddAuthentication("Bearer")
                   .AddJwtBearer(options =>
                   {
                       options.Audience = "AUDIENCE";
                       options.Authority = "AUTHORITY";
                   })
                  .AddJwtBearer(options =>
                   {
                       options.Audience = "AUDIENCE2";
                       options.Authority = "AUTHORITY2";
                   });

我的目标是希望两个用户池的用户都能够授权使用API,提前感谢您的帮助

您必须像以前一样添加多个承载者,但名称不同

服务
.AddAuthentication()
.AddJwtBearer(“Bearer1”,选项=>
{
选项。观众=“观众”;
options.Authority=“Authority”;
})
.AddJwtBearer(“Bearer2”,选项=>
{
options.publications=“audence2”;
options.Authority=“AUTHORITY2”;
});
然后,您必须添加自己的自定义中间件,而不是以后使用身份验证()

app.Use(异步(上下文,下一步)=>
{
var result=await context.authenticateSync(“Bearer1”);
如果(!result.successed)
{
结果=wait context.authenticatesync(“Bearer2”);
}
context.User=result.Principal;
等待下一个();
});

我自己没有试过,只是从评论中拼凑出来,所以请告诉我它是否适合您。

我自己也在做类似的事情。你看。我读了那篇文章,但没有回答我的问题。很遗憾,这篇文章目前似乎不受支持。嗨,伙计,很抱歉,回复太晚。我正在做其他任务,但现在我有时间实施你的解决方案,我可以说声谢谢。就像我想要的那样工作,现在两个用户池都可以授权给API!泰