尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

.NET Core WebAPI 中使用 MISE + S2S 的三种方式

.NET Core WebAPI 中使用 MISE + S2S 的三种方式
📅 发布时间:2026/6/20 7:57:48

.NET Core WebAPI 中使用 MISE + S2S 的三种方式

在 .NET Core WebAPI 中集成 MISE (Microsoft Identity Service Endpoint) 与 S2S (Service-to-Service) 认证授权时,常见有三种写法。本文将分别介绍它们的用法、配置方式,并在最后进行对比。


方式一:AddMicrosoftIdentityWebApi

用法

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddMicrosoftIdentityWebApi(Configuration.GetSection("AzureAd"));

配置示例

{"AzureAd": {"Instance": "https://login.microsoftonline.com/","TenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","ClientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","Audience": "api://your-api-app-id"}
}

特点

  • 通用的 Azure AD 集成方式,支持用户登录和 S2S 场景。

  • 需要手动配置 Issuer、Audience 等。

  • 灵活度高,可自定义授权策略。

方式二:AddAuthentication(S2SAuthenticationDefaults.AuthenticationScheme).AddMiseWithDefaultModules

用法

services.AddAuthentication(S2SAuthenticationDefaults.AuthenticationScheme).AddMiseWithDefaultModules(Configuration);

配置示例

{"Mise": {"TenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","ClientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","Audience": "api://your-api-app-id","Authority": "https://login.microsoftonline.com/"}
}

特点

  • 专门针对 S2S 场景的封装。

  • 自动绑定配置并附加默认模块:

  • Token 验证模块

  • 日志模块

  • 健康检查模块

  • 缓存模块

  • 开箱即用,减少手工配置。

方式三:AddS2SAuthentication + AddMise + EnableTokenAcquisition

用法

builder.AddS2SAuthentication(S2SAuthenticationDefaults.AuthenticationScheme, config);builder.Services.AddMise(config, options.ClientId).EnableTokenAcquisitionToCallDownstreamApiAndDataProviderAuthentication(S2SAuthenticationDefaults.AuthenticationScheme).AddInMemoryTokenCaches();

配置示例

{"Mise": {"TenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","ClientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","ClientSecret": "your-client-secret","Audience": "api://your-api-app-id","Authority": "https://login.microsoftonline.com/"}
}

特点

  • 同时完成 入站 Token 验证 和 出站 Token 获取。

  • 支持调用下游 API(如 Microsoft Graph)。

  • 内置 Token 缓存机制,提升性能。

  • 更适合微服务场景:既能被调用,又能调用其他服务。

📊 三种方式的差异对比

方式 配置绑定 Token 验证 默认模块 下游 API 调用 缓存支持 适用场景
AddMicrosoftIdentityWebApi 手动绑定 AzureAd ✅ ❌ ❌ ❌ 通用场景(用户登录 + S2S)
AddMiseWithDefaultModules 自动绑定 Mise 配置 ✅ ✅ 日志/健康检查/缓存 ❌ ✅ 默认缓存 专注 S2S,开箱即用
AddS2SAuthentication + AddMise 手动 + 自动结合 ✅ 可扩展 ✅ 支持下游调用 ✅ 可选缓存 微服务场景,既入站又出站

🔑 总结

  • 方式一:通用,灵活,适合用户登录和简单的 S2S。

  • 方式二:专注 S2S,自动附加模块,开箱即用。

  • 方式三:最完整,既能验证入站 Token,又能获取下游 Token,支持缓存,适合复杂微服务架构。

仔细介绍

  • services.AddAuthentication(S2SAuthenticationDefaults.AuthenticationScheme)这个只是注册了一个Auth 的schema, 但是缺乏验证token的逻辑。如果不用上面的MISE,我们需要手动提供token验证的方式。下面是手动的方式
services.AddAuthentication(S2SAuthenticationDefaults.AuthenticationScheme).AddJwtBearer(S2SAuthenticationDefaults.AuthenticationScheme, options =>{options.Authority = "https://login.microsoftonline.com/{tenantId}/v2.0";options.Audience = "api://your-api-app-id";options.TokenValidationParameters = new TokenValidationParameters{ValidateIssuer = true,ValidIssuer = $"https://login.microsoftonline.com/{tenantId}/v2.0",ValidateAudience = true,ValidAudience = "api://your-api-app-id",ValidateLifetime = true,ValidateIssuerSigningKey = true};});

相关新闻

  • offline meta RL | 论文速读记录
  • 无锡新世源科技有限公司的技术实力怎样?品牌知名度高不高?
  • 2025年比较好的喷射式绞丝染色机/低浴比成衣染色机品牌厂家排行榜

最新新闻

  • 微信二次开发:JSSDK安全授权、Ticket多级缓存与动态签名防刷架构
  • 2026石河子黄金回收优质门店推荐,实时高价上门回收旧金金条 - 速递信息
  • 为什么大厂都在用Kafka?因为高并发系统根本离不开它
  • 免费OpenAI API密钥终极指南:5分钟开启AI开发之旅
  • 深入解析NXP LH7A404 SoC:从电气特性到功耗管理的嵌入式设计实战
  • 从SPX3819到CSM5133SE:国产LDO替代实战中的关键参数与选型考量

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号