获取EWS(SOAP)的oAuth2访问令牌

时间:2017-10-04 09:17:11

标签: java azure oauth-2.0 office365 exchangewebservices

我们正在使用Exchange Web服务(SOAP)向Office 365邮箱添加约会,并希望为此实现oAuth2身份验证。

现有文档并未真正涵盖此用例,有两种方法可以注册应用程序:Azure管理门户(旧方式)和应用程序注册门户(新方式)。

新方法有一些指南,但它们都使用https://graph.microsoft.com作为端点,我们需要https://outlook.office365.com/EWS/Exchange.asmx

我们使用证书并构建客户端断言,但我们无法获得具有https://outlook.office365.com的受众群体声明的令牌。

最接近的是:https://chriswood.me/azure-active-directory-v2-and-exchange-web-services/

它告诉我们如何配置清单中的权限(因为新的应用程序注册门户网站缺少用户界面来执行此操作)。在这里,我们跳过了一个步骤,因为旧的Azure管理门户似乎已经改变了自文章编写以来,我无法在(v1)manaifest中重新创建配置,所以我刚刚合并了发布的内容:

{
  "resourceAppId": "00000002-0000-0ff1-ce00-000000000000",
  "resourceAccess": [
    {
      "id": "dc890d15-9560-4a4c-9b7f-a736ec74ec40",
      "type": "Role"
    }
  ]
}

进入我的清单。但是,如果在请求令牌时我们指定了除https://graph.microsoft.com.default之外的任何内容作为范围,则下一步失败:

我们从以下地址请求令牌:

https://login.microsoftonline.com/ {tenanat ID} /oauth2/v2.0/token

有效载荷:

client_id={client ID}&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&grant_type=client_credentials&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion=eyJ...

但是这给我们带来了一个JWT,其中有一个观众声称是microsoft.graph。如链接文章所述,我们需要https://outlook.office365.com。我们应该如何格式化有效负载中的scope参数?

0 个答案:

没有答案
相关问题