Azure AD(一)入门认识

a 夏天 提交于 2020-05-06 09:03:45

一,引言(吹水)

  距离上一次介绍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来实现身份验证和授权。

微软标识平台开发术语-----开始之前,我们还是先去了解这些术语

  1. 访问令牌:由授权服务器颁发的一种安全令牌,可供客户端应用程序用来访问受保护的资源服务器。 通常,该令牌采用 JSON Web 令牌 (JWT) 形式,其中包含由资源所有者授予客户端的授权,用于进行所请求级别的访问。
  2. 应用程序 ID:Azure AD 向应用程序注册颁发的唯一标识符,用于标识特定应用程序和关联的配置。 执行身份验证请求时将使用此应用程序 ID,开发时会向身份验证库提供它。 
  3. 应用程序注册:要允许某个应用程序与标识和访问管理功能集成并将这些功能委托给 Azure AD,必须向 Azure AD 租户注册该应用程序。
  4. authentication:向访问方质询合法凭据的措施,提供创建用于标识和访问控制的安全主体的基础。
  5. authorization:授权经过身份验证的安全主体执行某项操作的措施,在 OAuth2 授权流程中:资源所有者向客户端应用程序授权时,允许客户端访问资源所有者的资源
  6. 授权终结点:授权服务器实现的终结点之一,用来与资源所有者进行交互,以便在 OAuth2 授权流程期间提供授权
  7. 授权服务器:根据 OAuth2 授权框架的定义,这是在成功验证资源所有者身份并获取其授权之后,负责向客户端颁发访问令牌的服务器。 客户端应用程序在运行时根据 OAuth2 定义的权限授予,通过其权限和令牌终结点来与授权服务器交互
  8. ID 令牌:授权服务器的授权终结点提供的 OpenID Connect 安全令牌,其中包含与最终用户资源所有者的身份验证相关的声明。 与访问令牌一样,ID 令牌也以数字签名的 JSON Web 令牌 (JWT) 形式来表示。
  9. 资源所有者:能够授予对受保护资源的访问权限的实体。如果资源所有者是个人,则称为最终用户。 例如,当客户端应用程序想要通过 Microsoft Graph API 访问用户的邮箱时,需要从该邮箱的资源所有者获取权限。
  10. 资源服务器:托管受保护资源的服务器,该服务器能够接受并响应出示访问令牌的客户端应用程序发出的受保护资源请求。 它也称为受保护的资源服务器或资源应用程序。
  11. 角色:提供某种方式让资源服务器控制其受保护资源的访问权限。 有两种类型的角色:“用户”角色为需要资源访问权限的用户/组实现基于角色的访问控制,“应用程序”角色为需要访问权限的 客户端应用程序 实现相同的访问控制
  12. 范围:与角色一样,范围提供某种方式让资源服务器控制其受保护资源的访问权限。 对于资源所有者已为其提供资源的委托访问权限的客户端应用程序,范围可用于实现基于范围的访问控制。
  13. 安全令牌:包含 OAuth2 令牌或 SAML 2.0 断言等声明的已签名文档。 对于 OAuth2 授权,访问令牌 (OAuth2) 和 ID 令牌都是安全令牌类型,并且这两种类型都作为 JSON Web 令牌 (JWT) 实现。
  14. 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

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!