oauth-2.0 - Microsoft Graph - 授权流程 - 从控制台应用程序获取授权代码
问题描述
我有一个 Azure AD 注册应用程序和一个 AD 用户。我想在我的 c# 控制台应用程序中使用授权流来首先获取本文中提到的授权代码https://docs.microsoft.com/en-us/graph/auth-v2-user然后交换该授权代码获取访问令牌。我最终想存储访问令牌和刷新令牌并将其用于离线场景。
我创建了一个 Httpclient 并进行了发布请求以获取授权码,但没有弹出 Microsoft 同意屏幕。
这甚至可以通过控制台应用程序实现,还是我必须有一个网络应用程序才能做到这一点?任何可以帮助我的样本或文章?
解决方案
HttpClient 将仅返回用于从 login.microsoftonline.com 登录的 HTML,但无处显示它。HttpClient 可以执行 GET、POST 等,但不是 Web 视图。
我从未测试过从控制台应用程序启动 webview,所以我不确定它是否可能。它可以从 PowerShell 完成,但这与控制台应用程序不同。你可以检查一下。
或者您可以让用户在控制台应用程序中输入用户名和密码,并使用“密码”授权类型流程来获取访问令牌。不推荐,但有可能。您可以在此处阅读有关密码授予类型流程的更多信息:
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc
推荐阅读
- python - 如何调用python脚本的先前输出
- javascript - 在数组元素交换上更新 Dom 以对可视化工具 Vue.JS 进行排序
- apache-kafka - Kafka Streams 转换后有条件地产生消息
- python - Anaconda 中 pyttsx 的 PackagesNotFoundError
- gis - 使用地理服务器在 postgis 视图上的 WFS-T
- facebook - 无法在 facebook 即时文章中点击提交 url
- php - 试图获取非对象的属性,错误集中在“.$users->username”上。
- jquery - jquery:如何在 prevUntil 中查找
- asp.net-core - ASPNET 核心路由
- javascript - 整页缩放功能