GetCurrentApplicationCallbackUri 随时间变化

GetCurrentApplicationCallbackUri changing over time

我们正在 Azure 中使用 ADAL 身份验证开发 UWP 应用程序。我们已使用从该方法的结果中获取的重定向 URI 在 Azure 门户中配置我们的客户端:

Windows.Security.Authentication.Web.WebAuthenticationBroker.GetCurrentApplicationCallbackUri()

它一开始是有效的,但现在我们注意到该方法生成的 URI 发生了变化。因此,我们使用 ADAL 登录不再有效,并指出

The reply address 'ms-app://s-1-15-2-104.......' does not match the reply addresses configured for the application.

当然,我们将 URI 的新值添加到客户端配置中,它起作用了,但一两天后它又变了。我认为这不是每隔几天更新一次 Azure 配置的正确方法。

如何保证GetCurrentApplicationCallbackUri的结果不变?

GetCurrentApplicationCallbackUri 使用您应用的 SID 构建 URL。我不确定它的确切机制,但如果您仍在开发该应用程序,尤其是在团队中,SID 可能会发生变化。

确保它保持固定的一种方法是在 Windows 仪表板中创建应用程序并将该应用程序与商店相关联: 从 Visual Studio - 右键单击​​项目和 select Store->Associate app with the store.

您不必提交,但关联应用会更新 package.appxmanifest 与仪表板中的真实值,并且它们将在开发者之间持续存在。

来自documentation

To support SSO, the online provider must allow you to register a redirect URI in the form ms-app://appSID, where appSID is the SID for your app. You can find your app's SID from the app developer page for your app, or by calling the GetCurrentApplicationCallbackUri method.