将 Microsoft Entra 应用限制为仅供 Microsoft Entra 租户中的一组用户访问

默认情况下,在 Microsoft Entra 租户中注册的应用程序可供该租户中成功完成身份验证的所有用户使用。

同样,在多租户应用程序中,如果此应用程序在 Microsoft Entra 租户中预配,则该租户中的所有用户在相应的租户中成功进行身份验证以后,都能够访问此应用程序。

租户管理员和开发人员通常会要求一个应用程序仅限于特定的一组用户或应用(服务)使用。 可以通过两种方法将应用程序限制为仅供特定的一组用户、应用或安全组使用:

支持的应用配置

将应用限制为仅供租户中特定的一组用户、应用或安全组使用的选项适用于以下类型的应用程序:

  • 经配置后可以使用基于 SAML 的身份验证进行联合单一登录的应用程序。
  • 使用 Microsoft Entra 预身份验证的应用程序代理应用程序。
  • 直接在 Microsoft Entra 应用程序平台上生成且使用 OAuth 2.0/OpenID Connect 身份验证的应用程序(前提是用户或管理员已认可该应用程序)。

更新应用以要求用户分配

提示

本文中的步骤可能因开始使用的门户而略有不同。

若要更新应用程序以要求用户分配,你必须是企业应用下应用程序的所有者,或者至少是云应用程序管理员

  1. 登录 Microsoft Entra 管理中心
  2. 如果有权访问多个租户,请使用顶部菜单中的“目录 + 订阅”筛选器 ,从“目录 + 订阅”菜单切换到包含应用注册的租户。
  3. 浏览到“标识”>“应用程序”>“企业应用程序”,然后选择“所有应用程序”。
  4. 选择要配置为要求分配的应用程序。 使用窗口顶部的筛选器搜索特定应用程序。
  5. 在应用程序的“概述”页上的“管理”下,选择“属性” 。
  6. 找到设置“需要分配吗?”,将其设置为“是”。 当此选项设置为“是”时,必须先为尝试访问应用程序或服务的用户和服务分配此应用程序,否则这些用户和服务将无法登录或获取访问令牌。
  7. 在顶部栏上选择“保存”。

当应用程序要求分配时,不允许用户同意该应用程序。 即使允许用户同意该应用,也是如此。 请务必对要求分配的应用授予租户范围的管理员同意

将应用分配给用户和组以限制访问

将应用配置为启用用户分配后,即可继续操作,将应用分配给用户和组。

  1. 在“管理”下,选择“用户和组”,然后选择“添加用户/组”。

  2. 选择“用户”选择器。

    将会显示用户和安全组的列表,以及一个用于搜索和查找特定用户或组的文本框。 此屏幕允许一次选择多个用户和组。

  3. 选择用户和组后,选择“选择”。

  4. (可选)如果已在应用程序中定义了应用角色,则可以使用“选择角色”选项将应用角色分配给选定的用户和组。

  5. 选择“分配”以完成将应用分配给用户和组的操作。

  6. 确认已添加的用户和组显示在更新的“用户和组”列表中。

通过分配其他服务(客户端应用)限制对应用(资源)的访问

按照本部分中的步骤保护租户的应用到应用身份验证访问。

  1. 导航到租户中的“服务主体登录日志”,以查找进行身份验证以访问租户中资源的服务。
  2. 使用应用 ID 检查希望管理其访问的租户中资源与客户端应用是否存在服务主体。
    Get-MgServicePrincipal `
    -Filter "AppId eq '$appId'"
    
  3. 使用应用 ID 创建服务主体(如果不存在):
    New-MgServicePrincipal `
    -AppId $appId
    
  4. 将客户端应用显式分配给资源应用(此功能仅在 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"
    
  5. 要求分配资源应用程序,以将访问权限仅限于显示分配的用户或服务。
    Update-MgServicePrincipal -ServicePrincipalId (Get-MgServicePrincipal -Filter "AppId eq '$appId'").Id -AppRoleAssignmentRequired:$true
    

    注意

    如果不希望为应用程序颁发令牌,或者想要阻止租户中的用户或服务访问应用程序,请为应用程序创建服务主体并为其禁用用户登录

详细信息

有关角色和安全组的详细信息,请参阅: