gpt4 book ai didi

azure - 找出 HPC 命令行实用程序的 (Azure) OAuth2 授权流程

转载 作者:行者123 更新时间:2023-12-01 01:46:14 25 4
gpt4 key购买 nike

我对 Azure/OAuth2 还很陌生,所以如果这是一个简单的问题,我深表歉意。不过我的头很晕,希望得到一些指点。

我正在开发一个用于高性能计算集群的命令行实用程序。此实用程序需要访问使用 Azure 的 OAuth2 实现保护的 REST API。

我正在努力弄清楚我的客户端实用程序应该如何获取授权码。我的预期流程如下所示...

  1. 用户在随机 HPC 节点上获取终端并在命令行上调用客户端
  2. 客户端发现它需要新的访问代码
  3. 客户端生成一个URL供用户访问并打印到终端
  4. 客户端启动服务器来监听重定向 URL 处的代码
  5. 用户在本地计算机(不是运行客户端的计算机)上打开浏览器并提供凭据
  6. 客户端通过重定向接收代码,
  7. 客户端在访问 API 之前拆除服务器并继续执行 OAuth2 流程的其余部分。

我在步骤 5 和 6 之间陷入困境。提供凭据后,我在浏览器中看到“没有为该应用程序注册回复地址”。我认为 Azure 希望我在应用程序注册中指定回复地址,以便它可以验证客户端生成的 URL 中的回复地址。问题是,我无法给出一个!这就是为什么...

  1. 仅限终端客户端:表示客户端计算机上没有 GUI 浏览器。 IE。无法使用“localhost”作为回复地址
  2. 数千个潜在客户端主机:我的客户端可以在我们的计算集群中数千个节点中的任何一个上调用。这使得在应用程序的 Azure 注册中列出所有潜在的重定向 URI 变得不可行。 IE。我无法让用户同意在另一台计算机上使用浏览器,因为那样我就必须为集群中的每个主机插入并维护一个回复地址!

使用 Azure 可以实现我想要实现的目标吗?我觉得我的流程要么是错误的,要么是我的用例不受支持。我读过一些关于 OAuth2 规范中“设备流”的内容,看起来它可能很有用。但是,我没有看到任何迹象表明 Azure 支持此功能。

我的下一步是通过具有已知静态 URI 的代理路由所有代码回复。不过,这感觉比我应该做的工作更多,所以想先让专家运行一下;)

感谢您的想法!

谢谢

标记。

最佳答案

这听起来有点像 OAuth 设备流程的案例:https://joonasw.net/view/device-code-flow

流程 - 直升机 View

  • App makes HTTP POST to the device code endpoint
  • Gets response with:
    • User code
    • Device code
    • Verification URL
    • Expiry time
    • Polling interval
    • Friendly message
    • Shows message to user so they can open a browser and go to the verification URL
  • App starts polling the token endpoint at the defined polling interval, waits for a 200 OK
  • User opens browser, goes to verification URL, enters the user code
  • User signs in with their account
  • App receives 200 OK with:
    • Access token
    • Refresh token
    • Id token

我的博客文章详细介绍了您需要发出的 HTTP 请求,但其要点是允许在无浏览器设备上进行身份验证。

关于azure - 找出 HPC 命令行实用程序的 (Azure) OAuth2 授权流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49057006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com