【问题标题】:Microsoft Graph API - how to get access token without Authorization Code?Microsoft Graph API - 如何在没有授权码的情况下获取访问令牌?
【发布时间】:2020-08-02 13:21:08
【问题描述】:

我希望我的 Web API 获得访问令牌,然后调用 Microsoft Graph API。我浏览了一些文档和线程,但他们都谈到了一种 POST 方法,该方法要求在 AAD 上注册应用程序时创建的客户端 ID 和应用程序机密。

我正在关注此文档here

我的问题是:

client_credentials 是什么?我应该从哪里得到它?我认为 API 应该与秘密和我只使用的客户端一起工作。

感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

    HTTP请求中有4个参数:

    1. grant_type:在这种情况下,值为“client_credentials”
    2. client_id:您的应用的客户端 ID
    3. client_secret:应用的客户端密码
    4. resource:您想要为其获取令牌的 API 的标识符,在本例中为 https://graph.microsoft.com

    因此,您的应用只需要客户端 ID 和密码。

    如果您使用 v2 端点/MSAL,请注意没有资源参数。 相反,您将使用scope=https://graph.microsoft.com/.default

    【讨论】:

    • 感谢您的快速回答 - grant_type 的值真的误导了我。尽管现在我收到了一个错误的请求,它抱怨 grant_type 并带有此消息 The request body must contain the following parameter: 'grant_type' 我想我在这里对此端点有一个有效的请求:$"https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token" { "grant_type":"client_credentials", "client_id":"<client_id>", "client_secret":"<secret>", "scope":"https://graph.microsoft.com/.default" }
    • 它需要作为表单数据发送:) 不是 JSON。检查您发布的文档链接中的示例请求。
    • 这里至少有一个例子(第二个使用FormUrlEncodedContent)ronaldrosiernet.azurewebsites.net/Blog/2013/12/07/…
    • omg - 绝对正确 - 在我眼前!谢谢 - 你帮了很多忙:)
    猜你喜欢
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    相关资源
    最近更新 更多