InvalidAudienceForResource 异常 Exchange.Callback.iOS 的 Outlook 中的 V2 令牌

InvalidAudienceForResource exception with Exchange.Callback.V2 token in Outlook for iOS

我有一个具有 ReadWriteMailbox 权限的 Outlook 加载项调用 Office.context.mailbox.getCallbackTokenAsync({isRest: true}) 来获取通常有效的身份验证令牌:

{
    "oid": "oid",
    "puid": "puid",
    "smtp": "xxx",
    "upn": "xxx",
    "clientappid": "3382ce5c-ed22-4195-aeca-c5b67384706f",
    "ver": "Exchange.Callback.V2",
    "appid": "00000002-0000-0ff1-ce00-000000000000",
    "deploymentid": "https://outlook.office365.com/",
    "tid": "tid",
    "acr": "1",
    "appidacr": "0",
    "scp": "Mail.ReadWrite Mail.Send Calendars.ReadWrite Contacts.ReadWrite",
    "nbf": 1588259750,
    "exp": 1588260650,
    "iss": "https://outlook.office365.com/",
    "aud": "a_vanity_url",
    "happ": "API"
}

在 iOS 的 Outlook 中,我现在在少数环境中看到此异常:

{
    "readyState": 4,
    "responseText": "omitted_for_redundancy",
    "responseJSON": {
        "error": {
            "code": "InvalidAudienceForResource",
            "message": "The audience claim value is invalid for current resource. 
                        Audience claim is 'a_vanity_url', 
                        request url is 'https://outlook.office365.com/api/v2.0/me/messages/a_message_id' 
                        and resource type is 'Exchange'.",
            "innerError": {
                "requestId": "requestId",
                "date": "2020-04-30T15:15:51"
            }
        }
    },
    "status": 401,
    "statusText": "Unauthorized"
}

共同的主题似乎是每当配置 MDM/MAM 时(通常是 Intune),它发生在租户上的所有托管设备上,并且会继续失败,直到设备取消注册并且其 Outlook 帐户被重新注册删除并重新添加。

当我请求授权令牌以防止此失败时,我可以做些什么不同的事情吗?或者 iOS 的 Outlook 是否需要 运行 加载项的设备管理设置?

感谢您的报告,看来这不是插件问题。您能否通过转至 Link,导航至 "Troubleshooting + Support" 提出 Intune 支持案例。相应的团队将解决该问题。

此处的解决方法是使用 JWT 的 audience 声明中返回的虚名域作为 API URL 基础,而不是 Office.context.mailbox.restUrl 返回的值。