繁体   English   中英

Azure中“企业申请”与“应用注册”的区别

[英]Difference between "enterprise application" and "app registration" in Azure

谁能告诉我Azure中的“企业申请”和“应用注册”有什么区别。

如果您能给我一个例子,以及为什么某些应用程序不能在刀片“企业应用程序”下注册,反之亦然,我将不胜感激。

应用注册是一种使用 Azure AD 保留应用和 URL 的方式,允许它与 Azure AD 通信、连接回复 URL 并在其上启用 AAD 服务。 如果您有正在开发的应用程序并希望与 Azure 集成,则需要在应用注册中注册您的应用程序,您将在其中配置回复 URL、注销 URL 和 API 访问(如果需要)。 注册应用程序时,Azure AD 会为其分配一个唯一的应用程序 ID,并允许您添加某些功能,例如凭据、权限和登录。 默认设置只允许注册应用程序的租户中的用户登录到应用程序。

企业应用程序刀片可能会与应用注册混淆,因为企业应用程序刀片包含您的服务主体列表。 但是,术语企业应用程序通常是指其他公司在 AAD 库中发布的可在您的组织内使用的应用程序。 例如,如果您想在组织内集成Facebook并管理 SSO,您可以从应用程序边栏选项卡中的企业应用程序下拉菜单中进行集成。 您自己的应用程序将在企业应用程序边栏选项卡中表示为服务主体,它们是您的应用程序在租户中的实例。

应用注册: https : //docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v1-add-azure-ad-app

集成企业应用程序 (G-Suite): https : //docs.microsoft.com/en-us/azure/active-directory/saas-apps/google-apps-tutorial

更简短的理解是...应用注册基本上是租户/组织本地的应用,它们已在其中注册以生成唯一的应用 ID。 企业应用程序刀片显示可在您的租户/组织内配置和使用的全局应用程序(属于其他租户)。

工作流程是您在租户中创建应用注册(应用程序),这也会在您的租户中创建企业应用程序(服务主体)。 然后,当另一个租户用户想要登录您的应用程序时,他们会授予您的应用程序所需的权限,并在其租户中创建企业应用程序(服务主体)。 这有效地将您的应用程序镜像到其租户中。

我同意,这可能会使 AAD 开发人员或管理员的新手感到困惑。 Nitin 的回答很好地总结了这一点,但我想添加一个带有文档参考的答案。

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

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

然后,在https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-how-applications-are- added ,它说:

可以通过应用注册体验管理 Azure 门户中的应用程序对象。 Application 对象向 Azure AD 描述应用程序,可以认为是应用程序的定义,允许服务知道如何根据其设置向应用程序颁发令牌。

您可以通过企业应用程序体验在 Azure 门户中管理服务主体。 服务主体管理连接到 Azure AD 的应用程序,可以将其视为目录中应用程序的实例。 对于任何给定的应用程序,它最多可以有一个应用程序对象(在“主”目录中注册)和一个或多个服务主体对象,表示在其作用的每个目录中的应用程序实例。

因此,对于第三方应用程序,您将只在企业应用程序中拥有一个服务主体。 对于内部的第一方应用程序,您将在两个地方都有一些东西 - 一个用于定义应用程序(应用程序注册),另一个用于允许应用程序实际登录到 Azure AD(企业应用程序)。 当您在应用注册中定义第一方应用时,您还将自动在企业应用中创建一个条目。 如果查看这两个条目,您会看到应用程序 ID将两者链接在一起。

此外,在应用程序注册中,您可以配置基于 OpenId-Connect (OpenID/OAuth) 的身份验证。 在企业应用程序中,您可以配置基于 SAML 的身份验证

简单地说:应用注册创建一个全局应用对象,允许应用委托用户身份进行资源访问,而企业应用是每个 AD 租户中的应用身份(服务原则)

好吧,这里有一些很好的答案,但是它们太冗长了,所以我觉得最简单的是展示三张图片和一条声明:

  1. App Registration中,我们有“ Application Objects ”: 在此处输入图像描述

  2. 要了解您在企业应用程序刀片中看到的是“服务主体”: 在此处输入图像描述

  3. 这是多租户示例中两者之间的关系:

Adatum -开发HR 应用程序的公司使用的租户

Contoso - Contoso 组织使用的租户,该组织是HR 应用程序使用者

Fabrikam - Fabrikam 组织使用的租户,它也使用HR应用程序

在此处输入图像描述

在此处输入图像描述

有了这个,我们就可以理解这句话:

与面向对象编程中的 class 类似,应用程序 object 有一些 static 属性应用于所有创建的服务主体(或应用程序实例)。 应用程序 object 是您的应用程序在所有租户中使用的全局表示,服务主体是在特定租户中使用的本地表示。 应用程序 object 用作模板,从中派生公共属性和默认属性以用于创建相应的服务主体对象。

也换种说法:

应用程序对象——尽管有例外,应用程序对象可以被认为是应用程序的定义。

服务主体 - 可以被视为应用程序的一个实例。 服务主体一般引用一个应用object,一个应用object可以跨目录被多个服务主体引用。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM