6

我的团队编写了一个监控系统,我们最近将监控的定义迁移到了一个 git repo。这些定义由一些 json 和 powershell 文件组成。VSCode 是编辑和处理 git 的理想场景。问题是在开发监控时,能够在测试环境中执行它是件好事。以前,所有编辑都是通过 Web 界面完成的,我们允许通过受 AzureAD 和 OAuth2.0 保护的 API 对测试机器临时执行 powershell。

VS Code 扩展无法访问完整的电子 API,并且您无法创建 BrowserWindow 来处理通常的 OAuth 重定向流程。有没有办法解决这个限制并允许用户对我们的 api 进行身份验证,以便我们可以调用它?

任何想法或可能的解决方法都会很棒。

4

3 回答 3

1

您可以做的一件事是通过客户端凭据身份验证方法使用服务器到服务器。这里有节点 npm 库。您需要先通过 Azure 门户将 VS 代码扩展注册到 Azure AD。此方法的缺点是传递给 Web API 的凭据不是用户的凭据,而是相同的扩展特定凭据。但是,如果您不需要 VS 代码用户的身份,那就可以了。

于 2017-06-23T15:41:08.627 回答
1

为无法打开 Web 浏览器进行身份验证的应用程序获取用户令牌的受支持方式是“OAuth 设备流程”。这是关于如何使用 AAD 实现它的博客链接。

https://joonasw.net/view/device-code-flow

于 2019-07-08T18:27:24.400 回答
1

当您进行身份验证时,您需要在扩展程序中托管一个 localhost 网络服务器,然后将 localhost:port 作为 oauth 登录流程的重定向 URI 传递。

于 2019-11-23T00:12:43.257 回答