Microsoft Graph - 授权流程 - 从控制台应用程序获取授权代码
Microsoft Graph - Authorization Flow - Get Authorization Code from Console App
我有一个 Azure AD 注册应用程序和一个 AD 用户。我想在我的 c# 控制台应用程序中使用授权流程来首先获取本文 https://docs.microsoft.com/en-us/graph/auth-v2-user 中提到的授权代码,然后交换该授权代码以获取访问令牌。我最终想存储访问令牌和刷新令牌并将其用于离线场景。
我创建了一个 Httpclient 并做了一个 post 请求来获取授权码,但是没有弹出 Microsoft Consent 屏幕。
这甚至可以通过控制台应用程序实现,还是我必须拥有网络应用程序才能执行此操作?有什么样本或文章可以帮到我吗?
HttpClient 只会 return HTML 从 login.microsoftonline.com 登录,但无处显示。 HttpClient 可以执行 GET、POST 等操作,但不是 Web 视图。
我从未测试过从控制台应用程序启动 webview,所以我不确定这是否可行。它可以从 PowerShell 完成,但这与控制台应用程序不同。你可以检查一下。
或者您可以让用户在控制台应用程序中输入用户名和密码,并使用 "password" 授权类型流程来获取访问令牌。不推荐,但有可能。您可以在此处阅读有关密码授予类型流程的更多信息:
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc
我有一个 Azure AD 注册应用程序和一个 AD 用户。我想在我的 c# 控制台应用程序中使用授权流程来首先获取本文 https://docs.microsoft.com/en-us/graph/auth-v2-user 中提到的授权代码,然后交换该授权代码以获取访问令牌。我最终想存储访问令牌和刷新令牌并将其用于离线场景。
我创建了一个 Httpclient 并做了一个 post 请求来获取授权码,但是没有弹出 Microsoft Consent 屏幕。
这甚至可以通过控制台应用程序实现,还是我必须拥有网络应用程序才能执行此操作?有什么样本或文章可以帮到我吗?
HttpClient 只会 return HTML 从 login.microsoftonline.com 登录,但无处显示。 HttpClient 可以执行 GET、POST 等操作,但不是 Web 视图。
我从未测试过从控制台应用程序启动 webview,所以我不确定这是否可行。它可以从 PowerShell 完成,但这与控制台应用程序不同。你可以检查一下。
或者您可以让用户在控制台应用程序中输入用户名和密码,并使用 "password" 授权类型流程来获取访问令牌。不推荐,但有可能。您可以在此处阅读有关密码授予类型流程的更多信息:
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc