Jwt Azure多租户Web Api-只能有一个访问群体

Jwt Azure多租户Web Api-只能有一个访问群体,jwt,azure-active-directory,Jwt,Azure Active Directory,我有一个OWIN Web Api,它需要ida:academyparam来验证JWT public static void ConfigureAuth(IAppBuilder app) { var tvps = new TokenValidationParameters { ValidAudience = Config.GetSetting("ida:Audience"),

我有一个OWIN Web Api,它需要
ida:academy
param来验证JWT

public static void ConfigureAuth(IAppBuilder app)
        {
            var tvps = new TokenValidationParameters
            {
                ValidAudience = Config.GetSetting("ida:Audience"),
                ValidateIssuer = false,
            };
这意味着我只能有一个客户端应用程序可以连接到我的Web Api。似乎没有办法增加更多的观众。 因此,如果我想将其他客户端应用程序连接到我的web api,我必须改变受众。。
这没有多大意义

当您的API收到访问令牌时,该令牌中的受众声明
aud
应该是针对您的API的。这意味着无论哪个客户机调用您的Web API,受众声明都应该是相同的

如果要唯一标识调用web api的客户端应用程序,应查看
appid
声明


让我知道这是否有帮助

但是,如果我想指定一个可以连接到我的API的客户机列表,该怎么办?您是否可以引用“该令牌中的aud应该用于您的API”这一概念?您可以通过不同的方式仅指定能够调用您的Web API的特定数量的服务。imo最直接的方法是让API检查令牌中的
appid
声明,并将其与允许调用API的服务白名单进行比较。让我给你举一个关于
aud
索赔的具体例子。当您获得Microsoft Graph的令牌时,无论您从哪个客户端调用,
aud
声明都是
aud:https://graph.microsoft.com/
。Microsoft Graph会检查此属性,以确保令牌用于此资源,否则会拒绝任何令牌。这是所需的<代码>aud(受众)声明标识JWT的目标受众。打算处理JWT的每个委托人必须在受众声明中确定自己的价值。如果处理索赔的委托人在该索赔存在时未在“aud”索赔中使用值标识自己,则必须拒绝JWT。