![](/img/trans.png)
[英]AZURE Active Directory - What is the difference between a Service Principal and an Enterprise Application?
[英]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它說:
將應用程序對象視為在所有租戶中使用的應用程序的全局表示,將服務主體視為在特定租戶中使用的本地表示。
可以通過應用注冊體驗管理 Azure 門戶中的應用程序對象。 Application 對象向 Azure AD 描述應用程序,可以認為是應用程序的定義,允許服務知道如何根據其設置向應用程序頒發令牌。
和
您可以通過企業應用程序體驗在 Azure 門戶中管理服務主體。 服務主體管理連接到 Azure AD 的應用程序,可以將其視為目錄中應用程序的實例。 對於任何給定的應用程序,它最多可以有一個應用程序對象(在“主”目錄中注冊)和一個或多個服務主體對象,表示在其作用的每個目錄中的應用程序實例。
因此,對於第三方應用程序,您將只在企業應用程序中擁有一個服務主體。 對於內部的第一方應用程序,您將在兩個地方都有一些東西 - 一個用於定義應用程序(應用程序注冊),另一個用於允許應用程序實際登錄到 Azure AD(企業應用程序)。 當您在應用注冊中定義第一方應用時,您還將自動在企業應用中創建一個條目。 如果查看這兩個條目,您會看到應用程序 ID將兩者鏈接在一起。
此外,在應用程序注冊中,您可以配置基於 OpenId-Connect (OpenID/OAuth) 的身份驗證。 在企業應用程序中,您可以配置基於 SAML 的身份驗證
簡單地說:應用注冊創建一個全局應用對象,允許應用委托用戶身份進行資源訪問,而企業應用是每個 AD 租戶中的應用身份(服務原則)
好吧,這里有一些很好的答案,但是它們太冗長了,所以我覺得最簡單的是展示三張圖片和一條聲明:
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.