【Explanation】Azure App — App Registration 與 Enterprise Application 基本介紹

Kellen
7 min readJun 8, 2024

--

App Registration 和 Enterprise Application 是個很重要的主題,兩者不一樣,但之間存在關係,作為 Azure 小白一開始還滿常混淆的,因為應用多元、範圍又廣,仍持續了解中!當然也可以在此處閱讀 Microsoft 的更深入的文章與 Reference 的 link。

Default AzureAD Enterprise Applications explained, where do they come from?

App Registration

當你在 Azure AD 中註冊應用程式時,實際上是在為該應用程式建立一個身份識別,以便它能夠與 Azure AD 進行整合。在註冊應用程式時,你可以選擇是僅在你的租戶中可存取(單一租戶)還是在其他租戶中也可存取(多租戶),同時你也可以設定重新導向 URI,這是存取權杖(Access Token)被傳送到的位置。

App Registration 是 Azure AD 的物件,實際上它定義了應用程式的各種元素。舉例來說,如果你正在開發一個應用程式並且希望將存取和管理功能委託給 Azure AD,你首先會向 Azure AD 租戶註冊這個應用程式。

註冊申請

  • 當您向 Azure AD 註冊應用程式時,您正在為應用程式建立身分識別配置,以使其能夠與 Azure AD 整合
  • 在 Azure 入口網站中註冊應用程式時,您可以選擇它是單一租用戶(只能在您的租用戶中存取)還是多租用戶(可在其他租用戶中存取)
  • 完成應用程式註冊後,您將擁有該應用程式的全域唯一實例(application object),該執行個體位於您的主租用戶或目錄中。您的應用程式還有一個全域唯一的 ID (app or client ID

📌 成功註冊您的應用程式後,您會注意到該應用程式在兩個位置建立 — 『應用程式註冊』和『企業應用程式』。它在『應用程式註冊』中創建了一個全域唯一識別碼 App(Client)ID,並在企業應用程式中建立了一個同名的本機服務主體(Service Principle)物件(ObjectID)

(左圖) Appplcation ID is global unique ID;(右圖) ObjectID is service principle

應用程式註冊(應用程式)本身並不能真正做任何事情。畢竟,它只是定義應用程式,接續就是企業應用程式(Service Principle)發揮作用的地方。

Enterprise Application

企業應用程式中的記錄反映了應用程式在特定 Azure AD 租戶中的角色和許可權配置。這是應用程式實際運行時所使用的角色和許可權。因此,當你需要查看或管理特定服務主體的角色和許可權時,企業應用程式是更準確的地方。

e.g., 配發角色 Reader 後至 Enterprise Application 可以查找得到

App Registration
Enterprise Application

企業應用程式(服務主體)只能在其本身所屬的目錄內取得權限。與應用程式註冊(應用程式)相反,企業應用程式(Service Principle)必須存在於應用程式處於活動狀態的每個租用戶的相同目錄中。

當你想要管理和配置與你的組織關聯的外部應用程式時,你會使用Enterprise Application。這包括單一登入的設定、使用者授權、使用者和群組的管理等。

綜合比較

企業應用程式(Service Principle)對您的租用戶來說是本地的 ,而 Application/Client ID 是您的應用程式全域表示,並且可跨多個租用戶使用
  • App Registration:App Registration 是實際的應用程式物件,可以在這裡設置應用程式的各種設定,例如識別、訪問權限等
  • Enterprise Application:Enterprise Application 則是在目錄中代表該應用程式的一個表現,它與你的組織有關聯。可以在這裡配置應用程式在組織中的設定,例如單一登入、使用者授權等

📌 App Registration 是你的應用程式的具體設定,而 Enterprise Application 則是該應用程式在組織中的代表
📌 Enterprise Application(Service Principle)物件是 App Registration 的實例。 「服務主體」命名是目錄中的身份,只能從同一目錄取得權限

應用程式物件與服務主體之間的關係

最後,在這個 Stake overflow 的討論串也很精采!應該可以協助多理解 ~

📕 Difference between “enterprise application” and “app registration” in Azure

Applications 領域還有很多,這個主題是值得持續研究 ~ Not done yet!!!

Reference

--

--

Kellen

Backend(Python)/K8s and Container eco-system/Technical&Product Manager/host Developer Experience/早期投入資料創新與 ETL 工作,近期研究 GCP/Azure/AWS 相關的解決方案的 implementation