。NET Core上的WPF桌面应用程序对Azure AD(auth 2.0)WebAPI的身份验证

问题描述 投票:0回答:1

我们正在.NET Core 3.1上使用WPF创建桌面应用程序。

我正在尝试通过以下示例this guide连接到Azure AD Authenticaton的Web api。但是,示例项目(可以正常运行)是在.NET Framework上的WPF中编写的。

有一个客户端部分和一个服务器(Web API)部分。由于客户端是桌面应用程序,因此您应使用(Azure-> AD->应用程序注册...)注册api-part,其回复URL为“ https://login.microsoftonline.com/common/oauth2/nativeclient

我使用]初始化我的PublicClientApplicationBuilder>

var app = PublicClientApplicationBuilder
        .Create(ClientIdPorterApplication)
        .WithAuthority(authority) 
        .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
        .Build();     

并且在运行app.AcquireTokenInteractive(...)时收到错误消息:

仅支持环回重定向uri,但https://login.microsoftonline.com/common/oauth2/nativeclient原为找到了。在运行期间同时配置http://localhosthttp://localhost:port应用程序注册以及创建PublicClientApplication时宾语。有关详情,请参见https://aka.ms/msal-net-os-browser

(此地址可在示例中很好地使用,但同样,其写在.NET FW上]

所以,仅出于娱乐目的,我将replyUrl(上面的初始化和Azure Portal应用程序的注册均更改为“ http://localhost:1234”。用户在Web浏览器中获得“选择帐户”对话框,并在选择帐户[email protected]之后显示以下消息:

认证完成。您可以返回到应用程序。放心关闭此浏览器标签。

是!对吧?...不完全是。在代码中,我仍然会收到带有错误消息的异常:

{“配置问题阻止了身份验证-检查错误来自服务器的消息以获取详细信息。您可以修改配置在应用程序注册门户中。看到详细信息https://aka.ms/msal-net-invalid-client。原版的异常:AADSTS7000218:请求正文必须包含以下内容参数:“ client_assertion”或“ client_secret”。\ r \ n跟踪ID:7b0f6384-64eb-422c-a996-cadaa52f1f00 \ r \ n相关ID:0c579b5b-e706-4625-96da-fbf03e5a21f9 \ r \ n时间戳:2020-04-2312:14:59Z“}

任何线索?我在谷歌搜索狂的某个地方读到,在.net核心方案的WPF上这是不可能的。我确定这一定是解决方案

编辑:

在我的最终浏览器窗口中(显示消息“身份验证已完成...”,URL窗口中的URL具有qstring参数代码=enter image description here

我们正在.NET Core 3.1上使用WPF创建桌面应用程序。我尝试通过遵循本指南的示例,尝试使用Azure AD Authenticaton连接到Web API。但是,示例项目(...

azure-active-directory msal
1个回答
0
投票

明天我只能接受自己的答案,如果我忘记了,这就是答案

这对我有用:有趣设置的唯一途径是:

© www.soinside.com 2019 - 2024. All rights reserved.