分享方式:


保護應用程式模型架構

Microsoft引進了安全、可調整的架構,可透過Microsoft Azure 多重要素驗證 (MFA) 架構來驗證雲端解決方案提供者 (CSP) 合作夥伴和 控制台 廠商 (CPV)。 CSP 合作夥伴和 控制台 廠商可以依賴新模型來提升合作夥伴中心 API 整合呼叫的安全性。 這有助於所有合作物件,包括Microsoft、CSP合作夥伴和 控制台 廠商,以保護其基礎結構和客戶數據免於安全性風險。

重要

自 2023 年 6 月 30 日起,Azure Active Directory (Azure AD) Graph 已淘汰。 接下來,我們不會對 Azure AD Graph 進行進一步的投資。 Azure AD Graph API 除了安全性相關修正之外,沒有 SLA 或維護承諾。 我們只會對 Microsoft Graph 投資發展新的功能。

我們會以累加步驟淘汰 Azure AD Graph,讓您有足夠的時間將應用程式移轉至 Microsoft Graph API。 在稍後宣佈的日期,我們將封鎖使用 Azure AD Graph 建立任何新的應用程式。

若要深入瞭解,請參閱 重要事項:Azure AD Graph 淘汰和 Powershell 模組淘汰

範圍

本文適用於下列合作夥伴:

  • 控制台 廠商 (CPV) 是獨立軟體廠商,其開發應用程式以供 CSP 合作夥伴使用,以與合作夥伴中心 API 整合。 CPV 不是直接存取合作夥伴儀錶板或 API 的 CSP 合作夥伴。 它們是開發應用程式(通常是 Web 應用程式)的公司,可讓 CSP 透過統一市集銷售其產品。
  • CSP 間接提供者和 CSP 直接合作夥伴,他們會使用「應用程式識別碼 + 使用者」驗證,並直接與合作夥伴中心 API 整合。

注意

若要符合 CPV 資格,您必須先以 CPV 身分上線至合作夥伴中心。 如果您是也是 CPV 的現有 CSP 合作夥伴,此必要條件也適用於您。

保護應用程式開發

在代表 CSP 為Microsoft產品下單的過程中,來自 CPV 的市集應用程式會與Microsoft API 互動,為客戶下訂單和布建資源。

其中一些 API 包括:

  • 合作夥伴中心 API 會實作商務作業,例如下單和管理訂用帳戶生命週期。
  • Microsoft Graph API,針對 CSP 租使用者和 CSP 客戶的租用戶實作身分識別管理。
  • 實作 Azure 部署功能的 Azure Resource Manager (ARM) API。

雲端解決方案提供者合作夥伴在呼叫 Microsoft API 時,可透過委派的許可權來代表客戶採取行動。 委派的許可權可讓 CSP 合作夥伴完成客戶購買、部署和支援案例。

Marketplace 應用程式的設計目的是協助 CSP 合作夥伴為客戶列出其解決方案。 若要達成此目的,市集應用程式必須模擬 CSP 合作夥伴許可權,才能呼叫Microsoft API。

由於 CSP 合作夥伴許可權很高,並且提供所有合作夥伴客戶的存取權,因此請務必瞭解這些應用程式的設計方式,以承受安全性惡意探索媒介。 這些敏感性應用程式上的安全性攻擊可能會導致客戶資料洩漏。 因此,許可權授與和合作夥伴許可權模擬必須設計為遵循最低許可權原則。 下列原則和最佳做法可確保市集應用程式是可持續的,而且可以承受妥協。

認證仿真的安全性準則

  • Marketplace 應用程式不得儲存來自 CSP 合作夥伴的任何認證。

  • 不應該共用 CSP 合作夥伴用戶密碼。

  • CSP 合作夥伴租使用者 Web 應用程式金鑰不得與 控制台 廠商共用。

  • Marketplace 應用程式必須在進行模擬 CSP 合作夥伴身分識別的呼叫時,呈現應用程式身分識別以及合作夥伴資訊,而不是只使用合作夥伴認證。

  • Marketplace 應用程式的存取權必須以最低許可權原則為基礎,且在許可權中清楚說明。

  • Marketplace 應用程式的授權必須樞紐至多個認證。

  • 必須一起提供應用程式認證和合作夥伴認證,才能取得存取權。

    重要

    重要的是,沒有單一的妥協點。

  • 存取必須限制為特定物件或 API。

  • 存取必須識別仿真的目的。

  • Marketplace 應用程式的訪問許可權必須有時間限制。 CSP 合作夥伴必須能夠更新或撤銷 Marketplace 應用程式的存取權。

  • 快速控制或補救程式必須就緒,才能處理市集應用程式認證的危害。

  • 所有用戶帳戶都應該使用雙因素驗證 (2FA)。

  • 應用程式模型應該適合額外的安全性布建,例如條件式存取更好的安全性模型。

注意

使用應用程式識別碼 + 使用者驗證並直接與合作夥伴中心 API 整合的 CSP 間接提供者和 CSP 直接合作夥伴,必須遵循上述原則來保護自己的市集應用程式。

應用程式身分識別和概念

多租用戶應用程式

多租使用者應用程式通常是軟體即服務 (SaaS) 應用程式。 您可以將應用程式類型設定為 Azure 儀錶板上的多租使用者,以接受來自任何Microsoft Entra 租使用者的登入。 任何 Microsoft Entra 租用戶中的使用者都能夠在同意將帳戶與您的應用程式搭配使用後,登入您的應用程式。

若要深入瞭解如何建立多租使用者應用程式,請參閱 使用多租用戶應用程式模式登入任何Microsoft Entra 使用者。

若要讓使用者以 Microsoft Entra ID 登入應用程式,應用程式必須在使用者的租使用者中表示,這可讓組織執行像是在使用者從租使用者登入應用程式時套用唯一原則之類的動作。 對於單一租用戶應用程式,此註冊很簡單:當您在 Azure 儀錶板中註冊應用程式時,就會發生這種情況。

對於多租使用者應用程式,應用程式的初始註冊會存在於開發人員所使用的 Microsoft Entra 租使用者中。 在來自不同租用戶的使用者第一次登入應用程式時,Microsoft Entra ID 會要求他們同意應用程式所要求的權限。 如果他們同意,則會在使用者的租使用者中建立稱為服務主體的應用程式表示法,而且登入程式可以繼續。 也會在目錄中建立委派,以記錄使用者對應用程式的同意。

注意

使用應用程式識別碼 + 使用者驗證並直接與合作夥伴中心 API 整合的 CSP 間接提供者和 CSP 直接合作夥伴,必須使用相同的同意架構來同意其市集應用程式。

同意體驗會受到應用程式要求的許可權影響。 Microsoft Entra ID 支援兩種僅限應用程式的許可權和委派。

  • 僅限應用程式的許可權 會直接授與應用程式身分識別。 例如,您可以授與應用程式許可權,以讀取租使用者中的使用者清單,而不論誰登入應用程式。
  • 委派的許可權 會授與應用程式,讓應用程式能夠做為用戶可執行的子集登入使用者。 例如,您可以授與應用程式委派的許可權,以讀取已登入使用者的行事曆。

某些許可權會由一般使用者同意,而其他許可權則要求租用戶系統管理員同意。 如需Microsoft Entra 同意架構的詳細資訊,請參閱 瞭解 Microsoft Entra 應用程式同意體驗

多租使用者應用程式開啟授權 (OAuth) 令牌流程

在多租使用者應用程式開啟授權 (OAuth) 流程中,應用程式會以CPV或 CSP 合作夥伴租使用者中的多租使用者應用程式表示。

若要存取Microsoft API(合作夥伴中心 API、圖形 API 等等),CSP 合作夥伴必須登入應用程式,並同意允許應用程式代表他們呼叫 API。

注意

使用應用程式識別碼和使用者驗證並直接與合作夥伴中心 API 整合的 CSP 間接提供者和 CSP 直接合作夥伴,必須同意其市集應用程式,才能使用相同的同意架構。

應用程式可透過同意和 OAuth 授與,取得合作夥伴資源的存取權,例如 Graph 和合作夥伴中心 API。

建立多租用戶應用程式

多租使用者應用程式必須符合下列需求:

  • 它必須是具有應用程式識別碼和秘密金鑰的 Web 應用程式。
  • 它必須關閉隱含驗證模式。

此外,我們建議遵循下列最佳做法:

  • 使用秘密金鑰的憑證。
  • 啟用條件式存取以套用IP範圍限制。 這可能需要在 Microsoft Entra 租用戶上啟用更多功能。
  • 套用應用程式的存取令牌存留期原則。

取得令牌時,必須顯示應用程式識別碼和秘密密鑰。 秘密金鑰可以是憑證。

應用程式可以設定為呼叫多個 API,包括 Azure Resource Manager API。 以下是合作夥伴中心 API 所需的最低許可權集:

  • Microsoft Entra ID 委派的許可權: 以登入使用者身分存取目錄
  • 合作夥伴中心 API 委派的許可權: 存取

多租使用者應用程式必須取得合作夥伴的同意,並使用同意和授與對合作夥伴中心 API 進行進一步呼叫。 同意是透過 OAuth 驗證程式代碼流程取得。

若要取得同意,CPV 或 CSP 合作夥伴必須建置可接受來自 Microsoft Entra 識別碼之驗證碼授與的上線網站。

如需詳細資訊,請參閱使用 OAuth 2.0 程式代碼授與流程授權 Azure Active 和 Directory Web 應用程式的存取權。

以下是多租使用者應用程式擷取 CSP 合作夥伴同意的步驟,以及可重複使用的令牌,以呼叫合作夥伴中心 API。

使用下列步驟取得合作夥伴同意。

  1. 建置可裝載合作夥伴同意連結的合作夥伴上線 Web 應用程式,讓合作夥伴按兩下以接受多租使用者應用程式的同意。
  2. CSP 合作夥伴按兩下同意連結。 例如,https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<marketplaceappid>&response_ty
  3. Microsoft Entra 登入頁面說明將代表使用者授與給應用程式的許可權。 CSP 合作夥伴可以決定使用系統管理員代理程式或銷售代理程式認證來登入並核准同意。 應用程式會根據用來登入的使用者角色來授與許可權。
  4. 授與同意之後,Microsoft Entra ID 會將 CPV 多租使用者應用程式的服務主體建立至 CSP 合作夥伴的租使用者。 應用程式會獲得 OAuth 授權,以代表使用者採取行動。 這些授與可讓多租使用者應用程式代表合作夥伴呼叫合作夥伴中心 API。 此時,Microsoft Entra 登入頁面會重新導向至合作夥伴上線 Web 應用程式。 Web 應用程式會從 Microsoft Entra ID 接收授權碼。 合作夥伴上線 Web 應用程式必須使用授權碼以及應用程式識別碼和秘密密鑰,以呼叫 Microsoft Entra ID Token API ,以取得重新整理令牌。
  5. 安全地儲存重新整理令牌。 重新整理令牌是合作夥伴認證中的一部分,用來代表合作夥伴取得合作夥伴中心 API 的存取權。 取得重新整理令牌之後,請將它加密並儲存在秘密金鑰存放區,例如 Azure 金鑰保存庫

令牌要求呼叫流程

CPV 或 CSP 合作夥伴的應用程式必須先取得存取令牌,才能呼叫合作夥伴中心 API。 這些 API 會以資源 URL https://api.partnercenter.microsoft.com表示。

CPV 應用程式應該識別它必須仿真的合作夥伴帳戶,以根據產品或同盟登入來呼叫合作夥伴中心 API。 應用程式會從秘密金鑰存放區擷取該夥伴租使用者的加密重新整理令牌。 重新整理令牌必須先解密,才能使用。

對於只有一個租使用者同意的 CSP 合作夥伴,合作夥伴帳戶會參考 CSP 合作夥伴的租使用者。

重新整理令牌是多物件令牌。 這表示重新整理令牌可用來根據授與的同意,為多個物件取得令牌。 例如,如果合作夥伴中心 API 和 Microsoft Graph API 獲得合作夥伴同意,則重新整理令牌可用來要求這兩個 API 的存取令牌。 存取令牌具有「代表」授與,並允許市集應用程式模擬在呼叫這些 API 時同意的合作夥伴。

一次可以取得單一物件的存取令牌。 如果應用程式需要存取多個 API,它必須向目標物件要求多個存取令牌。 若要要求存取令牌,應用程式必須呼叫 Microsoft Entra ID Token API。 或者,它也可以使用 Microsoft Entra SDK 的 AuthenticationContext.AcquireTokenAsync ,並傳入下列資訊:

  • 資源 URL,這是要呼叫之應用程式的端點 URL。 例如,Microsoft合作夥伴中心 API 的資源 URL 為 https://api.partnercenter.microsoft.com
  • 由 Web 應用程式的應用程式識別碼和秘密金鑰所組成的應用程式認證。
  • 重新整理令牌

產生的存取令牌可讓應用程式呼叫資源中所提及的 API。 應用程式無法針對未在同意要求中授與許可權的 API 要求存取令牌。 UserPrincipalName (UPN) 屬性值是用戶帳戶Microsoft Entra 用戶名稱。

其他考量事項

條件式存取

在管理雲端資源方面,雲端安全性的重要層面是身分識別和存取。 在行動優先的雲端優先世界中,用戶可以從任何地方使用各種裝置和應用程式來存取貴組織的資源。 只要專注於誰可以存取資源就不再足夠了。 若要掌握安全性和生產力之間的平衡,您也必須考慮如何存取資源。 藉由使用 Microsoft Entra 條件式存取,您可以解決這項需求。 透過條件式存取,您可以實作自動化訪問控制決策,以存取以條件為基礎的雲端應用程式。

如需詳細資訊,請參閱 什麼是Microsoft Entra ID 中的條件式存取?

IP 範圍型限制

您可以限制只能將令牌發行至特定IP位址範圍。 此功能可協助將攻擊的表面區域限制為僅限特定網路。

多重要素驗證

強制執行多重要素驗證可藉由將認證驗證強制執行至兩個或多個窗體,協助限制認證入侵情況。 這項功能可讓Microsoft Entra ID 在發行令牌之前,先透過安全的次要通道來驗證呼叫者的身分識別,例如行動或電子郵件。

如需詳細資訊,請參閱 運作方式:Azure Multi