微软身份认证杂记:Windows AD、Azure AD、Azure AD B2C
Author:zhoulujun Date:
什么是Windows AD
Windows AD是Windows ActiveDirectories的简称,意为活动目录。
简单来说,活动目录的首要任务或者说主要目标是 客户端的安全管理,然后是客户端的标准化管理。
高级层次,活动目录将成为企业基础架构的根本,所有的高级服务都会向活动目录整合,以利用其统一的身份验证、安全管理以 及资源公用。
Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。
Active Directory使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。
使用 Active Directory,可以远程管理用户、工作站及其权限等资源。因此,它是一个可从网络上的任何地方访问的单一管理界面。
它主要是 Microsoft Windows 的一项功能,但其他操作系统也可以加入其中,例如你可以在 Active Directory 环境中加入Linux 主机。
微软AD核心能力解读
在实际落地应用中,部分企业仅仅使用AD来存储、管理组织架构和用户身份信息(账号密码),为LDAP应用提供身份认证和授权;还有一部分企业使用AD的组策略、文件访问权限等来管理Windows计算机。
AD作为身份管理的最佳实践,功能十分强大,其中有6大核心功能是企业在寻找AD国产化替代方案时应该预先了解的信息。它决定着后续产品选型及建设方向是否准确、清晰,以及投入成本的高低。
什么是域
简而言之,域可以称为共享公共 Active Directory 数据库的所有 Active Directory 对象(如用户、计算机、组等)的集合或结构,并由称为域控制器的域的主服务器管理。域始终以其唯一的名称来引用,并且具有正确的域名结构。
域名示例:rootdse.lab,此域名中的ROOTDSE代表其NetBIOS名称
我们可以将Active Directory基础结构拆分成多个单独的域,以创建更小的边界,以便可以在大型网络中分离不同域的管理任务。在Active Directory环境中,域还可以为管理某些设置(如密码策略和帐户锁定策略)创建边界,以便它们只能应用于域级别的域用户帐户。我们将在本系列的后面部分详细讨论组策略和错误配置的策略。
域树(Domain Tree):
域树是 Active Directory 中多个具有信任关系的域的集合,这些域共享一个公共的 DNS 命名空间。每个域都有一个唯一的 DNS 名称,形成层次化的结构,例如 http://netstar.com 下的 http://it.netstar.com 和 http://hr.netstar.com。域树通过自动信任关系,实现了跨域的资源访问和管理。
域森林(Domain Forest):
域森林是 Active Directory 的最高层次结构,它包含一个或多个域树,这些域树共享一个全局目录、架构和配置。森林中的所有域默认通过双向传递信任关系连接,允许跨域资源访问和身份验证。这些信任关系可以根据企业的安全策略进行调整,以限制或允许特定域之间的访问。森林提供了统一的管理框架,支持复杂的企业网络结构。
组织单位 (Organizational Unit, OU):
OU 是域中的容器,用于组织和管理对象。域管理员可以使用 OU 来分组用户、计算机和其他资源,并应用组策略。OU 结构允许灵活的管理权限委派和分层次的管理。
域中包含的几个重要组件:
组、用户、计算机等对象。
身份认证服务
组策略
DNS
DHCP
Active Directory 是免费的吗?
虽然 AD 实际上包含在 Windows Server 中,但域控制器需要另外收费,也就是 Windows Server 的许可费。微软通过客户端访问许可证(CAL)制度每月向部署 AD 的企业收取相关费用。
不过,CAL 还只是表面成本,AD 的其他部署成本还包括相关基础架构、Windows Server 软件、Mac 和 Linux 绑定软件、身份联合、运维、管理和安全保障费用。
何计算 Active Directory 的成本?
估算 AD 成本有一个非常简单的公式:
AD 成本 = 服务器费用 + 软件费用 + 托管费用
+备份费用 +安全费用 + 监控费用
+VPN 费用+ IT 管理员费用
+第三方软件费用
+多因子身份认证费用 +治理费用
通常,当一个企业发展到大约 20 个团队成员规模时,就需要开始考虑使用目录服务了。
一般来说,大型企业会更倾向于使用 AD。除了企业之外,高校和政府组织也都需要目录服务,以便有效保障对 IT 资源的访问安全
微软AD的统御能力
据统计,全球有超过 91% 的具规模企业将 Microsoft Active Directory (微软AD)作为数字化身份的基础底座。
AD 在大型央国企尤其偏制造业、金融机构中也同样是身份管理的最佳实践,为 Windows 计算机、Exchange、云桌面(如Citrix、VMware)、ERP、OA 等 IT 资源提供统一认证与管理。
而随着企业不断扩张,运营 AD 的成本会越来越高,流程也会更复杂。
因此,很多企业一直在寻找其他方案来解决这个问题,希望最终能从 AD 迁移。
但是奈何微软生态太庞大,特别是国外, Microsoft 365 或单点登录(SSO)实在是非常香——国内腾讯文档、飞书文档、WPS等,新生代觉得office out了!
什么是Azure AD
Azure AD 是云身份管理解决方案,用于管理 Azure 云中的用户。
几十年来,微软凭借 Active Directory(AD)在 IT 身份管理领域拥有强大的影响力。
Azure Active Directory就是把AD搬到云上做成了PaaS服务,好处包括免除企业部署和维护的成本,可以轻松扩展。但是它最大的优势是,可以和企业原有的AD做federation。
它通过本地和混合云解决方案扩展了 AD,以应对日益普及的 Web 应用和远程办公模式。
国内的众多产品顶多是提供了computing这一个产品,至于Storage我就不说了国内基本就一网盘而已。而Azure能提供的是整套Infrastructure。要web有web,要数据库有数据库,要集群给你load balancing,要storage给你多种不同应用范围的选择。除开互联网业务,Azure也可以实现全套IT基础设施,你可以把你公司AD整个搬到Azure而在办公室只需要普通工作电脑。VPN接入,分支办公室通过Internet的互相通信都可以搞定。
Azure 可以提计算、存储、网络、mobile、大数据、企业集成、安全和身份管理、数据分析等等70多种的企业级服务,微软的Azure 完全是采用自研的软件和系统来构建的,而不是采用linux+KVM+Ceph 等等开源技术构建的
一旦一块服务被绑定,以后更换或者升级是非常巨大的成本,那就不如现在就用有潜力支持的供应商
Azure Active Directory(Azure AD)是微软提供的一项云身份和访问管理服务,也就是IDP(身份验证提供商)
腾讯云支持基于 SAML 2.0(安全断言标记语言 2.0)的联合身份验证,SAML 2.0 是许多身份验证提供商(Identity Provider, IdP)使用的一种开放标准。您可以通过基于 SAML 2.0 联合身份验证将 Azure Active Directory 与腾讯云进行集成,从而实现 Azure AD 帐户自动登录(单一登录)腾讯云控制台管理腾讯云的资源,不必为企业或组织中的每一个成员都创建一个 CAM 子用户。
在其最基本的层级上,Azure AD 是免费的,包含在 M365 的订阅中。但是,IT 管理员需要购买“Premium”高层级(以及额外的附加组件),才能充分利用它的功能。
附加服务可能包括:
Intune:可以管理 Android、iOS、Mac、Linux 和 Windows 设备。微软还将远程协助划分进了 Intune 的高级附加服务里。
Entra:用于验证和管理外部(非微软)身份。
Azure AD B2C包含了一些先进的功能,如多因素身份验证和自定义权利等。
谷歌全球服务宕机的真实原因公布
2020年12 月 14 日,大量用户反馈 Google 公司服务中断, YouTube、Gmail、Google 云端硬盘、Google Search 等服务无法正常使用。此外,不少热门手机游戏也受到了波及,因为需要用谷歌账户登录。
这次长达 50 分钟的宕机,致使全球多个国家及地区用户受到严重影响。全球网友震惊的同时,也不忘吃瓜,一时间 #Googledown 话题冲上了推特当日热搜。
据谷歌在其 Google Cloud Status Dashboard 发布的本次宕机事件报告,宕机原因为谷歌内部问题,而不是受到
任何网络攻击的结果。
简单来说,是由于内部存储配额的问题使 Google 身份验证系统中断,导致宕机了 50 分钟。
复盘此次 Google 宕机事件, 「身份验证系统」的重要性再次凸显了出来。一旦身份环节出问题,整个服务都将受到影响,可谓是 牵一发而动全身。
对绝大部分企业和组织来说,构建高度稳定的身份服务体系都是复杂且困难的,不仅如此,企业更需要保证身份服务的安全性和灵活性。越来越多的企业和组织发现,采用专业厂商提供的身份认证解决方案相比自行构建来说更稳定、更快捷、更具性价比。
Azure AD B2C是什么?
Azure Active Directory B2C 也称为 Azure AD B2C,它是以服务的形式提供企业到客户的标识管理服务,用于以自定义的方式控制客户在使用 ios,android,.net,spa以及其他应用程序如何注册,登录和管理其个人资料。客户使用其首选的社交,企业或者本地账户标识对应用程序和API进行单一登录访问。
Azure AD B2C 是一种贴牌式身份验证解决方案。 你可以使用自己的品牌自定义整个用户体验,使其能够与 Web 和移动应用程序无缝融合。可以自定义当用户注册、登录和修改其个人资料信息时 Azure AD B2C 显示的每一页。 可以自定义用户旅程中的 HTML、CSS 和 JavaScript,使 Azure AD B2C 体验的外观类似于应用程序的原生组成部分。
Azure AD B2C 使用基于标准的身份验证协议,包括 OpenID Connect、OAuth 2.0 和 SAML。 它与大多数新式应用程序和商用现货软件相集成。例如,FaceBook,微博,谷歌账号,微信等等。Azure AD B2C 充当 Web 应用程序、移动应用和 API 的中心身份验证机构,使你能够为所有这些应用构建单一登录 (SSO) 解决方案。 集中收集用户个人资料和偏好信息,并捕获有关登录行为和注册转换的详细分析。
Azure AD B2C 还可以与外部用户存储集成,Azure AD B2C 提供一个目录,其中可以保存每个用户的 100 个自定义属性。 但是,你也可以与外部系统相集成。 例如,使用 Azure AD B2C 进行身份验证,但将权限委托给用作客户数据真实来源的外部客户关系管理 (CRM) 或客户忠诚度数据库。
另一种外部用户存储方案是让 Azure AD B2C 处理应用程序的身份验证,但与存储用户个人资料或个人数据的外部系统相集成。 例如,满足区域或本地数据存储策略规定的数据驻留要求。
租户
在 Azure Active Directory B2C (Azure AD B2C) 中,租户表示组织,也是用户的目录。 每个 Azure AD B2C 租户都是独特的,独立于其他 Azure AD B2C 租户。 Azure AD B2C 租户不同于你可能已有的 Azure Active Directory 租户,Azure AD B2C 租户是开始使用 Azure AD B2C 之前必须先创建的第一个资源。
账户
用户可以通过使用者帐户登录到通过 Azure AD B2C 保护的应用程序。 但是,具有使用者帐户的用户无法访问 Azure 资源(例如 Azure 门户)。可将使用者帐户关联到以下标识类型:
本地标识:将用户名和密码存储在 Azure AD B2C 目录本地。 我们通常将此类标识称为“本地帐户”。
社交或企业标识:用户的标识由 Microsoft、ADFS 或 Salesforce 等联合标识提供者进行管理。
具有使用者帐户的用户可以通过多个标识(例如用户名、电子邮件、员工 ID、政府 ID 等)登录。 单个账户可以有多个本地和社交标识。
外部标识提供者-第三方授权中心
可以配置 Azure AD B2C,以允许用户使用外部社交或企业标识提供者 (IdP) 提供的凭据登录到你的应用程序。 Azure AD B2C 支持外部标识提供者和任何支持 OAuth 1.0、OAuth 2.0、OpenID Connect、SAML 或 WS-Federation 协议的标识提供者。使用外部标识提供者联合,可让使用者通过其现有的社交帐户或企业帐户登录,而不必仅仅出于访问你的应用程序的目的创建一个新帐户。
在注册或登录页上,Azure AD B2C 会提供外部标识提供者的列表,供用户选择用来登录。 用户选择一个外部标识提供者后,将会转到(重定向到)所选提供者的网站,以完成登录过程。 用户成功登录后,将返回到 Azure AD B2C,以便对应用程序中的帐户进行身份验证。
用户流或者自定义策略
Azure AD B2C 的核心优势在于它的可扩展策略框架。 策略描述用户的标识体验,例如注册、登录和配置文件编辑。
在 Azure AD B2C 中,可以通过两个主要途径来提供这些标识体验:用户流和自定义策略。
用户流是我们提供的预定义的内置可配置策略,使你能够在几分钟内创建注册、登录和策略编辑体验。
使用自定义策略可为复杂的标识体验方案创建自己的用户旅程。
用户流和自定义策略均由 Identity Experience Framework(Azure AD B2C 的策略业务流程引擎)提供支持。
协议,令牌
Azure AD B2C 支持 OpenID Connect 和 OAuth 2.0 协议。 在 OpenID Connect 的 Azure AD B2C 实现中,应用程序通过向 Azure AD B2C 发出身份验证请求,来启动此认证。向 Azure AD B2C 发出请求后会获得一个安全令牌,例如 ID 令牌或访问令牌。 此安全令牌定义用户的标识。 令牌是从 Azure AD B2C 终结点(例如 /token 或 /authorize 终结点)接收的。 通过这些令牌,可以访问用于验证标识以及允许访问安全资源的声明。
上图显示了 Azure AD B2C 如何使用同一身份验证流中的各种协议进行通信:
信赖方应用程序使用 OpenID Connect 向 Azure AD B2C 发起授权请求。
当应用程序的用户选择通过使用 SAML 协议的外部标识提供者登录时,Azure AD B2C 将调用 SAML 协议来与该标识提供者通信。
用户使用外部标识提供者完成登录操作后,Azure AD B2C 会使用 OpenID Connect 将令牌返回给信赖方应用程序。
2.6,应用程序集成Azure AD B2C
当用户想要登录到你的应用程序时(无论是 Web、移动、桌面还是单页应用程序 (SPA)),该应用程序都会向用户流或自定义策略提供的终结点发起授权请求。 用户流或自定义策略定义并控制用户的体验。 当用户完成用户流(例如注册或登录流)后,Azure AD B2C 会生成一个令牌,然后将用户重定向回到应用程序。
多个应用程序可以使用同一个用户流或自定义策略。 单个应用程序可以使用多个用户流或自定义策略。例如,若要登录到某个应用程序,该应用程序将使用注册或登录用户流。 用户登录后,他们可能想要编辑其配置文件,在这种情况下,应用程序将发起另一个授权请求(这一次使用的是配置文件编辑用户流)。
2.7 支持自定义UI
对于用户注册、登录和修改用户资料等常见的功能,AAD B2C 提供了用户流的功能,直白的讲,就是提供了这些模块的UI,并且可以自定义样式。
参考文章:
https://docs.azure.cn/zh-cn/active-directory-b2c/overview
https://zhuanlan.zhihu.com/p/717962046
https://zhuanlan.zhihu.com/p/620623499
https://zhuanlan.zhihu.com/p/435275458
https://blog.csdn.net/yushuzhen2008/article/details/105464832
转载本站文章《微软身份认证杂记:Windows AD、Azure AD、Azure AD B2C》,
请注明出处:https://www.zhoulujun.cn/html/tools/cloudServices/Azure/9288.html