You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Outlook加载项旁加载时读取清单中的客户自定义OAuth信息?

实现方案:读取Outlook加载项清单中的客户专属OAuth信息并共享

完全可以实现你的需求,核心思路是通过加载项清单嵌入自定义配置,结合Office.js API读取配置,再通过组织级存储实现用户共享访问,具体步骤如下:

  • 在客户专属清单中嵌入OAuth配置
    不管是XML还是JSON格式的加载项清单,都可以通过扩展节点添加客户专属的OAuth信息。以XML清单为例,可在<Resources>节点下添加自定义扩展属性:

    <Resources>
      <bt:Urls>
        <!-- 加载项原有资源URL -->
      </bt:Urls>
      <ExtendedProperties>
        <ExtendedProperty Name="ClientOAuthConfig" Value='{"ApplicationID":"CLIENT_A_APP_ID","TenantID":"CLIENT_A_TENANT_ID","Scope":"Mail.Read User.Read"}'/>
      </ExtendedProperties>
    </Resources>
    

    每个客户的清单中替换对应的值即可。

  • 加载项启动时读取清单配置
    使用Office.js提供的Office.context.mailbox.getManifestAsync方法获取完整清单内容,解析后提取自定义OAuth信息。示例代码:

    Office.initialize = function () {
      Office.context.mailbox.getManifestAsync(function(result) {
        if (result.status === Office.AsyncResultStatus.Succeeded) {
          const manifestXml = result.value;
          const parser = new DOMParser();
          const xmlDoc = parser.parseFromString(manifestXml, "text/xml");
          const oauthConfigNode = xmlDoc.querySelector('ExtendedProperty[Name="ClientOAuthConfig"]');
          if (oauthConfigNode) {
            const oauthConfig = JSON.parse(oauthConfigNode.getAttribute('Value'));
            // 拿到客户专属的ApplicationID、TenantID、Scope
            const { ApplicationID, TenantID, Scope } = oauthConfig;
            // 后续处理存储或直接使用
          }
        } else {
          console.error('读取清单失败:', result.error.message);
        }
      });
    };
    
  • 存储配置供组织内用户共享
    要让组织内所有用户都能访问该配置,需使用组织级存储方案:

    • 利用Microsoft Graph API:管理员旁加载后,加载项将配置写入Azure AD应用程序的组织级扩展属性,用户使用时通过Graph API读取该属性(需提前在清单中声明Graph相关权限并获得管理员同意)。
    • 借助Azure存储:在你的Azure存储账户中为每个客户创建专属容器,管理员首次启动加载项时将配置写入容器,用户使用时加载项从对应容器读取(需配置Azure AD权限,确保仅该组织用户可访问)。
  • 关键注意事项

    • 清单中的OAuth信息需加密存储,避免明文暴露敏感数据。
    • 确保加载项具备读取清单的权限(默认Outlook加载项已拥有该权限)。
    • 使用Graph或Azure存储时,需提前在清单中声明对应权限,并引导客户管理员完成权限同意流程。

内容的提问来源于stack exchange,提问作者Suraj Sinha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 03:42:19