我很难尝试使用Azure AD B2C来验证My Web API。 我将从一些背景开始Azure AD B2C错误 - IDX10501:签名验证失败
我创建了使用Azure AD B2C对用户进行身份验证的移动应用程序。我创建其中显示该网址的网页视图:
要求用户登录到蔚蓝的广告,如果登录数据是全成我收到包含访问令牌的响应 - 这部分又光滑,一切正常正常。
现在我想创建后端Web Api。我创建了ASP NET Core Web应用程序,它允许我选择身份验证方法。我选择Azure AD身份验证,以便模板为我生成所有必需的数据。代码中的相关部分位于:
我更新了所有必需的配置属性以匹配我的天蓝色设置。在这一点上,我希望能够使用我在移动应用程序上收到的访问令牌调用API。我在本地运行移动应用程序,登录,收到访问令牌,将其复制并尝试使用邮递员(授权头“Bearer ...”)呼叫我的web api(以IIS express托管)。不幸的是,没有运气 - 我收到401与下面的头:
承载错误=“INVALID_TOKEN”,ERROR_DESCRIPTION =“签名密钥 未找到”
我认为令牌是不够授权API - 我明白这是OAuth的一个重点。我错过了什么吗?我应该有一些额外的配置?我注意到在配置中缺少政策的迹象(这似乎是由AD B2C名称须所以我尝试补充说:
var validationParameters = new TokenValidationParameters
{
AuthenticationType = "MY_POLICY",
};
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
Authority = Configuration["Authentication:AzureAd:AADInstance"] + Configuration["Authentication:AzureAd:TenantId"],
Audience = Configuration["Authentication:AzureAd:Audience"],
TokenValidationParameters = validationParameters
});
但这并没有太多的工作将感谢所有帮助
。编辑
我发现下面的错误在Visual Studio中的日志:
承载未通过身份验证失败消息:IDX10501:签名 验证失败无法匹配“孩子”。“ ...'
您的权限可能是错误的。我不太清楚B2C需要什么,但我认为它会是一个包含您的政策ID的网址。 – juunas
您让我朝着正确的方向发展,谢谢! – MajkeloDev