【问题标题】:Outlook WEB Add-in execution of getAccessToken returns status code 302Outlook WEB 插件执行 getAccessToken 返回状态码 302
【发布时间】:2018-06-04 08:56:06
【问题描述】:

我严格按照 this article 构建 Outlook WEB 插件,但是当我执行 getAccessToken 时收到 302:

缺少此加载项的授权。

姓名:

预授权缺失

这是为什么呢?我的加载项已在 portal 中很好地注册。我还需要做其他事情吗?这个请求的授权类型是什么,我应该把它放在哪里?

$("#getAccessTokenBtn").click(function () {
        Office.context.auth.getAccessTokenAsync(function (result) {
            if ("succeeded" === result.status) {
                // Use this token to call Web API
                var ssoToken = result.value; 
            } else {
                if (13003 === result.error.code) {
                    // SSO is not supported for domain user accounts, only
                    // work or school (Office 365) or Microsoft Account IDs.
                } else {
                    // Handle error
                }
            }
        });
    });

这是我的清单:

<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
  <Requirements>
    <bt:Sets DefaultMinVersion="1.3">
      <bt:Set Name="Mailbox" />
    </bt:Sets>
  </Requirements>
  <Hosts>
    <Host xsi:type="MailHost">
        ...
    </Host>
  </Hosts>

  <Resources>
    ...
  </Resources>

  <WebApplicationInfo>
    <Id>94x668mb-461c-4r4e-851n-fb9721222e31</Id>
    <Resource>api://localhost:44374/94x668mb-461c-4r4e-851n-fb9721222e31</Resource>
    <Scopes>
      <Scope>profile</Scope>
      <Scope>user.read</Scope>
    </Scopes>
  </WebApplicationInfo>
</VersionOverrides>

我发现 troubleshooting page 提示错误 13005 如下:

13005 无效的赠款。这通常意味着 Office 尚未获得加载项 Web 服务的预授权。有关详细信息,请参阅 Create the service applicationRegister the add-in with Azure AD v2.0 endpoint (ASP.NET) 或 Register the add-in with Azure AD v2.0 endpoint (Node JS)。如果用户未授予您的服务应用程序对其个人资料的权限,也可能发生这种情况。

这是什么意思?

在我请求访问令牌之前,我是否应该通过导航到以下 URL 来同意关注 this documentation

https://login.microsoftonline.com/common/adminconsent?client_id=94x668mb-461c-4r4e-851n-fb9721222e31

【问题讨论】:

    标签: javascript azure office-js outlook-web-addins


    【解决方案1】:

    是的。开发时,您必须按照here 所述授予管理员同意。

    您收到该错误的另一种可能是您尚未将 Outlook 预授权给插件。使用 AAD 2.0 注册加载项时,请确保您已完成本文的第 10 步:Register SSO add-in with AAD 2.0。最后,如果您还没有,请查看这篇文章,了解适用于 Outlook 插件的任何特殊因素:Authenticate (Outlook) user with an SSO token

    【讨论】:

    • 是的,结果证明这是解决方案。实际上,我只是在您回答之前才找到它,但是谢谢!
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2015-12-29
    相关资源
    最近更新 更多