Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  《Windows Azure Platform 系列文章目录

  

  在Azure Active Directory (Azure AD)的上下文中,应用程序的概念可能会被误解。在这里简单介绍Azure AD应用程序集成的概念和具体方面,并举例说明了多租户应用程序的注册和集成。

 

  概述:

  与Azure AD集成的应用程序所具有的含义超出了软件方面。 “应用程序”经常用作概念性术语,不仅指应用程序软件,还指其Azure AD注册以及在运行时在身份验证/授权“对话”中的角色。

   根据定义,应用程序具有以下功能:

  1.客户端角色 (消耗资源)

  2.资源服务器角色 (向客户端公开API)

  3.客户端角色和资源服务器角色

  OAuth 2.0授权授予流定义了会话协议,该协议允许客户端/资源分别访问/保护资源的数据

 

   在以下内容中,我们将看到Azure AD应用程序模型如何在设计时和运行时表示应用程序

 

  应用注册

  我们在Azure AD中注册一个应用程序,我们会创建2个对象

  1.一个应用程序对象

  2.一个服务主体对象

 

  应用程序对象

  Azure AD应用程序由其唯一的应用程序对象定义,该对象位于应用程序注册所在的Azure AD租户中,称为应用程序的“主”租户。 Microsoft Graph Application实体为应用程序对象的属性定义架构。

 

  服务主体对象

  若要访问由Azure AD租户保护的资源,必须由安全主体代表需要访问的实体。对于用户(用户主体)和应用程序(服务主体)都是如此。  

  安全主体定义Azure AD租户中用户/应用程序的访问策略和权限。这启用了核心功能,例如登录期间对用户/应用程序的身份验证以及资源访问期间的授权。

  当一个应用程序被授予访问租户中资源的权限时(注册或同意时),将创建服务主体对象。 Microsoft Graph ServicePrincipal实体为服务主体对象的属性定义架构。

 

  应用程序和服务主体关系

  将应用程序对象视为在所有租户中使用的应用程序的全局表示形式,并将服务主体视为在特定租户中使用的本地表示形式。

  应用程序对象用作模板,从该模板派生通用属性和默认属性以用于创建相应的服务主体对象。因此,应用程序对象与软件应用程序具有1:1关系,与其对应的服务主体对象具有1:1:1关系。

  必须在使用该应用程序的每个租户中创建一个服务主体,使其能够为登录和/或访问由租户保护的资源建立身份。单租户应用程序只有一个服务主体(在其家庭租户中),创建并同意在应用程序注册期间使用。多租户Web应用程序/ API还具有在每个租户中创建的服务主体,来自该租户的用户已同意使用该服务主体。

  

 

  参考文档:

  https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals

 

posted on 2020-02-05 16:58  Lei Zhang的博客  阅读(760)  评论(0编辑  收藏  举报