iOS上的B2C弹出窗口:“我的应用程序”想要使用“ b2clogin.com”登录

Lam*_*rth 5 xamarin.ios azure-ad-b2c

将Xamarin.Forms中的Microsoft.Identity.Client从1.x升级到4.x之后,大多数工作原理基本相同。但是,登录iOS会显示一个弹出窗口:

“我的应用”希望使用“ b2clogin.com”登录

这使应用程序和网站可以共享有关您的信息。

如果用户点击继续,也可以,但是几乎是无缝的。

据说它与iOS 12相关联,但这似乎并不是触发我的原因。有一个微软的文章,说这实际上是正常的,他说:

但是,在iOS上,用户可能必须同意浏览器才能回调该应用程序,这可能很烦人。

我发现可以设置.WithUseEmbeddedWebView(true),并且可以隐藏URL并删除弹出窗口,这适用于Facebook登录,但Google登录是一个难事。

存在通用链接而不是URL方案关联域的潜在路径。

调查该路径,看来我只需要使用以下JSON 设置URL https://myapp.b2clogin.com/.well-known/apple-app-site-association

{
  "webcredentials": {
    "apps": [
      "MYTEAMID.com.mycompany.myapp"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法控制该URL。

还有其他想法吗?

Raz*_*azi 2

简短的回答是——现在无法完成,因为此警报弹出窗口内置于 iOS 框架中。任何身份验证提供程序、库等如果在 iOS 中使用 ASWebAuthentication API 都会触发此警报

您可以选择使用不同的嵌入式浏览器弹出 API,这些 API 不会导致此警报,但它们将具有沙盒 cookie,并且用户可能无法体验 SSO。有一个 MSAL 文档页面更详细地讨论了这一点:

https://learn.microsoft.com/en-us/azure/active-directory/develop/customize-webviews