我尝试使用授权代码授权流从SwaggerUI为我的.net核心API项目的AzureAD授权,但我得到以下错误,
错误:未授权,错误:invalid_client,说明:AADSTS700025:客户端是公共的,因此不应显示'client_assertion'和'client_secret'。
虽然我的客户端不是公共的,但即使我验证了app-manifest,它也有“allowPublicClient”:假的
通过AzureAD设置
- HostAPP
1.客户端APP
HostAPP已公开作用域,并将其添加到应用程序权限下的ClientAPP。
ClientAPP在SPA下添加了swagger的redirect-uri,因为我使用授权代码授予类型。
**注意:**如果不提供secret,我可以进行身份验证,但我希望将secret设置为必填项。
同样是由其他用户在下面发布的问题报告,但答案还不清楚,即使它已经接受了答案。
How to correctly configure ASP.NET Core 5 Swagger to work with Azure A/D authorization code authentication?
编辑:
我在SPA中添加了Swagger重定向URL,在Web中添加了Postman重定向URL。
1条答案
按热度按时间dgtucam11#
我试着在我的环境中重现相同的结果,结果如下:
我在Azure AD中注册了应用程序,并在SPA下添加了**
redirect URI
**:当我尝试生成访问令牌时,我得到了与下面相同的错误:
为了解决这个错误,我在Web下添加了重定向URI,方法是删除SPA并保存,如下所示:
修改后,重新获取授权码,生成访问令牌,如下图所示:
因此,请尝试删除SPA中的 Swagger Redirect URL,并将其添加到Web下,以成功获取访问令牌,如***Carl Zhao*在此SO Thread**中所建议的。