Asp.Net Core 3.0 Identity 集成 Microsoft Account OAuth
最近在给使用 Identity Server 开发的登录中心添加第三方授权登录,集成了微信、钉钉、Github,最后还想到使用Windows 10系统的用户,大多数都有 Microsoft 帐号了,如果集成了 Microsoft 帐号,会带来更多方便!于是就研究了 Microsoft Account OAuth 授权的集成。
使用 Microsoft Account 授权的方式有几种:
- Azure Active Directory
- Microsoft Graph
- Azure WebApp
本示例就用注册简单的 WebApp 实现吧!
一、注册 Azure WebApp
- 访问应用注册页面 https://ms.portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
- 选择个人账户中的应用程序选项卡,点击新注册,选择“仅与个人账户关联”,输入名称,点击注册。
- 注册后,看到应用列表中有这个新注册的应用,点击进入设置页面,可以应用程序(客户端) ID。
- 进入证书与密码页面,点击新客户端密码,创建一个客户端密码。
二、在ASP.NET Core 应用中注册一个ExternalProvider
-
安装Nuget包
<PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.0.0" />
-
注册 Microsoft Account OAuth 验证组件,配置ClientId和ClientSecret,以及回调路径
services.AddAuthentication() .AddMicrosoftAccount(options => { //options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme; options.ClientId = Configuration["Microsoft:ClientId"]; options.ClientSecret = Configuration["Microsoft:ClientSecret"]; options.CallbackPath = new PathString("/signin-microsoft"); });
PS. 集成 Identity Server 4 之后,可能需要设置
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构