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

news/2025/12/7 11:01:02/文章来源:https://www.cnblogs.com/kongshu-612/p/19317796

.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};});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/991294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NetCore使用WCF简单方式

服务端代码结构自动生成dotnet new install CoreWCF.Templates dotnet new corewcf --name MyServicek客户端代码结构自动生成dotnet tool install --global dotnet-svcutil dotnet-svcutil --roll-forward LatestMaj…

2025年无锡上料机靠谱厂家推荐:看哪家技术实力强?

本榜单依托无锡地区工业设备市场调研与真实客户口碑,深度筛选出五家专注上料机领域的标杆企业,为企业选型提供客观依据,助力精准匹配适配的上料机合作伙伴。 TOP1 推荐:无锡新世源科技有限公司 推荐指数:★★★★…

2025年度靠谱的实验室反应釜厂家TOP5权威推荐

科研实验的精准性与稳定性,离不开高质量实验室反应釜的支撑。2024年数据显示,国内实验室反应釜市场规模突破60亿元,年增速达28%,但31%的科研机构反馈曾遭遇设备适配性差、售后响应慢、非标定制能力不足等问题——某…

基于Python+Vue开发的婚恋交友管理系统源码+运行步骤+计算机专业

项目简介该项目是基于Python+Vue开发的婚恋交友管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于…

2025-12-07 GitHub 热点项目精选

🌟 2025-12-07 GitHub Python 热点项目精选每日同步 GitHub Trending 趋势,筛选优质 Python 项目,助力开发者快速把握技术风向标~📋 项目列表(按 Star 数排序) 1. microsoft/VibeVoiceOpen-Source Frontier V…

2025年评价高的Q235模具钢/模具钢45#锯切厂家最新权威推荐排行榜

2025年评价高的Q235模具钢/模具钢45锯切厂家权威推荐排行榜行业背景与市场趋势模具钢作为现代制造业的重要基础材料,在汽车、电子、家电、航空航天等领域发挥着不可替代的作用。随着中国制造业向高质量发展转型,模具…

Java集合List详解:从入门到精通 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年质量好的高温风机厂家推荐及选购参考榜

2025年质量好的高温风机厂家推荐及选购参考榜行业背景与市场趋势随着工业4.0的深入推进和"双碳"目标的提出,高温风机作为工业生产中不可或缺的关键设备,正迎来新一轮的技术升级与市场需求增长。2025年,预…

2025年比较好的电柜真空包装袋厂家推荐及选购参考榜

2025年比较好的电柜真空包装袋厂家推荐及选购参考榜 行业背景与市场趋势 随着工业制造、电子设备、化工产品等行业的快速发展,对产品包装的防护性能要求越来越高。电柜真空包装袋作为一种高性能防护包装材料,广泛应…

2025年评价高的高粘瓷砖胶最新TOP厂家推荐

2025年评价高的高粘瓷砖胶TOP厂家推荐行业背景与市场趋势随着建筑行业的持续发展和装修标准的不断提高,高粘瓷砖胶作为现代建筑装饰中不可或缺的材料,其市场需求呈现稳步增长态势。2025年,随着绿色建筑和装配式建筑…

2025年评价高的高粘瓷砖胶最新TOP厂家推荐

2025年评价高的高粘瓷砖胶TOP厂家推荐行业背景与市场趋势随着建筑行业的持续发展和装修标准的不断提高,高粘瓷砖胶作为现代建筑装饰中不可或缺的材料,其市场需求呈现稳步增长态势。2025年,随着绿色建筑和装配式建筑…

2025年质量好的玄武岩除尘布袋厂家最新权威推荐排行榜

2025年质量好的玄武岩除尘布袋厂家权威推荐排行榜 行业背景与市场趋势 随着环保政策的日益严格和工业粉尘治理需求的增长,除尘布袋作为工业除尘系统的核心部件,其市场需求持续攀升。玄武岩纤维除尘布袋因其耐高温、…

Python线程指南

Python 线程指南:Python 提供了 threading 模块来实现多线程编程,适合 I/O 密集型任务(如网络请求、文件读写),但在 CPU 密集型任务中受限于 GIL(全局解释器锁)。🔧 基础概念线程:程序执行的最小单元,一个进…

山东AI公司哪家强?2025年最新区域产业观察及5家高潜力企业推荐

在数字化转型浪潮席卷千行百业的今天,人工智能已从前沿概念演变为驱动产业升级的核心引擎。对于寻求技术赋能的企业决策者而言,面对市场上层出不穷的AI解决方案提供商,一个核心困境日益凸显:如何从众多宣称拥有AI能…

2025年重庆五大板栗鸡店排行榜,南坪好吃板栗鸡店推荐及测评

为帮食客精准锁定适配口味需求的板栗鸡店,避免踩雷走弯路,我们从食材品质(如鸡肉来源、板栗产地)、口味特色(含汤底层次、味型创新)、服务体验(覆盖用餐响应、细节关怀)及真实食客口碑(侧重本地与游客评价)四…

2025年山东AI公司选购决策指南:为企业数智化转型甄选五家可靠伙伴

在数字化转型浪潮席卷千行百业的今天,企业对人工智能技术的需求已从概念探讨全面转向场景化、实效化的落地应用。山东作为中国重要的工业与制造业基地,其本土AI公司正凭借对垂直行业的深刻理解,展现出独特的竞争力。…

【基础】Unity着色器编程的语言和数学基础介绍

着色器编程语言基础 Unity URP(Universal Render Pipeline)管线中主要支持三种着色器语言:GLSL(OpenGL Shading Language)、CG(C for【Unity Shader Graph 使用与特效实现】专栏-直达着色器编程语言基础 Unity U…

凸优化理论(五)-勒让德变换

凸优化理论(五)-勒让德变换勒让德变换一种数学技巧,变量\(x \ \rightarrow\) 变量 \(p\),把 \(f(x)\) 转换到 \(f(p)\) 且不会丢失信息 \(p=\frac{\partial f}{\partial x}\) \(f(p)=px-f(x)\) 存在条件:f(x)是凸…

2025年比较好的三维阻尼铰链行业内知名厂家排行榜

2025年三维阻尼铰链行业内知名厂家排行榜行业背景与市场趋势随着家居五金行业的快速发展,三维阻尼铰链作为现代家具制造中不可或缺的核心部件,其市场需求持续增长。2024-2025年,全球三维阻尼铰链市场规模预计将达到…

完整教程:c#数据持久化:TXT文本保存、序列化与反序列化

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …