我是Azure / OAuth2的新手,如果这是一个简单的问题,请道歉。我的脑袋旋转着,我很欣赏一些指示。
我正在开发一个命令行实用程序,用于高性能计算群集。此实用程序需要访问使用Azure的OAuth2实现保护的REST API。
我很难理解我的客户端实用程序应如何获取身份验证代码。我想要的流程看起来像这样......
我在第5步和第6步之间徘徊。在提供凭据后,我在浏览器中看到“没有为应用程序注册回复地址”。我认为Azure希望我在应用注册中指定回复地址,以便它可以在客户端生成的URL中验证回复地址。问题是,我不可能给出一个!这就是为什么......
我正在尝试使用Azure实现甚至可能吗?我觉得我的流程错了或我的用例不受支持。我已经阅读了一下OAuth2规范中的“设备流程”,看起来它可能很有用。但是,我没有看到Azure支持这一点的任何迹象。
我的下一步是通过具有已知静态URI的代理路由所有代码回复。这感觉就像我应该做的更多的工作来实现这个工作,所以想先跑过专家;)
赞赏的想法!
谢谢,
标记。
听起来有点像OAuth设备流程:https://joonasw.net/view/device-code-flow
流动 - 直升机视图
- App将HTTP POST发送到设备代码端点
- 获取响应: 用户代码 设备代码 验证网址 到期时间 轮询间隔 友好的消息 向用户显示消息,以便他们可以打开浏览器并转到验证URL
- 应用程序开始以定义的轮询间隔轮询令牌端点,等待200 OK
- 用户打开浏览器,转到验证URL,输入用户代码
- 用户使用他们的帐户登录
- 应用程序接收200 OK: 访问令牌 刷新令牌 Id令牌
我的博客文章提供了您需要提供的详细HTTP请求,但其主要内容是允许在无浏览器设备上进行身份验证。
对于Native Client应用程序(如您正在构建的应用程序),您应该使用默认重定向URI specified in the documentation。
您的应用的redirect_uri,您的应用可以发送和接收身份验证响应。它必须与您在门户网站中注册的redirect_uris之一完全匹配,但必须进行url编码。对于原生应用和移动应用,您应该使用默认值
https://login.microsoftonline.com/common/oauth2/nativeclient
。
希望这可以解决您的问题!