将 Microsoft Entra 应用限制为仅供一组用户访问
默认情况下,在 Microsoft Entra 租户中注册的应用程序可供该租户中成功完成身份验证的所有用户使用。 若要将应用程序限制为仅供一组用户访问,可以将应用程序配置为要求用户分配。 尝试访问应用程序或服务的用户和服务需要被分配给应用程序,否则这些用户和服务将无法登录或获取访问令牌。
同样,在多租户应用程序中,Microsoft Entra 租户中的所有用户在相应的租户中成功进行身份验证以后,都能够访问此应用程序。
租户管理员和开发人员通常会要求一个应用程序仅限于特定的一组用户或应用(服务)使用。 可以通过两种方法将应用程序限制为仅供特定的一组用户、应用或安全组使用:
- 开发人员可使用常见的授权模式,如 Azure 基于角色的访问控制 (Azure RBAC)。
- 租户管理员和开发人员可以使用 Microsoft Entra ID 的内置功能。
先决条件
- 一个 Microsoft Entra 用户帐户。 如果还没有帐户,请创建一个帐户。
- 在 Microsoft Entra 租户中注册的一个应用程序
- 你必须是应用程序所有者,或者至少是租户中的云应用程序管理员 。
支持的应用配置
将应用限制为仅供租户中特定的一组用户、应用或安全组使用的选项适用于以下类型的应用程序:
- 直接在 Microsoft Entra 应用程序平台上生成且使用 OAuth 2.0/OpenID Connect 身份验证的应用程序(前提是用户或管理员已认可该应用程序)。
更新应用以要求用户分配
提示
本文中的步骤可能因开始使用的门户而略有不同。
若要更新应用程序以要求用户分配,你必须是企业应用下应用程序的所有者,或者至少是云应用程序管理员。
- 登录到 Microsoft Entra 管理中心。
- 如果有权访问多个租户,请使用顶部菜单中的“目录 + 订阅”筛选器 ,从“目录 + 订阅”菜单切换到包含应用注册的租户。
- 浏览到“标识”>“应用程序”>“企业应用程序”,然后选择“所有应用程序”。
- 选择要配置为要求分配的应用程序。 使用窗口顶部的筛选器搜索特定应用程序。
- 在应用程序的“概述”页上的“管理”下,选择“属性” 。
- 找到设置“需要分配吗?”,将其设置为“是”。
- 在顶部栏上选择“保存”。
当应用程序要求分配时,不允许用户同意该应用程序。 即使允许用户同意该应用,也是如此。 请务必对要求分配的应用授予租户范围的管理员同意。
将应用分配给用户和组以限制访问
将应用配置为启用用户分配后,即可继续操作,将应用分配给用户和组。
- 在“管理”下,选择“用户和组”,然后选择“添加用户/组”。
- 在“用户”下,选择“尚未选择”,“用户”选择器窗格随即打开,可在其中选择多个用户和组。
- 添加完用户和组后,选择“选择”。
- (可选)如果已在应用程序中定义了应用角色,则可以使用“选择角色”选项将应用角色分配给选定的用户和组。
- 选择“分配”以完成将应用分配给用户和组的操作。
- 返回到“用户和组”页面后,新添加的用户和组将显示在更新的列表中。
通过分配其他服务(客户端应用)限制对应用(资源)的访问
按照本部分中的步骤保护租户的应用到应用身份验证访问。
导航到租户中的“服务主体登录日志”,以查找进行身份验证以访问租户中资源的服务。
使用应用 ID 检查希望管理其访问的租户中资源与客户端应用是否存在服务主体。
Get-MgServicePrincipal ` -Filter "AppId eq '$appId'"
使用应用 ID 创建服务主体(如果不存在):
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
注意
如果不希望为应用程序颁发令牌,或者想要阻止租户中的用户或服务访问应用程序,请为应用程序创建服务主体并为其禁用用户登录。
另请参阅
有关角色和安全组的详细信息,请参阅: