如何在Identity Server 4中集成Microsoft Authenticator实现双因素认证
在Identity Server 4中集成Microsoft Authenticator的实现步骤
1. 安装必要依赖
在Identity Server 4项目中安装Microsoft账户认证包:
- 使用Package Manager:
Install-Package Microsoft.AspNetCore.Authentication.MicrosoftAccount - 使用.NET CLI:
dotnet add package Microsoft.AspNetCore.Authentication.MicrosoftAccount
2. 在Azure门户注册OAuth应用
- 登录Azure门户,进入Azure Active Directory -> 应用注册,点击新建注册。
- 设置应用名称,选择支持的账户类型(推荐选“任何组织目录中的账户和个人Microsoft账户”)。
- 在重定向URI中添加:
https://<你的IdentityServer域名>/signin-microsoft(开发环境可使用https://localhost:<端口>/signin-microsoft)。 - 注册完成后,记录应用程序(客户端)ID;进入证书和密码,新建客户端密码并记录生成的客户端密钥。
3. 配置认证服务
在项目的appsettings.json中添加Microsoft认证的密钥信息:
"Authentication": { "Microsoft": { "ClientId": "你的客户端ID", "ClientSecret": "你的客户端密钥" } }
在Program.cs(.NET 6+)或Startup.cs中配置Microsoft认证:
// Program.cs示例 builder.Services.AddAuthentication() .AddMicrosoftAccount(microsoftOpts => { builder.Configuration.Bind("Authentication:Microsoft", microsoftOpts); }); // 确保Identity Server服务已正确配置 builder.Services.AddIdentityServer() // 你的Identity Server配置(如Clients、IdentityResources等) .AddDeveloperSigningCredential();
4. 启用外部登录支持
- 如果使用Identity Server默认UI,在登录视图中添加Microsoft登录按钮:
<form asp-action="ExternalLogin" asp-route-provider="Microsoft" method="post"> <button type="submit" class="btn btn-primary">使用Microsoft账户登录</button> </form>
- 若自定义登录逻辑,需在外部登录处理端点中指定
provider为Microsoft,引导用户跳转至Microsoft认证页面。
5. 测试与验证
- 启动Identity Server项目,访问登录页面并点击Microsoft登录按钮。
- 跳转至Microsoft账号登录界面完成登录后,系统会自动返回Identity Server并完成认证流程。
- 如需获取更多用户数据,可在Azure应用注册中添加对应API权限(如
User.Read)。
内容的提问来源于stack exchange,提问作者Dev Net
相关产品推荐
相关产品推荐

