將您的 Microsoft Entra 應用程式限制為 Microsoft Entra 租用戶中的一組使用者
依預設,註冊在 Microsoft Entra 租用戶中的應用程式可供租用戶中驗證成功的所有使用者使用。
同樣地,在多租用戶應用程式中,在其中佈建應用程式之 Microsoft Entra 租用戶中的所有使用者,只要在其各自的租用戶中驗證成功,便可存取該應用程式。
租用戶系統管理員與開發人員通常要求將應用程式限制為僅供一組特定的使用者或應用程式 (服務) 存取。 有兩種方式可將應用程式限制為僅供一組特定的使用者、應用程式或安全性群組存取:
- 開發人員可以使用熱門的授權模式,例如 Azure 角色型存取控制 (Azure RBAC)。
- 租用戶系統管理員與開發人員可以使用 Microsoft Entra ID 的內建功能。
支援的應用程式設定
將應用程式限制為僅供租用戶中一組特定使用者、應用程式或安全性群組存取的選項,適用於下列類型的應用程式︰
- 同盟單一登入與 SAML 型驗證之應用程式設定。
- 使用 Microsoft Entra 預先驗證的應用程式 Proxy 應用程式。
- 直接建置在 Microsoft Entra 應用程式平台上,且在使用者或管理員同意該應用程式之後,使用 OAuth 2.0/OpenID Connect 驗證的應用程式。
更新應用程式以要求使用者指派
提示
根據您開始使用的入口網站,本文中的步驟可能略有不同。
若要更新應用程式以要求使用者指派,您必須是企業應用程式下的應用程式擁有者,或至少是雲端應用程式管理員。
- 登入 Microsoft Entra 系統管理中心。
- 如有多個租用戶的存取權,請使用頂端功能表中的 [目錄 + 訂用帳戶] 篩選 ,以從 [目錄 + 訂用帳戶] 功能表切換至包含應用程式註冊的租用戶。
- 瀏覽至 [身分識別]> [應用程式]> [企業應用程式],然後選取 [所有應用程式]。
- 選取您要設定以要求指派的應用程式。 使用視窗頂端的篩選準則,以搜尋特定的應用程式。
- 在應用程式 [概觀] 頁面的 [管理] 底下,選取 [屬性]。
- 找出 [需要指派嗎?] 設定,並將其設定為 [是]。 當此選項設定為 [是]時,必須先為此應用程式指派嘗試存取應用程式或服務的使用者和服務,否則他們將無法登入或取得存取權杖。
- 選取頂端列上的 [儲存]。
當應用程式需要指派時,不允許使用者同意該應用程式。 即使這樣會允許該應用程式的使用者同意,也是如此。 請務必對要求指派的應用程式授予全租用戶的管理員同意。
將應用程式指派給使用者和群組以限制存取
在設定完應用程式以啟用使用者指派後,您便可繼續作業,並將使用者與群組指派給應用程式。
在 [管理] 下,選取 [使用者和群組],然後選取 [新增使用者/群組]。
選取 [使用者] 選取器。
隨即會顯示使用者和安全性群組的清單,以及一個文字方塊,用來搜尋並找出特定的使用者或群組。 此畫面可讓您一次選取多個使用者和群組。
當您完成選取使用者和群組之後,請選取 [選取]。
(選擇性) 如果您已在應用程式中定義應用程式角色,則可以使用 [選取角色] 選項,將應用程式角色指派給選取的使用者和群組。
選取 [指派] 以完成將應用程式指派給使用者和群組的作業。
確認您新增的使用者和群組有顯示在更新後的 [使用者和群組] 清單中。
指派其他服務 (用戶端應用程式) 來限制對應用程式 (資源) 的存取
請遵循本節中的步驟,保護您的租用戶的應用程式對應用程式驗證存取。
- 瀏覽至租用戶中的服務主體登入記錄,以尋找正在驗證以在租用戶中存取資源的服務。
- 使用應用程式識別碼,在您的租用戶中檢查資源和用戶端應用程式,是否都有您要管理存取權的服務主體。
Get-MgServicePrincipal ` -Filter "AppId eq '$appId'"
- 如果服務主體不存在,請使用應用程式識別碼建立:
New-MgServicePrincipal ` -AppId $appId
- 明確將用戶端應用程式指派給資源應用程式 (此功能僅適用於 API,不適用於 Microsoft Entra 系統管理中心):
$clientAppId = “[guid]” $clientId = (Get-MgServicePrincipal -Filter "AppId eq '$clientAppId'").Id New-MgServicePrincipalAppRoleAssignment ` -ServicePrincipalId $clientId ` -PrincipalId $clientId ` -ResourceId (Get-MgServicePrincipal -Filter "AppId eq '$appId'").Id ` -AppRoleId "00000000-0000-0000-0000-000000000000"
- 需要資源應用程式指派,才能將存取限制為明確指派的用戶或服務。
Update-MgServicePrincipal -ServicePrincipalId (Get-MgServicePrincipal -Filter "AppId eq '$appId'").Id -AppRoleAssignmentRequired:$true
注意
若不想要為應用程式發出權杖,或想要阻止租用戶中的使用者或服務存取應用程式,請為應用程式建立服務主體,並為其停用使用者登入。
其他相關資訊
如需角色和安全性群組的詳細資訊,請參閱:
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應