將Microsoft Entra 應用程式限製為一組使用者
依預設,註冊在 Microsoft Entra 租用戶中的應用程式可供租用戶中驗證成功的所有使用者使用。 若要將應用程式限制為一組使用者,您可以將應用程式設定為需要使用者指派。 嘗試存取應用程式或服務的使用者和服務必須指派給應用程式,否則他們將無法登入或取得存取令牌。
同樣地,在 多租用戶 應用程式中,布建應用程式的 Microsoft Entra 租使用者中的所有使用者,只要他們在各自的租使用者中成功驗證,就可以存取應用程式。
租用戶系統管理員與開發人員通常要求將應用程式限制為僅供一組特定的使用者或應用程式 (服務) 存取。 有兩種方式可將應用程式限制為僅供一組特定的使用者、應用程式或安全性群組存取:
- 開發人員可以使用熱門的授權模式,例如 Azure 角色型存取控制 (Azure RBAC)。
- 租用戶系統管理員與開發人員可以使用 Microsoft Entra ID 的內建功能。
必要條件
- Microsoft Entra 使用者帳戶。 若尚未擁有帳戶,請建立免費帳戶。
- 在 Microsoft Entra 租用戶中註冊的應用程式
- 您必須是應用程式擁有者,或至少 是租使用者中的雲端應用程式管理員 。
支援的應用程式設定
將應用程式限制為僅供租用戶中一組特定使用者、應用程式或安全性群組存取的選項,適用於下列類型的應用程式︰
- 同盟單一登入與 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
注意
若不想要為應用程式發出權杖,或想要阻止租用戶中的使用者或服務存取應用程式,請為應用程式建立服務主體,並為其停用使用者登入。
另請參閱
如需角色和安全性群組的詳細資訊,請參閱: