在SwaggerUI上使用PKCE流配置授权代码以进行AzureAD身份验证/授权

anauzrmj  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(134)

我尝试使用授权代码授权流从SwaggerUI为我的.net核心API项目的AzureAD授权,但我得到以下错误,

错误:未授权,错误:invalid_client,说明:AADSTS700025:客户端是公共的,因此不应显示'client_assertion'和'client_secret'。

虽然我的客户端不是公共的,但即使我验证了app-manifest,它也有“allowPublicClient”:假的

通过AzureAD设置

  1. 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。

dgtucam1

dgtucam11#

我试着在我的环境中重现相同的结果,结果如下:

我在Azure AD中注册了应用程序,并在SPA下添加了**redirect URI**:

当我尝试生成访问令牌时,我得到了与下面相同的错误:

为了解决这个错误,我在Web下添加了重定向URI,方法是删除SPA并保存,如下所示:

修改后,重新获取授权码,生成访问令牌,如下图所示:

因此,请尝试删除SPA中的 Swagger Redirect URL,并将其添加到Web下,以成功获取访问令牌,如***Carl Zhao*在此SO Thread**中所建议的。

相关问题