Xamarin Forms Open URI with access token

Xamarin Forms Open URI with access token

我有 POC Xamarin Forms PCL 应用程序并通过 MSAL 成功验证。我对图形 API 的 REST 调用(读取用户配置文件和共享点列表数据)全部成功。

我正在尝试使用令牌在浏览器中打开共享点页面,即不要求用户重新验证。

Device.openUri 总是将用户发送到授权页面,这是有道理的,因为我没有用它发送令牌。

这可能吗?如果可以,如何实现?

准确回答您的问题的简短答案是 "no",而您希望实现的答案是 "probably not"。至少今天不能直接使用 MSAL。

当用户被发送去登录时,MSAL 正在调用一个 platform-dependent 浏览器 window,该浏览器导航到 Azure AD 以进行 sign-in 和同意过程。根据设备平台,此浏览器 window 可能(或可能不会)与其他应用程序和完整浏览器共享 cookie 状态。

如果它确实共享 cookie space,那么在 sign-in 期间为您的应用设置的 cookie 可以 re-used 当您在浏览器中启动 SharePoint,以提供相对无缝的 sign-in 直达 SharePoint。如果它不是,那么将没有 Azure AD 可用于提供单个 sign-in.

的现有浏览器会话工件(即 cookie)

例如,在 iOS (Xamarin) 上,MSAL for .NET 将调用 SFSafariViewController。 SFSafariViewController 不会 与其他应用程序或 Safari 浏览器共享 cookie space。