【发布时间】:2019-06-14 03:34:49
【问题描述】:
我的申请基于this example 我在我的 wpf 申请表登录名和密码中收到令牌,如下所示:
result = await _app.AcquireTokenByUsernamePasswordAsync(Scopes, username, securePassword);
然后我想访问我的安全 Web api。 但是当我尝试访问时,我得到了
AADSTS70002:验证凭据时出错。 AADSTS500137:令牌 issuer 与 api 版本不匹配:无法使用版本 1 令牌 使用 v2 端点。跟踪 ID:42aaa5f8-0a2c-4c3f-a593-1676fd662700 相关 ID:efe97d3a-ca2f-4dfe-a50c-5c3f4accde9a 时间戳: 2019-01-20 15:52:16Z
这里
AuthenticationResult result = application.AcquireTokenOnBehalfOfAsync(scopes.Except(_scopesRequestedByMsalNet), userAssertion).GetAwaiter().GetResult();
我刚刚发现的是,AcquireTokenOnBehalfOfAsync 为不同的注册本机应用程序提供了 v1 或 v2。我在 azure 上找不到 2 个应用程序之间的配置差异。
【问题讨论】:
-
您采取了哪些措施来解决问题?您收到了特定的错误消息。您是否考虑过解决该错误?
-
您正在从 V1 端点 (ADAL) 请求令牌并尝试将其与使用 V2 端点 (MSAL) 的应用程序一起使用。
-
@camiloterevinto 我猜这里设置了端点版本 _app = new PublicClientApplication(aadClientId, authority); 权限是“login.microsoftonline.com/organizations/v2.0”
-
@danielmann 更好地问我我没有做什么:)
标签: c# azure asp.net-web-api2 azure-active-directory