Microsoft Graph是否在URI中支持OAuth 2.0令牌?

Microsoft Graph是否在URI中支持OAuth 2.0令牌?,oauth,azure-active-directory,microsoft-graph-api,odoo,Oauth,Azure Active Directory,Microsoft Graph Api,Odoo,我正试图通过OAuth 2.0将Odoo 11配置为在Microsoft Azure AD上使用我们的业务目录 Odoo11使用隐式方法获取令牌-这似乎工作正常,我可以从https://login.microsoftonline.com//oauth2/v2.0/authorizeendpoint 然后,它使用的第2.3节中描述的方法读取端点数据。此方法包括向https://graph.microsoft.com/v1.0/me?access_token= 我知道令牌是有效的,因为我可以使用ht

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

Odoo11使用隐式方法获取令牌-这似乎工作正常,我可以从
https://login.microsoftonline.com//oauth2/v2.0/authorize
endpoint

然后,它使用的第2.3节中描述的方法读取端点数据。此方法包括向
https://graph.microsoft.com/v1.0/me?access_token=

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

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

{
“错误”:{
“代码”:“InvalidAuthenticationToken”,
“消息”:“承载访问令牌为空。”,
“内部错误”:{
“请求id”:“2319fe00-8695-481d-8850-d1b8ed973292”,
“日期”:“2018-01-23T19:12:15”
}
}
}

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

据我所知,不支持。他们说:

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

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


也许您需要某种代理,将查询参数移到标题?

Microsoft Graph支持该方法。不支持和方法

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

因为与URI方法相关的安全弱点 (请参阅),包括URL 将记录包含访问令牌的内容,不应使用它 除非无法在中传输访问令牌 “授权”请求头字段或HTTP请求实体体


谢谢你,马克。如果我能控制Odoo的实现,我可能会将其更改为Authorization Request Header Field方法,但在我看来,仅实现其中一种标准化方法确实有点短视。至少我现在可以停止胡闹了!