gpt4 book ai didi

reactjs - 401 使用react-adal 访问受Azure AD 保护的API 时出错

转载 作者:行者123 更新时间:2023-12-03 02:49:03 25 4
gpt4 key购买 nike

我正在尝试使用 Azure AD Auth 在 Azure 中设置一个具有 React 前端 + .NET Core 后端的应用程序。后端会调用其他API并保存一些逻辑。我设置了 .NET Core 应用程序并将其托管在 Azure 应用程序服务中,然后使用 the connected services wizard in visual studio 添加身份验证,它生成的代码类似于 this tutorial 上的代码(后端部分):

public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddAzureAdBearer(options => Configuration.Bind("AzureAd", options));
...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseAuthentication();
...
}

appsettings.json(假ID):

"AzureAd": {
"ClientId": "1fff1098-3bc0-40d9-8cd0-e47b065085b6",
"Domain": "mytenant.onmicrosoft.com",
"Instance": "https://login.microsoftonline.com/",
"TenantId": "mytenantid",
"AppIDURL": "https://my-api.azurewebsites.net/",
"ConfigView": "API"
}

然后我在前端设置了react-adal:

{
tenant: "mytenant.onmicrosoft.com",
clientId: "1fff1098-3bc0-40d9-8cd0-e47b065085b6",
endpoints: {
api: "1fff1098-3bc0-40d9-8cd0-e47b065085b6"
},
cacheLocation: "localStorage"
};

我是按照github instructions设置的设置react-adal。登录按预期工作,但当我对后端运行 adalApiFetch 时,我收到 401 错误,描述 = 签名无效。我可以在调试器上看到授权 header (承载+ token )已发送。关于我在这里可能做错了什么有什么想法吗?提前致谢!

我正在测试的端点是一个简单的测试 Controller (带有[Authorize]),它只返回“身份验证已测试”。

最佳答案

过了一段时间我就发现了我的错误,并回来发布解决方案。问题是我使用了错误的方法/设置(不匹配)。从问题的代码来看:如果使用 sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; 那么您还应该使用 AddJwtBearer 和适当的配置选项(在此处找到: JwtBearerOptions )而不是 AddAzureAdBearer。就我而言,最终更正的启动代码是

public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
.AddAzureADBearer(options => Configuration.Bind("AzureAd",options));
....

具有相应的设置(此处找到:AzureADOptions)

关于reactjs - 401 使用react-adal 访问受Azure AD 保护的API 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57097418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com