基于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
相关产品推荐
相关产品推荐

