Microsoft Graph-授权流程-从控制台应用程序获取授权代码

时间:2020-04-02 21:17:18

标签: oauth-2.0 azure-active-directory office365 microsoft-graph-api

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

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

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

1 个答案:

答案 0 :(得分:1)

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

我从未测试过从控制台应用程序扩展Web视图的情况,因此我不确定是否可行。可以从PowerShell中完成,但这与控制台应用程序不同。您可以检查一下。

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

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