oauth-2.0 - 如何使用 curl/postman 访问 Azure AD 应用程序代理后面的网页
问题描述
如何使用 cURL 或 Postman 从 Azure 的 AD 应用程序代理后面读取网页?
我试图更好地了解 OAuth 的工作原理,以便创建一些需要访问我们在应用程序代理后面的服务器的自动化脚本。目前我正在使用网络浏览器,并且必须登录到我的 Microsoft 帐户才能查看服务器托管的网页。这工作正常。看到我可以使用网络浏览器轻松完成此操作,似乎我也应该能够使用 cURL 或 Postman 完成相同的操作。
我们注册的应用程序已注册为机密客户端(Microsoft 的“Web App”)。公共客户端选项被禁用。它使用隐式授予类型返回一个 ID 令牌(访问令牌复选框未选中,只有 ID 令牌复选框)。我无法创建新的客户端密码,也无法启用公共客户端类型。
我尝试了几种不同的 OAuth 流程,但它们似乎都需要客户端密码(因为我们使用的是机密客户端类型),而我无权访问。尽管不知道任何客户端机密,我如何能够通过浏览器阅读网页?我怎样才能通过 cURL 或 Postman 做同样的事情?
解决方案
在被重定向到 Microsoft 的登录页面并登录后,Azure 会在浏览器中保存一个访问 cookie。您可以复制此访问 cookie 并将其作为 Postman 请求的一部分。这将允许来自 Postman(或 curl 或其他)的请求访问 Azure AD 应用程序代理背后的服务。
这对于我的特定用例来说已经足够了,但它确实带来了必须教用户如何查找和复制访问 cookie 的问题。找到一种更用户友好的方式来获取访问 cookie(或类似的东西)会很好。
推荐阅读
- c - 在C中为结构的二维数组元素赋值
- python - 如何使用 Kivy 将 TextInput 转换为地图视图的浮点数
- ios - 如何修复不为 iOS 构建的 React Native App
- angular - Angular - 如何通过选择器将事件绑定到 HTML 元素?
- python - 在 Tkinter 中更新文本小部件中的值
- reporting-services - 用于从 oracle 数据库中过滤数据集时,多值参数不起作用
- python - 根据视图中的计算字段对 django ListView 进行排序
- android - 如何使用复选框删除recyclerview项目?
- javascript - 在 SQL 中根据销售百分比创建客户集群
- python - Kivy App:TypeError:object.__init__() 只接受一个参数(要初始化的实例)