Azure AD(一)入门认识
一,引言(吹水)
距离上一次介绍Azure Functions的相关博文以及过期快一个月了,本来早早都想好已经规划好的Azure的相关的学习的路线,无奈还是由于自己文笔不好以及自身太懒,导致博文没有更新。好了,废话也不多说,开始今天的分享!!!
二,正文
什么是Microsoft 表示平台?
今天分享的主题叫 “Azure AD”,全称为 “Azure Active Directory” Azure 活动目录,是不是听起来很拗口,微软官方文档解释到,其实在Azure上的提供的云端的身份表示和资源访问服务,可以帮助员工登录以及访问以下位置的资源:
外部资源,例如 Microsoft Office 365、Azure 门户以及成千上万的其他 SaaS 应用程序。
内部资源,例如公司网络和 Intranet 上的应用,以及由自己的组织开发的任何云应用。
对应开发人员来讲,按照这些理解,我们大概了解到 Azure AD 其实是微软基于云的标识和授权访问管理服务,它可以帮助我们在Azure中登录和访问资源。我们可以通过Azure的标识平台生成应用程序,采用微软表示登录,以及获取令牌来调用受保护的API资源,这里是不是 有点和Identity Server 4 类似,没错,这一切功能也是基于包含Oauth 2.0和Open ID Connect的身份验证服务。
实现标识平台,Azure AD 所支持的项目类型
以上,是引用微软关于 Azure AD介绍的所支持的所有类型的身份认证平台
微软标识平台的发展
微软标识平台由 Azure AD 开发人员平台演变而来。 借助该平台,开发人员可以生成登录用户的应用程序,以及获取令牌调用 API,例如 Microsoft Graph 或受保护的API资源。 它包含身份验证服务、开源库、应用程序注册和配置等等和其他开放人员内容。 微软 标识平台支持行业标准协议,例如 OAuth 2.0 和 OpenID Connect。
借助微软统一标识平台 (v2.0),可以一次性编写代码,然后将任何微软标识身份验证到应用程序。 对于多个平台,标识平台终结点使用完全受支持的开源 Microsoft 身份验证库 (MSAL)。 MSAL 易于使用,为用户提供出色的单一登录 (SSO) 体验,帮助我们实现高可靠性和性能,采用 微软 安全开发生命周期 (SDL) 开发。 调用 API 时,可以将应用程序配置为使用递增同意,这允许你延迟对同意的请求以实现更广的范围,直到应用程序的使用在运行时对此作出保证。 MSAL 还支持 Azure Active Directory B2C,因此,客户可使用其首选的社交、企业或本地帐户标识对应用程序和 API 进行单一登录访问。
借助 Microsoft 标识平台,可将覆盖范围扩展到以下类型的用户:
- 工作和学校帐户(Azure AD 预配帐户)
- 通过 MSAL 和 Azure AD B2C 使用自己的电子邮件或社交标识的客户
可以使用 Azure 门户注册和配置应用程序,并将 Microsoft Graph API 用于编程应用程序配置。
根据自己的进度更新应用程序。 使用 ADAL 库构建的应用程序继续受支持。 混合应用程序组合(包含使用 ADAL 生成的应用程序和使用 MSAL 库生成的应用程序)也受支持。 这意味着使用最新 ADAL 和最新 MSAL 的应用程序将在组合中提供 SSO,SSO 由这些库之间的共享令牌缓存提供。 从 ADAL 更新为 MSAL 的应用程序将在升级时保持用户登录状态。
所有由此,我们可以看出在我们的项目中集成Azure AD来实现身份验证和授权。
微软标识平台开发术语-----开始之前,我们还是先去了解这些术语
- 访问令牌:由授权服务器颁发的一种安全令牌,可供客户端应用程序用来访问受保护的资源服务器。 通常,该令牌采用 JSON Web 令牌 (JWT) 形式,其中包含由资源所有者授予客户端的授权,用于进行所请求级别的访问。
- 应用程序 ID:Azure AD 向应用程序注册颁发的唯一标识符,用于标识特定应用程序和关联的配置。 执行身份验证请求时将使用此应用程序 ID,开发时会向身份验证库提供它。
- 应用程序注册:要允许某个应用程序与标识和访问管理功能集成并将这些功能委托给 Azure AD,必须向 Azure AD 租户注册该应用程序。
- authentication:向访问方质询合法凭据的措施,提供创建用于标识和访问控制的安全主体的基础。
- authorization:授权经过身份验证的安全主体执行某项操作的措施,在 OAuth2 授权流程中:资源所有者向客户端应用程序授权时,允许客户端访问资源所有者的资源
- 授权终结点:授权服务器实现的终结点之一,用来与资源所有者进行交互,以便在 OAuth2 授权流程期间提供授权
- 授权服务器:根据 OAuth2 授权框架的定义,这是在成功验证资源所有者身份并获取其授权之后,负责向客户端颁发访问令牌的服务器。 客户端应用程序在运行时根据 OAuth2 定义的权限授予,通过其权限和令牌终结点来与授权服务器交互
- ID 令牌:授权服务器的授权终结点提供的 OpenID Connect 安全令牌,其中包含与最终用户资源所有者的身份验证相关的声明。 与访问令牌一样,ID 令牌也以数字签名的 JSON Web 令牌 (JWT) 形式来表示。
- 资源所有者:能够授予对受保护资源的访问权限的实体。如果资源所有者是个人,则称为最终用户。 例如,当客户端应用程序想要通过 Microsoft Graph API 访问用户的邮箱时,需要从该邮箱的资源所有者获取权限。
- 资源服务器:托管受保护资源的服务器,该服务器能够接受并响应出示访问令牌的客户端应用程序发出的受保护资源请求。 它也称为受保护的资源服务器或资源应用程序。
- 角色:提供某种方式让资源服务器控制其受保护资源的访问权限。 有两种类型的角色:“用户”角色为需要资源访问权限的用户/组实现基于角色的访问控制,“应用程序”角色为需要访问权限的 客户端应用程序 实现相同的访问控制
- 范围:与角色一样,范围提供某种方式让资源服务器控制其受保护资源的访问权限。 对于资源所有者已为其提供资源的委托访问权限的客户端应用程序,范围可用于实现基于范围的访问控制。
- 安全令牌:包含 OAuth2 令牌或 SAML 2.0 断言等声明的已签名文档。 对于 OAuth2 授权,访问令牌 (OAuth2) 和 ID 令牌都是安全令牌类型,并且这两种类型都作为 JSON Web 令牌 (JWT) 实现。
- tenant:Azure AD 目录的实例称为 Azure AD 租户
微软标识平台体验
下图显示了高级别的 Microsoft 标识体验,包括应用注册体验、SDK、终结点和支持的标识
应用注册体验
Azure 门户应用注册 体验是用于管理已与 Microsoft 标识平台集成的所有应用程序的一种门户体验。
要与 Azure AD B2C 集成(对社交或本地身份进行身份验证时),需要在 Azure AD B2C 租户中注册应用程序。 这种体验也是 Azure 门户的一部分。
使用应用程序 API 以编程方式配置与 Microsoft 标识平台集成的应用程序,以对 Microsoft 标识进行身份验证。
MSAL 库
可以使用 MSAL 库生成对所有 Microsoft 标识进行身份验证的应用程序。 .NET 和 JavaScript 中的 MSAL 库已正式发布。 适用于 iOS 和 Android 的 MSAL 库处于预览阶段,适合用于生产环境。 我们为预览版 MSAL 库提供的生产级别支持与我们为正式版 MSAL 和 ADAL 提供的生产级别支持相同。
还可使用 MSAL 库将应用程序与 Azure AD B2C 集成。
用于构建 Web 应用和 Web API 的服务器端库已正式发布:ASP.NET 和 ASP.NET Core
Microsoft 标识平台终结点
Microsoft 标识平台 (v2.0) 终结点现已经过 OIDC 认证。 它适用于 Microsoft 身份验证库 (MSAL) 或任何其他符合标准的库。 它按照行业标准实现了简明易懂的范围。
三、结尾
今天大概介绍了以下Azure AD的一些概述,以及作为开发者,我们可以使用Azure AD 来做些什么,下一篇正式开始在项目中我们是如果进行集成Azure AD以及Azure AD认证授权的几种模式。
作者:Allen
版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。
中文文档:https://docs.microsoft.com/zh-cn/azure/active-directory/fundamentals/active-directory-whatis
英文文档:https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-whatis
Azure AD(一)入门认识的更多相关文章
- 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证-2.2身份验证开发]
2.2身份验证开发 在我们的案例中,我们是用户通过Web应用程序进行身份识别. 上面的图示说明了如下的一些概念 l Azure AD 是标识提供程序,负责对组织的目录中存在的用户和应用程序的标识进行验 ...
- 无责任Windows Azure SDK .NET开发入门(二):使用Azure AD 进行身份验证
<編者按>本篇为系列文章,带领读者轻松进入Windows Azure SDK .NET开发平台.本文为第二篇,将教导读者使用Azure AD进行身分验证.也推荐读者阅读无责任Windows ...
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.1 Index用户列表]
3.1 Index用户列表 或许当前域下的用户列表 [Authorize] public async Task<ActionResult> Index() { var userList = ...
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]
三.使用Azure AD管理用户信息 在上一章我们采用OpenID的方案和Azure AD交互进行身份验证,本章节我们继续了解如何在Azure AD中创建用户,列出用户信息,修改用户信息和删除用户信息 ...
- 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证--2.1使用Azure AD需要了解几个概念]
2.1使用Azure AD需要了解几个概念 l Azure AD目录 当你注册 Microsoft 云服务时,便会获得一个 Azure AD 目录.你可根据需要创建更多的目录.例如,可以将第一个目录保 ...
- 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证]
二.使用Azure AD进行身份验证 之所以将Azure AD 作为开始,是应为基本上我们所有应用都需要进行安全管理.Azure Active Directory (Azure AD) 通过以下方式简 ...
- Azure AD(五)使用多租户应用程序模式让任何 Azure Active Directory 用户登录
一,引言 距离上次分享关于 “Azure AD" 的知识过去差不多2个多月了, 今天最近刚好也是学习,分享一下关于Azure AD 使用多租户应用程序模式让任何 Azure Active D ...
- Azure AD(六)添加自定义域名
一,引言 每当我们在 Azure Portal 上创建新的租户时,都会在设置租户的 "初始域名" 后加上 ".onmicrosoft.com",默认情况下 &q ...
- Azure DevOps Server 入门实践与安装部署
一,引言 最近一段时间,公司希望在自己的服务器上安装本地版的 Azure DevOps Service(Azure DevOps Server),用于项目内的测试,学习.本着学习的目的,我也就开始学习 ...
随机推荐
- es搜索排序不正确
沿用该文章里的数据https://www.cnblogs.com/MRLL/p/12691763.html 查询时发现,一模一样的name,但是相关度不一样 GET /z_test/doc/_sear ...
- python3(一)
print('test', '怎么自动建了这么多目录', 'aaaaaaa') #test 怎么自动建了这么多目录 aaaaaaa 注释# # ---------------------------- ...
- Linux C++ 网络编程学习系列(1)——端口复用实现
Linux C++ 网络编程学习系列(1)--端口复用实现 源码地址:https://github.com/whuwzp/linuxc/tree/master/portreuse 源码说明: serv ...
- cgdb使用方法
cgdb --args [exe_name] [arg1] [arg2] [arg3] [...] 进入代码窗口 按ESC键 进入调试窗口 按i键 调试命令 r 运行 n 单步执行(不进入函数) s ...
- linux基础知识点扫描
1.tty:查看自己的虚拟终端 2.echo "你的服务器已经被我控制,请立刻打钱给我,账号12312312312314123421,否则后果自负!!!" > /dev/ ...
- Python递归爬取头条用户的所有文章、视频
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...
- stand up meeting 1/18/2016
part 组员 工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 准备最后的发布和整个开发的整理总结 6 release ...
- Element里el-badge在el-tab里视图不被渲染问题
我们发现:el-badge绑定的变量是有数据的,但是界面上就是不渲染. 这个时候执行getTodo发现数据已经打印出来,当是视图未发送变化.于是查阅资料:vm.$forceUpdate()示例:迫使 ...
- keras数据集读取
from tensorflow.python import keras (x_train,y_train),(x_test,y_test) = keras.datasets.cifar100.load ...
- PHP扩展Swoole的代码重载机制
大家都知道Swoole的性能在PHP界还算不错,同样都是PHP为什么呢,我专门研究了下. 几个概念: 1) sapi:可以简单的理解为php引擎对外的一个统一接口,使得php可以和外部程序进行交互 ...