在过去的 5 年里,情况发生了很大变化,我不确定如何让这个样本发挥作用:
https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/WebAccountManagement
这使用“帐户管理器”UI 窗口来显示主要是 Microsoft 帐户的列表,以从中获取访问令牌。我了解如何与窗口交互。我遇到的问题是 OAuth 端点、范围和应用程序 ID。
仅供参考,我使用的是个人Microsoft 帐户。
这是我认为使 UWP 应用程序能够使用此令牌服务的正确方法:
- 将你的 UWP 应用与商店关联。(这给了它一个自动进入清单的 SID。)
- 在https://apps.dev.microsoft.com上注册应用名称/ID 。
- 将步骤 2 中的应用程序 ID 从Converged applications 部分复制到示例
SingleMicrosoftAccountScenario
项目的AccountClientId
. - 运行应用程序并尝试登录。
这每次都会给我一个错误。这让我感到困惑:
- 示例中的默认范围是 OneDrive API 范围。我认为那已经消失了,有利于 MS Graph。
- 我应该使用旧的、旧的 Live SDK 应用程序 ID 吗?
- 默认的本机应用回调 URI 可以吗?我需要使用不同的东西吗?通过阅读文档深处的某个地方,我尝试添加 ms-appx-web://Microsoft.AAD.BrokerPlugIn/{app sid},但这也不起作用。
- 很多帖子都在谈论跨平台 ADAL 或 MSAL 库。我也喜欢这个。我打算将它用于 Xamarin 的东西......但对于本机 UWP,我想将非常方便的 AccountsSettingsPane 与 WebAuthenticationCoreManager 一起使用。我已经使用 WebAuthenticationBroker 添加了 Facebook 以获取令牌。
我只是被困住了,直到我弄清楚这个 Microsoft 帐户的东西。合并个人帐户和企业帐户确实使这变得复杂...