c# - Azure 可以处理未知电子邮件的“注册和登录”吗?
问题描述
我如何注册一个未知帐户,当他们再次登录时如何识别电子邮件?
我刚刚开始使用 Azure,并且正在使用 C# 和 .Net 5.0 创建一个使用 Azure 进行身份验证的 Web 应用程序。
我的计划是让Azure:
- 处理身份验证并维护用户(电子邮件)列表,仅此而已。
- 接受我们未邀请且事先不知道的用户的注册。
- 创建在租户下注册的用户,您可以在其中查看他们的电子邮件。
我希望Web 应用程序的用户能够注册:
- Microsoft 帐户(Azure、Office 365、Xbox、...)
- 社交帐户(谷歌、脸书、推特……)
- 未知帐户(用户提供的电子邮件 [和密码] 与任何已知组织无关,我们事先不知道该电子邮件)
我可以为 Microsoft 和社交帐户执行此操作,但也无法找到如何为未知帐户执行此操作。
我尝试在网上搜索一段时间并查看了 Microsoft 的示例,例如https://github.com/gowiser/active-directory-aspnetcore-webapp-openidconnect-v2,但我非常不确定该怎么做。
例如,我不知道是否需要使用 Azure AD、Azure AD B2C 或 Azure AD B2B。
解决方案
可以在特定租户下创建用户,并且阻止权限也可用于不属于您组织的未知用户(您可以在天蓝色应用配置服务。
您可以轻松识别不在您的组织域下的用户以及您在租户部分下提供的 Microsoft 和社交帐户等允许的域。
为此,希望此Microsoft 文档对您有所帮助。
Azure AD是一种目录服务,旨在为组织及其在云中的身份管理需求提供服务。您针对 Azure AD 进行开发,您可以使用它来保护您的应用程序 - Azure AD 租户中的用户可以使用它。
您的应用程序针对使用Azure AD (Office 365) 的特定组织或多个组织。
Azure AD B2B只是 Azure AD 的一项功能。它允许组织向其他租户的用户授予对其应用程序和服务的访问权限。从您的应用程序的角度来看,没有任何变化。它仍然是同一个 Azure AD 应用程序。Azure AD B2B有一个 API,可用于创建流程以邀请来自另一个目录的用户,但它不会改变您的应用程序设计等。
Azure AD B2C是另一种基于相同技术构建的服务,但功能与 Azure AD 不同。Azure AD B2C目标是为消费者应用程序构建一个目录,用户可以在其中使用电子邮件 ID 或 Google、FB、MSA 等社交服务提供商(称为联合网关)进行注册。 Azure AD B2C 的目标是允许组织管理在所有应用程序之间共享的客户身份的单一目录,即单一登录。
Azure AD B2C 的目标不是组织用户,而是消费者。 2021 年 3 月更新Microsoft 推出了一种合并 B2B 和 B2C 的新解决方案 - 它被称为“外部身份”。
什么是“外部身份”:它是一种机制,允许您在 Azure AD (corp) 租户中拥有外部用户、为他们进行自我注册并控制他们的流程。
为什么它是 Azure AD B2C 和 Azure AD 之间的合并- 这些是外部用户,就像在 B2C 中一样,他们可以使用自己的用户名/电子邮件(不是公司域)和自助注册,但在 AAD 企业租户内。您还可以通过调用外部系统来扩展外部身份的身份验证流程,类似于在 AAD B2C 中。
先说场景,申请学校:
- 内部用户-> Azure AD,涵盖组织中的内部应用程序、员工等。用户在 Azure AD 中
- 外部用户,如来自其他学校的客座教师、合作伙伴 -> Azure AD B2B、Azure AD 中的客座用户
-
- 外部用户,但不与任何组织关联,例如需要在特定应用程序中访问学生成绩的家长 -> 外部身份,他们可以自行注册,它们存在于特定应用程序的上下文中,您可以调用其他 API 进行检查,例如,如果他们在注册期间匹配 CRM 中的记录
- 外部用户,对互联网开放,例如学生艺术竞赛 -> Azure AD B2C。任何人都可以注册,学生、教师和员工都可以通过 Azure AD 访问它。
定价更新:有影响 Azure AD B2C 和外部身份的定价更新。
首先 -价格是每月活跃用户 (MAU)。MAU 是指有人在计费周期(月)内至少登录一次。
第二 - Azure AD B2C 或外部身份中的前 50k 用户是免费的。所以一个月内的前 5 万名用户是免费的——接下来是付费的,所以一个月内 6 万名活跃用户的费用大约是 16 美元。
简单: Azure AD - 面向组织及其企业用户的 应用Azure AD B2C - 面向客户的应用,例如移动应用、购物门户等。
有关 Azure AD 的更多参考:阅读此博客文章
推荐阅读
- regex - sed 避免替换以 @ 开头的行
- ruby - Ruby 的 Docker 卷挂载问题
- c# - 寻找一种在 azure blob 存储中编辑我的 JSON 文件而不从 C# MVC 代码下载文件的方法
- c# - LUIS/QnA 制造商有没有办法在用户的回答来自选择提示时忽略它?
- sql - 从 Google BigQuery 中的嵌套表中删除重复项
- codeigniter - 循环不适用于在 codeigniter 中发送电子邮件
- ios - 是不是 Alamofire 支持 http2 的新功能?
- spring-security - 如何在 Spring Security 中从 oauth 服务器返回的用户声明中设置用户权限
- c++ - 为什么来自 (JNIenv*)->GetStaticMethodID 的“java.lang.NoSuchMethodError:没有静态方法”?
- powershell - Powershell 确定活动以太网适配器和他的 MAC