首页 > 解决方案 > Microsoft Graph - 授权流程 - 从控制台应用程序获取授权代码

问题描述

我有一个 Azure AD 注册应用程序和一个 AD 用户。我想在我的 c# 控制台应用程序中使用授权流来首先获取本文中提到的授权代码https://docs.microsoft.com/en-us/graph/auth-v2-user然后交换该授权代码获取访问令牌。我最终想存储访问令牌和刷新令牌并将其用于离线场景。

我创建了一个 Httpclient 并进行了发布请求以获取授权码,但没有弹出 Microsoft 同意屏幕。

这甚至可以通过控制台应用程序实现,还是我必须有一个网络应用程序才能做到这一点?任何可以帮助我的样本或文章?

标签: oauth-2.0azure-active-directoryoffice365microsoft-graph-api

解决方案


HttpClient 将仅返回用于从 login.microsoftonline.com 登录的 HTML,但无处显示它。HttpClient 可以执行 GET、POST 等,但不是 Web 视图。

我从未测试过从控制台应用程序启动 webview,所以我不确定它是否可能。它可以从 PowerShell 完成,但这与控制台应用程序不同。你可以检查一下。

或者您可以让用户在控制台应用程序中输入用户名和密码,并使用“密码”授权类型流程来获取访问令牌。不推荐,但有可能。您可以在此处阅读有关密码授予类型流程的更多信息:

https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc


推荐阅读