代码之家  ›  专栏  ›  技术社区  ›  b_s

Microsoft Graph是否支持URI中的OAuth 2.0标记?

  •  2
  • b_s  · 技术社区  · 8 年前

    我正在尝试通过OAuth 2.0将Odoo 11配置为在Microsoft Azure AD上使用我们的企业目录。

    Odoo 11使用隐式方法获取令牌-这似乎可以正常工作,我可以从 https://login.microsoftonline.com/<company_domain>/oauth2/v2.0/authorize 端点。

    然后使用 RFC6750 读取端点数据。此方法涉及将查询发送到 https://graph.microsoft.com/v1.0/me?access_token=<access_token>

    我知道令牌是有效的,因为我可以使用 https://www.hurl.it 将查询发送到 https://graph.microsoft.com/v1.0/me 请求标头为 Authorization: Bearer <access_token> 我得到了预期的结果。这是根据RFC6750第2.1节中描述的方法,这是我在Microsoft文档中遇到的唯一方法。

    如果我手动尝试根据第2.3节发送请求,我会从Microsoft Graph获得错误响应:

    {
        "error": {
            "code": "InvalidAuthenticationToken",
            "message": "Bearer access token is empty.",
            "innerError": {
                "request-id": "2319fe00-8695-481d-8850-d1b8ed973292",
                "date": "2018-01-23T19:12:15"
            }
        }
    }
    

    所以我的问题是:Microsoft Graph是否支持RFC6750第2.3节中的请求方法?

    2 回复  |  直到 4 年前
        1
  •  0
  •   Community Mohan Dere    4 年前

    Microsoft Graph支持 Authorization Request Header Field 方法这个 Form-Encoded Body Parameter URI Query Parameter 不支持方法。

    值得注意的是,查询参数方法带来了一个值得注意的安全问题:

    因为URI方法存在安全缺陷 (参见 Section 5 ),包括URL 将记录包含访问令牌的内容,不应使用该令牌 除非无法在中传输访问令牌 “授权”请求标头字段或HTTP请求实体正文。

        2
  •  0
  •   juunas    8 年前

    据我所知,没有 documentation 他们说:

    拥有访问令牌后,可以使用它调用Microsoft Graph,方法是将其包含在请求的授权标头中。以下请求获取已登录用户的配置文件。

    没有其他提及,我也从未见过提到过这种方法。

    也许您需要某种代理来处理查询参数并将其移动到标头?

    推荐文章