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

基于Blazor开发的内部Excel加载项:身份验证配置、分发机制与部署方案技术问询

基于Blazor开发的内部Excel加载项:身份验证配置、分发机制与部署方案技术问询

嘿,我来帮你一步步拆解这些问题,理清楚每个环节的操作逻辑:

一、Blazor WebAssembly配置公司Entra ID身份验证

因为你的加载项是内部使用,用公司Entra ID做身份验证完全可行,具体步骤是:

  • 先在公司的Entra ID租户里注册一个单页应用(SPA),注册时要设置重定向URI,格式为https://<你的Blazor应用域名>/authentication/login-callback,本地开发阶段可以额外加https://localhost:5001/authentication/login-callback方便调试。
  • 给Blazor WASM项目安装Microsoft.Authentication.WebAssembly.Msal这个NuGet包,这是官方适配的身份验证依赖包。
  • 编辑项目根目录的Program.cs,添加身份验证服务的配置代码:
    builder.Services.AddMsalAuthentication(options =>
    {
        builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
        // 这里替换成你Entra ID应用的API权限范围,格式是api://<客户端ID>/自定义范围名
        options.ProviderOptions.DefaultAccessTokenScopes.Add("api://12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx/access_as_user");
    });
    
  • 接着在appsettings.json里填入Entra ID的核心配置信息:
    {
      "AzureAd": {
        "Authority": "https://login.microsoftonline.com/<你的公司租户ID>",
        "ClientId": "<刚才注册的SPA应用客户端ID>",
        "ValidateAuthority": true
      }
    }
    
  • 最后在Blazor的组件里,用AuthorizeView组件包裹需要权限验证的内容,或者通过AuthenticationStateProvider来获取用户身份状态,确保只有公司内部用户能访问加载项功能。

二、Excel加载项的分发逻辑

这里你可能混淆了两个部分,我给你理清楚:

  • 你**只需要上传加载项的清单文件(manifest.xml)**到Microsoft 365管理中心就行,不需要上传Blazor WASM应用本身。
  • 内部分发的操作路径是:登录Microsoft 365管理中心,进入“集成应用”模块,选择“上传自定义应用”,然后上传你的manifest文件,之后可以直接分配给公司内部的特定用户或用户组,这样这些用户打开Excel就能看到你的自定义加载项了。
  • 重点注意:manifest文件里的SourceLocation节点必须填写你部署好的Blazor WASM应用的根URL(比如https://your-company-domain.com/index.html),Excel就是通过这个地址来加载你的Blazor应用的。

三、Blazor WebAssembly的部署方案(IIS/Azure Web App都支持)

不管是IIS还是Azure Web App都能完美部署Blazor WASM,我分别给你说下关键步骤:

部署到Azure Web App

  • 推荐用Azure静态Web应用,因为Blazor WASM本质是静态资源,静态Web应用的托管成本更低、性能也更适配。你可以在Azure门户直接创建“静态Web应用”资源。
  • 发布方式很灵活:用Visual Studio的“发布”向导,直接选择Azure静态Web应用,跟着提示完成配置就能一键发布;也可以用Azure CLI命令行发布,比如:
    az staticwebapp deploy --name YourBlazorAddinApp --resource-group YourResourceGroup --location eastus --src bin/Release/net8.0/publish/wwwroot --app-location /
    
  • 部署完成后记得启用HTTPS(Azure静态Web应用默认会配置),并且如果需要的话绑定公司的自定义域名,确保地址是公网可访问的。

部署到IIS

  • 先在你的IIS服务器上安装对应.NET版本的ASP.NET Core托管捆绑包(比如你用.NET 8就装.NET 8的托管包),这是让IIS能识别Blazor静态资源的前提。
  • 在Visual Studio里把Blazor WASM项目发布到本地文件夹,发布目标选“文件夹”,发布完成后会得到一个wwwroot目录。
  • 在IIS里新建一个网站,物理路径指向刚才发布的wwwroot文件夹,然后配置HTTPS绑定(必须,因为Excel加载项强制要求HTTPS访问),上传公司的SSL证书完成配置。
  • 最后确认IIS的“静态文件”功能已经启用,这样IIS才能正确返回Blazor的静态资源文件。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 07:23:11