Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Electron 在使用系统浏览器重定向到电子版后,是否可以关闭Azure AD B2C的登录窗口? 现状_Electron_Azure Ad B2c_Microsoft Identity Platform - Fatal编程技术网

Electron 在使用系统浏览器重定向到电子版后,是否可以关闭Azure AD B2C的登录窗口? 现状

Electron 在使用系统浏览器重定向到电子版后,是否可以关闭Azure AD B2C的登录窗口? 现状,electron,azure-ad-b2c,microsoft-identity-platform,Electron,Azure Ad B2c,Microsoft Identity Platform,我们构建了一个使用Azure AD B2C保护的Web API的电子应用程序。 身份验证过程如下所示: 用户想要登录 Electron准备初始OIDC请求(包含OIDC范围的返回类型代码) Electron(主线程)使用正确的b2clogin.com租户打开系统浏览器 用户输入凭据,并在成功时重定向(使用自定义协议,例如,my Aweasome app://) Electron应用程序处理重定向(新实例处理、URL解析,一切正常) 正确解析的信息用于分派最后一个身份验证请求(再次在主进程上)

我们构建了一个使用Azure AD B2C保护的Web API的电子应用程序。 身份验证过程如下所示:

  • 用户想要登录
  • Electron准备初始OIDC请求(包含OIDC范围的返回类型代码)
  • Electron(主线程)使用正确的
    b2clogin.com
    租户打开系统浏览器
  • 用户输入凭据,并在成功时重定向(使用自定义协议,例如,
    my Aweasome app://
  • Electron应用程序处理重定向(新实例处理、URL解析,一切正常)
  • 正确解析的信息用于分派最后一个身份验证请求(再次在主进程上)
  • 应用程序收到身份验证令牌,用户已登录
所有这些工作都不需要嵌入式web视图和处理本地主机重定向的本地web服务器。至少据我所知,我们应该坚持在本机应用程序中使用OIDC的最新技术

问题 上述过程运行良好-它只有一个警告:用户输入其凭据的浏览器窗口保持打开状态。据我所知,发生这种情况是因为浏览器尽职尽责地重定向,但从不知道它成功了(即使重定向由操作系统处理,浏览器的网络监视器也会显示失败)

据我所知,通过检查GitHub桌面应用程序、Slack桌面应用程序以及Brock Allen的这一行为是可以预料的。Azure AD B2C的主要问题是,身份提供者从未离开保存输入凭据的登录表单

就我所见(我在谷歌和微软文档上花了很多时间),没有明显的方法来改变这种行为。这些应用程序使用的IDP导航到另一个页面,并在登录成功时显示关闭选项卡的消息。我试着在MSAL文档中寻找指导——因为它是微软自己的这个用例库——但他们似乎根本没有考虑定制协议(显然,系统浏览器的使用更为复杂)

曾有人试图在微软实习期间提供一份工作,但这一努力似乎已被放弃。它还将在我们积极尝试避免的相同过程中使用新的电子浏览器窗口

据我所知,当前“您能得到的最好的东西”是让IDP导航到一个窗口,如果用户忘记关闭该窗口,该窗口不能用于提取凭据


这引出了我的主要问题:Azure AD B2C是否有可能实现这种行为,或者我们是否被迫退回到“嵌入式web视图”体验中去?

您是否曾经得到过这个问题的答案?我面临着同样的问题,无法找到解决办法。PoC似乎仍被放弃(自2019年以来,约有1900人提交了PoC)没有。不幸的是没有。我最近没有做过很多关于这个问题的研究,但这仍然是现状