.NET 5 Web应用配置Azure AD与GSuite账号SSO认证方案咨询
SSO认证需求实现方案选型建议
核心适配方案结论
你的场景优先选择Azure AD B2C实现,完全覆盖你要求的两类账号登录、域名限制需求,之前测试演示站点不支持GSuite是因为演示环境仅配置了微软账号作为身份源,自行配置B2C租户可灵活接入指定身份源。
方案1:Azure AD B2C实现路径(推荐)
- 身份源配置:在B2C租户中分别接入两类外部身份提供商:
- 自有企业Azure AD:以OIDC身份源形式接入,用户选择企业账号登录时直接跳转你企业现有Azure AD完成认证,无需提前在主AD中创建访客用户,和B2B的强制访客逻辑完全独立
- GSuite账号:同样以OIDC身份源形式接入,配置时指定托管域名参数,即可强制仅允许你指定的企业GSuite域名账号登录,自动拦截普通个人Gmail账号的访问请求
- 代码适配:.NET 5项目直接引入
Microsoft.Identity.Web库对接B2C即可,无需单独开发两套认证逻辑,B2C会统一处理所有身份源的认证回调,返回标准化的用户声明给你的应用 - 部署适配:和Azure App Service原生兼容,无需修改应用部署配置,认证校验逻辑全部遵循标准OpenID Connect协议
方案2:轻量自研实现路径(无额外租户成本)
如果你的需求仅为当前固定两类身份源,不需要扩展其他认证能力,也可以直接在.NET 5项目中同时配置两套认证方案:
- 第一套配置企业Azure AD认证,使用Azure AD官方认证模块对接你现有应用注册即可
- 第二套配置Google认证,在认证配置的
OnCreatingTicket事件中添加邮箱后缀校验逻辑,仅允许你指定的GSuite企业域名账号通过认证,即可实现普通Gmail账号的拦截 - 自行在登录页添加两个登录入口按钮,分别跳转对应身份源的认证端点即可
选型参考
- 若后续有扩展其他身份源、自定义登录流程、自助账号管理等需求,优先选择B2C,长期维护成本更低
- 若仅需满足当前两类固定账号登录需求,轻量方案即可实现,无需额外开通B2C租户
内容的提问来源于stack exchange,提问作者anonuser1
相关产品推荐
相关产品推荐

