Azure中“企业应用程序”和“应用程序注册”之间的区别

POS*_*Guy 14 azure azure-active-directory

有人可以告诉我Azure中“企业应用程序”和“应用程序注册”之间的区别是什么。

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

Mar*_*SFT 31

一个应用程序注册为保留您的应用程序和网址与Azure的AD,允许它与Azure的AD沟通,钩住你的回复的网址,并在其上实现AAD服务的方式。当您拥有正在开发的应用程序并想与Azure集成时,需要在“应用程序注册”中注册该应用程序,在该应用程序中,您将根据需要配置答复URL,注销URL和API访问。注册应用程序时,Azure AD为其分配唯一的应用程序ID,并允许您添加某些功能,例如凭据,权限和登录。默认设置仅允许来自注册您的应用程序的租户中的用户登录您的应用程序。

企业应用程序刀片可能与应用程序注册混淆,因为企业应用程序刀片包含您的服务主体列表。但是,术语“ 企业应用程序”通常是指AAD库中其他公司发布的可在您的组织中使用的应用程序。例如,如果要在组织中集成Facebook并管理SSO,则可以从应用程序刀片中的“企业应用程序”下拉列表中将其集成。自己的应用程序可以在企业应用刀片为服务主体,这是在租户应用程序的实例表示。

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

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

  • 这是 Azure 中的众多因素之一,它看起来更像是一个被误导的本科计算机科学学位最终项目,而不是由世界上最富有、最强大的人才公司之一生产的完整且设计良好的产品。 (7认同)
  • 看起来@Marilee将此答案扩展为[博客文章](https://marileeturscak.com/posts/app-registrations-enterprise-applications-service-principals/) (3认同)

Nit*_*aur 26

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

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


Mik*_*SFT 25

我同意,这可能会使 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将两者链接在一起。

  • 这确实应该是公认的答案。 (7认同)

DRe*_*act 13

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

  1. 应用程序注册中,我们有“应用程序对象”: 在此输入图像描述

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

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

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

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

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

在此输入图像描述

在此输入图像描述

明白了这一点,我们就可以理解这个说法了:

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

也用不同的方式说:

应用程序对象 - 尽管有例外,但应用程序对象可以被视为应用程序的定义。

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

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


小智 11

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

  • 这实际上是理解应用程序注册和企业应用程序之间的区别的重要方面。应用程序注册/OAuth2允许应用程序委托用户身份进行资源访问,而企业应用程序是应用程序身份(服务原则) (3认同)
  • 让我们不要迂腐......通过以“另外”开始他们的答案,这表明他们正在添加额外的相关信息,无论是否偏离主题都不相关。 (2认同)